㈠ bnt matlab 怎麼做mcmc有向無環貝葉斯網路結構學習
基於matlab的貝葉斯網路工具箱BNT是kevin p.murphy基於matlab語言開發的關於貝葉斯網路學習的開源包,提供了許多貝葉斯網路學習的底層基礎函數庫,支持多種類型的節點(概率分布)、精確推理和近似推理、參數學習及結構學習、靜態模型和動態模型。
貝葉斯網路表示:BNT中使用矩陣方式表示貝葉斯網路,即若節點i到j有一條弧,則對應矩陣中(i,j)值為1,否則為0。
結構學習演算法函數:BNT中提供了較為豐富的結構學習函數,都有:
學習樹擴展貝葉斯網路結構的TANC演算法learn_struct_tan().
2. 數據完整條件下學習一般貝葉斯網路結構的K2演算法learn_struct_k2()、貪婪搜索GS(greedy search)演算法learn_struct_gs()和爬山HC(hill climbing)演算法learn_struct_hc()等。
3. 缺失數據條件下學習一般貝葉斯網路結構的最大期望EM(expectation maximization)演算法learn_struct_EM()和馬爾科夫鏈蒙特卡羅MCMC(Markov Chain Monte Carlo)learn_struct_mcmc()演算法等。
參數學習演算法函數:BNT中也提供了豐富的參數學習函數,都有:
1. 完整數據時,學習參數的方法主要有兩種:最大似然估計learn_params()和貝葉斯方法bayes_update_params();
2. 數據缺失時,如果已知網路拓撲結構,用EM演算法來計算參數,倘若未知網路拓撲結構,使用結構最大期望SEM(structure EM)演算法learn_struct_SEM()。
推理機制及推理引擎:為了提高運算速度,使各種推理演算法能夠有效應用,BNT工具箱採用了引擎機制,不同的引擎根據不同的演算法來完成模型轉換、細化和求解。這個推理過程如下:
BNT中提供了多種推理引擎,都有:
1. 聯合樹推理引擎jtree_inf_engine();
2. 全局聯合樹推理引擎global_joint_inf_engine();
3. 信念傳播推理引擎 belprop_inf_engine();
4. 變數消元推理引擎 var_elim_inf_engine().
㈡ 貝葉斯網路 當節點很多時 怎麼批量處理
實際上,是指任何設備具有唯一的網路地址,例如,網站,網路傳真,網路列印機,文件伺服器等,另外,因為每一個網卡被分配一個地址,在工廠出廠時,這樣用戶這是不可能改變這個地址。
地址的安排,例如我們日常的家庭地址,是用來區別他們的身份。
你的網路必須區分這個地址是從其他地址不同的能力。網路內部,也有很多的數據包從一個網路節點傳輸到另一個網路節點,就像客棧,並決定是正確的傳達目的地的數據包,而這個目標,我們必須依靠網卡地址來標識。
㈢ 貝葉斯網路的條件概率表怎麼構建
這個條件概率本是父節點聯合分布下的條件概率,所以應該是四種狀態
㈣ 怎麼通俗易懂地解釋貝葉斯網路和它的應用
我們首先呢下載貝葉斯網路工具箱再個呢解壓壓縮包然後將工具箱中bnt文件夾復制到matlab工具箱文件夾中(D:Program FilesMATLABR2014a oolbox)最後是打開matlab2014a,貝葉斯網路是處理不確定信息做有效的表示方法之一。其關鍵的特徵之一是提供了把整個概率分布分解成幾個局部分布的方法,網路的拓撲結構表明如何從局部的概率分布獲得完全的聯合概率分布。 貝葉斯網路適合於對領域知識具有一定了解的情況,至少對變數間的依賴關系較清楚。否則直接從數據中學習貝葉斯網路結構復雜性極高(隨節點的增加成指數級增長)在這個網路meta分析中,研究者比較了多種非類固醇抗炎葯治療膝、 髖關節骨性關節炎疼痛的療效,那兩個大點就是樣本量最大的兩個不同的葯物組(變數)。當然,偉大的貝葉斯統計怎麼會僅僅局限於對文獻數據的網路meta分析?教科書上說,貝葉斯網路,既形式上,一個貝葉斯網路就是一個有向無環圖,結點表示隨機變數,可以是可觀測量、隱含變數、未知參量或假設等;結點之間的郵箱邊表示條件依存關系,箭頭指向的結點依存於箭頭發出的結點(父節點),每個結點都與一個概率函數相關。看看!說明啥?長得多麼多麼像醫學中各個疾病與其危險因素的關系啊!多麼多麼像臨床診斷指南里一下症狀中幾條中滿足幾條考慮診斷的診斷軸啊!
㈤ 用GeNIe2.0軟體如何構建貝葉斯網路各節點的先驗概率怎麼輸入到軟體中啊
滑鼠放在節點上,點擊右鍵,選擇 Node Properties,選擇 Definition 選項卡,,在該頁面內輸入條件概率。
㈥ 如何用matlab的BNT軟建立一個貝葉斯網路及條件概率表
對上述信息建立貝葉斯網路,代碼如下
[plain]view plainprint?
N=8;
dag=zeros(N,N);
A=1;S=2;T=3;L=4;B=5;E=6;X=7;D=8;
dag(A,T)=1;
dag(S,[LB])=1;
dag([TL],E)=1;
dag(B,D)=1;
dag(E,[XD])=1;
discrete_nodes=1:N;
node_sizes=2*ones(1,N);
bnet=mk_bnet(dag,node_sizes,'names',{'A','S','T','L','B','E','X','D'},'discrete',discrete_nodes);
bnet.CPD{A}=tabular_CPD(bnet,A,[0.99,0.01]);
bnet.CPD{S}=tabular_CPD(bnet,S,[0.5,0.5]);
bnet.CPD{T}=tabular_CPD(bnet,T,[0.99,0.95,0.01,0.05]);
bnet.CPD{L}=tabular_CPD(bnet,L,[0.99,0.9,0.01,0.1]);
bnet.CPD{B}=tabular_CPD(bnet,B,[0.7,0.4,0.3,0.6]);
bnet.CPD{E}=tabular_CPD(bnet,E,[1,0,0,0,0,1,1,1]);
bnet.CPD{X}=tabular_CPD(bnet,X,[0.95,0.02,0.05,0.98]);
bnet.CPD{D}=tabular_CPD(bnet,D,[0.9,0.2,0.3,0.1,0.1,0.8,0.7,0.9]);
draw_graph(dag)
說明:有N=8個節點,建立有向無環圖dag,並且這些點的值是離散的,這里1=False 2=True,node_sizes給出了所有狀態
mk_bnet中names後的{}裡面給出了各個節點的別名
利用tabular_CPD設置各個變數的邊緣概率,對於A和S,定義順序是False True;對於T、L和B這類,順序是FF FT TF TT;對於D這類,順序是FFF FFT FTF FTT TFF TFT TTF TTT
簡單檢查下A的概率
[plain]view plainprint?
engine=jtree_inf_engine(bnet);
evidence=cell(1,N);
[engine,loglik]=enter_evidence(engine,evidence);
m=marginal_nodes(engine,A);
m.T()
現在可以給定任意條件,然後計算概率了。
[plain]view plainprint?
例如要計算任意組合條件下,個體分別得Tub、lungcancer和bronchitis的概率。下面代碼計算了P(T=True|A=False,S=True,X=True,D=False)的概率
[plain]view plainprint?
engine=jtree_inf_engine(bnet);
evidence=cell(1,N);
evidence{A}=1;
evidence{S}=2;
evidence{X}=2;
evidence{D}=1;
[engine,loglik]=enter_evidence(engine,evidence);
m=marginal_nodes(engine,T);
m.T(2)
㈦ 貝葉斯網路
貝葉斯網路是一種模擬人類推理過程中因果關系的不確定性處理模型,也是一些變數的聯合概率分布的圖形表示。通常包含兩個部分,一個是貝葉斯網路結構圖,它是一個有向無環圖(DAG),其中圖中的每個節點代表相應的變數,節點之間的連接關系代表了貝葉斯網路的條件獨立語義。另一部分,就是節點和節點之間的條件概率表(CPT),也就是一系列的概率值。如果一個貝葉斯網路提供了足夠的條件概率值,足以計算任何給定的聯合概率,我們就稱,它是可計算的,即可推理的。 什麼是貝葉斯推斷?使用貝葉斯方法處理不確定性,需要利用貝葉斯定理將先驗分布更新至後驗分布中,這無疑是最流行的方法之一。但還存在其他非貝葉斯方法,例如集中不等式就是非貝葉斯方法,它們允許計算置信區間和不確定性集合。
貝葉斯網路隨機變數的連接方式主要有順連、分連、匯連這三種連接形式。
基於python的pgmpy庫構建貝葉斯網路,其步驟是先建立網路結構, 然後填入相關參數。 1.針對已知結構及參數,先採用BayesianModel構造貝葉斯網結構
這個貝葉斯網路中有五個節點: Pollution, Cancer, Smoker, Xray, Dyspnoea.
(『Pollution』, 『Cancer』): 一條有向邊, 從 Pollution 指向 Cancer, 表示環境污染有可能導致癌症.
(『Smoker』, 『Cancer』): 吸煙有可能導致癌症.
(『Cancer』, 『Xray』): 得癌症的人可能會去照X射線.
(『Cancer』, 『Dyspnoea』): 得癌症的人可能會呼吸困難.
cancer_model
<pgmpy.models.BayesianModel.BayesianModel at 0x7f57c7f593d0>
Pollution: 有兩種概率, 分別是 0.9 和 0.1.
Smoker: 有兩種概率, 分別是 0.3 和 0.7. (意思是在一個人群里, 有 30% 的人吸煙, 有 70% 的人不吸煙)
Cancer: envidence 表示有 Smoker 和 Pollution 兩個節點指向 Cancer 節點;
測試網路結構是否正確
在構建了貝葉斯網之後, 我們使用貝葉斯網來進行推理. 推理演算法分精確推理和近似推理. 精確推理有變數消元法和團樹傳播法; 近似推理演算法是基於隨機抽樣的演算法.
Finding Elimination Order: : 100%|██████████| 1/1 [00:00<00:00, 1096.55it/s]
Eliminating: Pollution: 100%|██████████| 1/1 [00:00<00:00, 888.25it/s]
+-----------+---------------+
| Cancer | phi(Cancer) |
+===========+===============+
| Cancer(0) | 0.0320 |
+-----------+---------------+
| Cancer(1) | 0.9680 |
+-----------+---------------+
True
CPD of D:
+------+------+
| D(0) | 0.49 |
+------+------+
| D(1) | 0.51 |
+------+------+
CPD of G:
+------+---------------------+-----+---------------------+
| D | D(0) | ... | D(1) |
+------+---------------------+-----+---------------------+
| I | I(0) | ... | I(1) |
+------+---------------------+-----+---------------------+
| G(0) | 0.46320346320346323 | ... | 0.519650655021834 |
+------+---------------------+-----+---------------------+
| G(1) | 0.5367965367965368 | ... | 0.48034934497816595 |
+------+---------------------+-----+---------------------+
CPD of I:
+------+-------+
| I(0) | 0.512 |
+------+-------+
| I(1) | 0.488 |
+------+-------+
CPD of S:
+------+----------+---------------------+
| I | I(0) | I(1) |
+------+----------+---------------------+
| S(0) | 0.515625 | 0.48770491803278687 |
+------+----------+---------------------+
| S(1) | 0.484375 | 0.5122950819672131 |
+------+----------+---------------------+
CPD of L:
+------+--------------------+---------------------+
| G | G(0) | G(1) |
+------+--------------------+---------------------+
| L(0) | 0.5424430641821946 | 0.46034816247582205 |
+------+--------------------+---------------------+
| L(1) | 0.4575569358178054 | 0.539651837524178 |
+------+--------------------+---------------------+
㈧ 貝葉斯網路基本原理
貝葉斯網路又稱信念網路,是有向無環圖的網路拓撲結構和貝葉斯概率方法有機結合的模型表示,描述了各個數據項及其相互間的依賴關系。一個 BN 包括了一個拓撲結構模型和與之相關的一組條件概率參數。結構模型是一個有向無環圖,每個節點則表示一個隨機變數,是對於狀態、過程、事件等實體的某個特性的形象描述,其中的有向邊則表示隨機變
量之間的條件依賴關系。BN 中每個節點( 除根節點外) 都有一個給定其父節點情況下的條件概率分布。2. 1. 1 貝葉斯網路定理
BN 是一種概率網路,即基於概率推理的圖形化網路,這個概率網路的基礎是貝葉斯公式。我們先來看一看貝葉斯基本公式。
定義 2. 1 條件概率: 設 X、Y 是兩個事件,且 P( X) >0,稱
基於BN+GIS新技術的突水態勢研究
為在事件 X 發生的條件下事件 Y 發生的條件概率。
定義 2. 2 聯合概率: 設 X,Y 是兩個事件,且 P( X) >0,它們的聯合概率為:
基於BN+GIS新技術的突水態勢研究
定義2.3全概率公式:設試驗E的樣本空間為S,X為E的事件,Y1,Y2,…,Yn為E的一組事件,滿足:
基於BN+GIS新技術的突水態勢研究
定義2.4貝葉斯公式:根據定義2.1、定義2.2和定義2.3,很容易推得眾所周知的貝葉斯公式:
基於BN+GIS新技術的突水態勢研究
2. 1. 2 貝葉斯網路的拓撲結構
BN 是一個具有概率分布的有向無環圖( Directed Acyclic Graph) ,其中每個節點代表一個數據變數或者屬性,節點間的弧段代表數據變數( 屬性) 之間的概率依賴關系。一條弧段由一個數據變數( 屬性) X 指向另外一個數據變數( 屬性) Y,說明數據變數 X 的取值可以對數據變數 Y 的取值產生影響。既然是有向無環圖,因此 X,Y 間不構成有向迴路。在 BN 當中,連接兩個節點的一條弧 XY 中的弧頭節點( 直接的原因節點) X 叫做弧尾節點( 結果節點) Y 的雙親節點( Parents) ,Y 叫做 X 的孩子節點( Children) 。如果從節點 A 有一條有向通路指向 B,則稱節點 A 為節點 B 的祖先( Ancestor) ,同時稱節點 B 為節點 A 的後代( Descendent) 。
BN 能夠利用簡單明了的圖形表達方式定性地表示事件間復雜的概率關系和因果關系,在給定某些先驗信息後,還可以定量地表示這些因果概率關系。BN 的拓撲結構通常是根據具體的問題和研究對象來確定的。目前如何通過結構學習自動確定和優化網路的拓撲結構是 BN 的一個研究熱點。
2.1.3 條件獨立性假設
條件獨立性假設是BN進行定量推理的理論基礎,可以減少先驗概率的數目,從而大大地簡化推理和計算過程。
BN的條件獨立性假設的一個很重要的判據就是著名的分隔定理(D-Separation):
定義2.5阻塞:G=(V(G),E(G))為一個有向非循環圖,s是其中的一條鏈。當s包含3個連續的節點x,y,z,滿足以下3種情況之一,我們稱s被節點集合W(WV(G))阻塞:
(1)z∈W,s上存在弧x→z和z→y;
(2)z∈W,s上存在弧x←z和z→y;
(3)s上存在弧x→z和z←y,σ(z)∩W=,σ(z)表示z以及z的所有子孫節點的集合。
圖2.1 阻塞的3種情形
定義2.6阻塞集:兩個節點x和y間的所有路徑都被節點集合Z所阻塞,則稱集合Z為x,y兩個節點間的阻塞集。
定義2.7D-Separation:令X,Y和Z是一個有向無環圖G中3個不相交節點的子集,如果在集合X和Y中所有節點間的所有路徑都被集合Z所阻塞,則稱集合X,Y被Z集合(d-separation),表示為<X,Y|Z>G,也稱Z為X和Y的切割集。否則,稱在給定集合Z下集合X和Y的圖形依賴。
這個判據指出,如果Z隔離了X和Y時,那麼可以認為X與Y是關於Z條件獨立的,即:P(X|Y,Z)=P(X|Y)。
㈨ 列舉三種構建貝葉斯網路的方法
構建貝葉斯網路可以通過絡該網三種不同的連接方式來進行。貝葉斯網路三種基本連接方式:同父結構,V型結構,順序結構。構建貝葉斯網路的方法:
貝葉斯網路:包括一個有向無環圖(DAG)和一個條件概率表集合。
DAG中每一個節點表示一個隨機變數,可以是可直接觀測變數或隱藏變數,而有向邊表示隨機變數間的條件依賴;條件概率表中的每一個元素對應DAG中唯一的節點,存儲此節點對於其所有直接前驅節點的聯合條件概率。
構建一個貝葉斯網路流程:
根據前面貝葉斯網路的定義,我們可以初步的知道一個貝葉斯網路的構成,那麼可以根據它的定義來構造一個貝葉斯網路,其實就是圍繞著它的組成元素:DAG和節點參數與邊的方向,下面分這兩步來描述下如何構造一個貝葉斯網路。
1.確定隨機變數間的拓撲關系,形成DAG。這一步通常需要領域專家完成,而想要建立一個好的拓撲結構,通常需要不斷迭代和改進才可以。
2.訓練貝葉斯網路參數——估計出各節點的條件概率表。這一步也就是要完成條件概率表的構造,如果每個隨機變數的值都是可以直接觀察的,像我們上面的例子,那麼這一步的訓練是直觀的,方法類似於樸素貝葉斯分類。
㈩ 如何在matlab2014a中添加貝葉斯網路工具箱
工具箱解壓到你的matlab程序目錄, 進入其中的子目錄gui, 在命令窗口運行: >> flpath 就設置好了. >>fraclab 啟動工具箱GUI界面