1. 程式人生 > >概率圖模型之:貝葉斯網路

概率圖模型之:貝葉斯網路

1、貝葉斯定理

P(AB)=P(A)P(BA)P(B)

P(A|B)是已知B發生後A的條件概率,也由於得自B的取值而被稱作A的後驗概率。
P(B|A)是已知A發生後B的條件概率,也由於得自A的取值而被稱作B的後驗概率。
P(A)是A的先驗概率或邊緣概率。之所以稱為”先驗”是因為它不考慮任何B方面的因素。
P(B)是B的先驗概率或邊緣概率。
貝葉斯定理可表述為:後驗概率 = (相似度 * 先驗概率) / 標準化常量
也就是說,後驗概率與先驗概率和相似度的乘積成正比。
比例P(B|A)/P(B)也有時被稱作標準相似度,貝葉斯定理可表述為:後驗概率 = 標準相似度 * 先驗概率
假設{Ai}是事件集合裡的部分集合,對於任意的Ai,貝葉斯定理可用下式表示:



2、貝葉斯網路

貝葉斯網路,由一個有向無環圖(DAG)和條件概率表(CPT)組成。
貝葉斯網路通過一個有向無環圖來表示一組隨機變數跟它們的條件依賴關係。它通過條件概率分佈來引數化。每一個結點都通過P(node|Pa(node))來引數化,Pa(node)表示網路中的父節點。

如圖是一個簡單的貝葉斯網路,其對應的全概率公式為:

P(a,b,c)=P(ca,b)P(ba)P(a)
這裡寫圖片描述

較複雜的貝葉斯網路,其對應的全概率公式為:

P(x1,x2,x3,x4,x5,x6,x7)=P(x1)P(x2)P(x3)P(x4x1,x2,x3)P(x5x1
,x3)P(x6x4)P(x7x4,x5)

這裡寫圖片描述

3、貝葉斯網路Student模型

一個學生擁有成績、課程難度、智力、SAT得分、推薦信等變數。通過一張有向無環圖可以把這些變數的關係表示出來,可以想象成績由課程難度和智力決定,SAT成績由智力決定,而推薦信由成績決定。該模型對應的概率圖如下:
這裡寫圖片描述

4、通過概率圖python類庫pgmpy構建Student模型

程式碼如下:

from pgmpy.models import BayesianModel
from pgmpy.factors.discrete import TabularCPD

# 通過邊來定義貝葉斯模型
model = BayesianModel([('D'
, 'G'), ('I', 'G'), ('G', 'L'), ('I', 'S')]) # 定義條件概率分佈 cpd_d = TabularCPD(variable='D', variable_card=2, values=[[0.6, 0.4]]) cpd_i = TabularCPD(variable='I', variable_card=2, values=[[0.7, 0.3]]) # variable:變數 # variable_card:基數 # values:變數值 # evidence: cpd_g = TabularCPD(variable='G', variable_card=3, values=[[0.3, 0.05, 0.9, 0.5], [0.4, 0.25, 0.08, 0.3], [0.3, 0.7, 0.02, 0.2]], evidence=['I', 'D'], evidence_card=[2, 2]) cpd_l = TabularCPD(variable='L', variable_card=2, values=[[0.1, 0.4, 0.99], [0.9, 0.6, 0.01]], evidence=['G'], evidence_card=[3]) cpd_s = TabularCPD(variable='S', variable_card=2, values=[[0.95, 0.2], [0.05, 0.8]], evidence=['I'], evidence_card=[2]) # 將有向無環圖與條件概率分佈表關聯 model.add_cpds(cpd_d, cpd_i, cpd_g, cpd_l, cpd_s) # 驗證模型:檢查網路結構和CPD,並驗證CPD是否正確定義和總和為1 model.check_model()

獲取上述程式碼構建的概率圖模型:

In[1]:model.get_cpds()
Out[1]: 
[<TabularCPD representing P(D:2) at 0x10286e198>,
 <TabularCPD representing P(I:2) at 0x10286e160>,
 <TabularCPD representing P(G:3 | I:2, D:2) at 0x100d69710>,
 <TabularCPD representing P(L:2 | G:3) at 0x10286e1d0>,
 <TabularCPD representing P(S:2 | I:2) at 0x1093f6358>]

獲取結點G的概率表:

In[2]:print(model.get_cpds('G'))
╒═════╤═════╤══════╤══════╤═════╕
│ I   │ I_0 │ I_0  │ I_1  │ I_1 │
├─────┼─────┼──────┼──────┼─────┤
│ D   │ D_0 │ D_1  │ D_0  │ D_1 │
├─────┼─────┼──────┼──────┼─────┤
│ G_0 │ 0.30.050.90.5 │
├─────┼─────┼──────┼──────┼─────┤
│ G_1 │ 0.40.250.080.3 │
├─────┼─────┼──────┼──────┼─────┤
│ G_2 │ 0.30.70.020.2 │
╘═════╧═════╧══════╧══════╧═════╛

獲取結點G的基數:

In[3]: model.get_cardinality('G') 
Out[3]: 3

