04貝葉斯演算法-貝葉斯網路

白爾摩斯發表於2018-12-19

01 貝葉斯演算法 – 樸素貝葉斯
02 貝葉斯演算法 – 案例一 – 鳶尾花資料分類
03 貝葉斯演算法 – 案例二 – 新聞資料分類

之前聚類演算法中講了__無向圖__的聚類演算法 – __譜聚類__。
13 聚類演算法 – 譜聚類

本章介紹的貝葉斯演算法是__有向圖__的聚類演算法。

區別:
__譜聚類__的無向圖裡的點裡放的是__樣本__。
__貝葉斯網路__的有向圖的點裡放的是__樣本的特徵__。


六、貝葉斯網路

把某個研究系統中涉及到的__隨機變數__,根據是否條件獨立繪製在一個有向圖中,就形成了貝葉斯網路。__貝葉斯網路(Bayesian Network)__,又稱有向無__環圖模型__(directed acyclic graphical model, DAG);

貝葉斯網路 是一種概率圖模型,根據概率圖的拓撲結構,考察一組隨機變數:{X1,X2,…,Xn}及其N組條件概率分佈(Conditional ProbabililtyDistributions, CPD)的性質。

當多個特徵屬性之間__存在著某種相關關係__的時候,使用樸素貝葉斯演算法就沒法解決這類問題,那麼貝葉斯網路就是解決這類應用場景的一個非常好的演算法。

分析: 很好理解上面的概念,先回顧下面的演算法,樸素貝葉斯演算法要求的是互相獨立的事件形成出x1~xn,這些特徵彼此概率互不影響,所以才能求出聯合概率密度。貝葉斯網路演算法就是來解決有關聯的特徵組成的樣本分類的。

樸素貝葉斯


一般而言,貝葉斯網路的有向無環圖中的節點表示隨機變數,可以是可觀察到的變數,或隱變數,未知引數等等。連線兩個節點之間的箭頭代表兩個隨機變數之間的因果關係(也就是這兩個隨機變數之間非條件獨立);如果兩個節點間以一個單箭頭連線在一起,表示其中一個節點是“因”,另外一個節點是“果”,從而兩節點之間就會產生一個條件概率值。

__PS:__每個節點在給定其直接前驅的時候,條件獨立於其非後繼。

貝葉斯網路的關鍵方法是圖模型,構建一個圖模型我們需要把具有因果聯絡的各個變數用箭頭連在一起。貝葉斯網路的有向無環圖中的節點表示隨機變數。連線兩個節點的箭頭代表此兩個隨機變數是具有因果關係的。
$color{red}{首先找到所有樣本特徵的因果關係,即找到有向圖}$

貝葉斯網路是模擬人的認知思維推理模式的,用一組條件概率以及有向無環圖對不確定性因果推理關係建模。
$color{red}{最後的目的還是求出聯合概率P(x1,x2,..xn)}$


1、最簡單的一個貝葉斯網路

目標,求P(a,b,c)
a的概率和任何別的特徵都無關,所以先求a的概率:P(a);
b的生成和a有關。即a發生的情況下,b發生的概率:P(b|a);
c的生成和a、b有關。即a和b同事發生的情況下,c發生的概率。P(c|a,b);

最簡單的一個貝葉斯網路

2、全連線貝葉斯網路

![全連線貝葉斯網路
](https://upload-images.jianshu.io/upload_images/3153092-d5be6101a9ca9068.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

3、“正常”貝葉斯網路

正常貝葉斯網路

4、實際貝葉斯網路:判斷是否下雨

有一天早晨,白爾摩斯離開他的房子的時候發現他家花園中的草地是溼的,有兩種可能,第一:昨天晚上下雨了,第二:他昨天晚上忘記關掉花園中的噴水器,接下來,他觀察他的鄰居華生,發現他家花園中的草地也是溼的,因此,他推斷,他家的草地溼了是因為昨天晚上下雨的緣故。


七、貝葉斯網路判定條件獨立

那麼在貝葉斯網路中,哪些條件下我們可以認為是條件獨立的?

條件一:
在C給定的條件下,a和b被阻斷(blocked)是獨立的。
即只要C給定了,a、b就獨立。
條件獨立:tail – to -tail


條件二:
在C給定的條件下,a和b被阻斷(blocked)是獨立的。
條件獨立:head- to -tail


條件三:
在C未知的情況下,a和b被阻斷(blocked),是獨立的。
條件獨立:head – to – head


相關文章