獲取整個貝葉斯網路的區域性依賴:

In[4]: model.local_independencies(['D', 'I', 'S', 'G', 'L']) 
Out[4]: 
(D _|_ I, S)
(I _|_ D)
(S _|_ D, L, G | I)
(G _|_ S | I, D)
(L _|_ I, S, D | G)

通過貝葉斯網路計算聯合分佈

條件概率公式如下:

P(A,B)=P(A|B)P(B)

Student模型中,全概率公式的表示:

P(D,I,G,L,S)=P(L|S,G,D,I)P(S|G,D,I)P(G|D,I)P(D|I)P(I)

通過本地依賴條件,可得:

P(D,I,G,L,S)=P(L|G)P(S|I)P(G|D,I)P(D)P(I)

由上面等式可得,聯合分佈產生於圖中所有的CPD,因此編碼圖中的聯合分佈有助於減少我們所要儲存的引數。

推導 Bayiesian Model

因此,我們可能想知道一個聰明的學生在艱難的課程中可能的成績,因為他在SAT中打得很好。 因此,為了從聯合分配計算這些值,我們必須減少給定的變數,即I=1D=1S=1,然後將L的其他變數邊際化 得到

PG|I=1D=1S=1

在知道一個聰明的學生、他的一門比較難的課程及其SAT成績較高的情況。為了從聯合分佈計算這些值,必須減少給定的變數I=1D=1S=1,然後將L的其他變數邊緣化得到

P(G|I=1,D=1,S=1)

變數消除

P(D,I,G,L,S)=P(L|G)P(S|I)P(G|D,I)P(D)P(I)

如果我們只想計算G的概率,需要邊緣化其他所給的引數

P(G)=D,I,L,SP(D,I,G,L,S)
P(G)=D,I,L,SP(L|G)P(S|I)P(G|D,I)P(D)P

相關推薦

概率模型網路

1、貝葉斯定理 P(A∣B)=P(A)P(B∣A)P(B) P(A|B)是已知B發生後A的條件概率,也由於得自B的取值而被稱作A的後驗概率。 P(B|A)是已知A發生後B的條件概率,也由於得自A的取值而被稱作B的後驗概率。 P(A)是A的先

概率模型網絡

https tps 貝葉斯定理 nbsp 原創文章 bsp 模型 lan 參考 版權聲明:本文為博主原創文章,轉載請聲明出處。 https://blog.csdn.net/GnahzNib/article/details/70244175 1.貝葉斯定理 P(A)是A的先驗

機器學習網路入門

貝葉斯理論是處理不確定性資訊的重要工具。作為一種基於概率的不確定性推理方法,貝葉斯網路在處理不確定資訊的智慧化系統中已得到了重要的應用,已成功地用於醫療診斷、統計決策、專家系統、學習預測等領域。它有幾個特性 1、貝葉斯網路本身是一種不定性因果關聯模型。貝葉斯網路與其他決

ml課程概率模型網路、隱馬爾可夫模型相關(含程式碼實現)

以下是我的學習筆記,以及總結,如有錯誤之處請不吝賜教。 本文主要介紹機器學習中的一個分支——概率圖模型、相關基礎概念以及樸素貝葉斯、隱馬爾可夫演算法,最後還有相關程式碼案例。 說到機器學習的起源,可以分為以下幾個派別: 連線主義:又稱為仿生學派(bionicsism)或生理學派

概率模型(PGM)網(Bayesian network)初探

1. 從貝葉斯方法(思想)說起 - 我對世界的看法隨世界變化而隨時變化 用一句話概括貝葉斯方法創始人Thomas Bayes的觀點就是:任何時候,我對世界總有一個主觀的先驗判斷,但是這個判斷會隨著世界的真實變化而隨機修正,我對世界永遠保持開放的態度。 1763年,民間科學家Thomas Bayes發表

聯合概率與聯合分佈、條件概率與條件分佈、邊緣概率與邊緣分佈、定理、生成模型(Generative Model)和判別模型(Discriminative Model)的區別

在看生成模型和判別模型之前,我們必須先了解聯合概率與聯合分佈、條件概率與條件分佈、邊緣概率與邊緣分佈、貝葉斯定理的概念。 聯合概率與聯合概率分佈: 假設有隨機變數X與Y, 此時,P(X=a,Y=b)用於表示X=a且Y=b的概率。這類包含多個條件且所有條件同時成立的概率稱為聯合概率。聯合概

【原始碼】MATLAB的BMS工具箱模型平均(BMA)

Zellner g先驗條件下線性模型的貝葉斯模型平均 Bayesian Model Averaging for linear modelsunder Zellner’s g prior. 可選項包括:固定的(BRIC,UIP, …)和可調的g先驗(經驗貝葉斯,hyper-g)、

數學馬爾科夫鏈的擴充套件-網路 詞分類

前面介紹的馬爾科夫鏈是一種狀態序列,但在實際中,各個事物之間不僅使用鏈序列起來的,而是互相交叉,錯綜複雜。因此通過各個事物之間的聯絡,可以將馬爾科夫鏈推廣至圖論中。 沒想到貝葉斯網路還可以用於詞分類。在前面我們介紹到通過使用SVD可以對文字進行分類,如果把文字和關鍵詞的

[學習筆記]機器學習——演算法及模型(五)演算法

傳統演算法(五) 貝葉斯演算法 一、貝葉斯定理 簡介 貝葉斯定理是18世紀英國數學家托馬斯·貝葉斯(Thomas Bayes)提出得重要概率論理論;貝葉斯方法源於他生前為解決一個“逆概”問題寫的一篇文章

PRML 02 Introduction概率

主要講解了貝葉斯概率與統計派概率的不同。概率論,決策論,資訊理論(probability theory, decision theory, and information theory)是以後用到的三個重要工具,本節主要介紹概率論,這裡的介紹還是結合前面的

機器學習演算法筆記4分類器

一、貝葉斯分類器詳解 貝葉斯分類器是一類分類演算法的總稱,這類演算法均以貝葉斯定理為理論基礎。貝葉斯分類器的分類原理是通過先驗概率,利用貝葉斯公式計算出後驗概率,選擇最大後驗概率所對應的分類結果。 貝葉斯準則 其中,P(c)是先驗概率,P(x|c)樣本x相對於;類標記c的類

機器學習-23MachineLN樸素

你要的答案或許都在這裡:小鵬的部落格目錄 學習樸素貝葉斯需要清楚下面幾個概念: 貝葉斯模型是指模型引數的推斷用的是貝葉斯估計方法,也就是需要指定先驗分佈,再求取後驗分佈。 貝葉斯分類是一類演算

概率推到,樸素分類器及Python實現

在瞭解貝葉演算法前:要有一定的概率與數理統計基礎以及注意事項 條件概率 首先,理解這兩個公式的前提是理解條件概率,因此先複習條件概率。 P(A|B)=P(AB)P(B)P(A|B)=P(AB)P(B) 那麼由條件概率出發,看一下變形出來的乘法公式:

機器學習樸素模型及程式碼示例

一、樸素貝葉斯的推導 樸素貝葉斯學習(naive Bayes)是一種有監督的學習,訓練時不僅要提供訓練樣本的特徵向量X,而且還需提供訓練樣本的實際標記Y,是一種基於貝葉斯定理和特徵條件獨立假設的分類方法。 1. 貝葉斯定理: 貝葉斯定理: 。 對於分

機器學習分類器

貝葉斯 逆向 檢測 .net 極大似然估計 href ref .com blank 參考文獻 從貝葉斯定理說開去 關鍵詞:逆向概率;先驗概率;後驗概率 我所理解的貝葉斯定理--知乎專欄 關鍵詞:醫院病癥檢測中的真假陽性 似然與極大似然估計--知乎專欄 關鍵詞:似然與概率的區

【機器學習】--機器學習樸素從初始到應用

rac AC 一個 pam 數據 ast 出現 相對 解決方法 一、前述 機器學習算法中,有種依據概率原則進行分類的樸素貝葉斯算法,正如氣象學家預測天氣一樣,樸素貝葉斯算法就是應用先前事件的有關數據來估計未來事件發生的概率。 二、具體 1、背景--貝葉斯定理引入對於兩個關聯

機器學習分類器(二)——高樸素分類器代碼實現

mod ces 數據 大於等於 即使 平均值 方差 很多 mode 一 高斯樸素貝葉斯分類器代碼實現 網上搜索不調用sklearn實現的樸素貝葉斯分類器基本很少,即使有也是結合文本分類的多項式或伯努利類型,因此自己寫了一遍能直接封裝的高斯類型NB分類器,當然與真正的源碼相

sklearn庫學習樸素分類器

樸素貝葉斯模型 樸素貝葉斯模型的泛化能力比線性模型稍差,但它的訓練速度更快。它通過單獨檢視每個特徵來學習引數,並從每個特徵中收集簡單的類別統計資料。想要作出預測,需要將資料點與每個類別的統計資料進行比較,並將最匹配的類別作為預測結果。 GaussianNB應用於任意連續資料,

機器學習網路(三)

引言   貝葉斯網路是機器學習中非常經典的演算法之一,它能夠根據已知的條件來估算出不確定的知識,應用範圍非常的廣泛。貝葉斯網路以貝葉斯公式為理論接觸構建成了一個有向無環圖,我們可以通過貝葉斯網路構建的圖清晰的根據已有資訊預測未來資訊。貝葉斯網路適用於表達和分析不確定性和概率性的事件,應用於有條件地依賴多種控

大資料背後的神祕公式(上)公式

大資料、人工智慧、海難搜救、生物醫學、郵件過濾,這些看起來彼此不相關的領域之間有什麼聯絡?答案是,它們都會用到同一個數學公式——貝葉斯公式。它雖然看起來很簡單、很不起眼,但卻有著深刻的內涵。那麼貝葉斯公式是如何從默默無聞到現在廣泛應用、無所不能的呢? ◆ ◆ ◆ 什麼是貝