A. 怎麼通俗易懂地解釋貝葉斯網路和它的應用
我們首先呢下載貝葉斯網路工具箱再個呢解壓壓縮包然後將工具箱中bnt文件夾復制到matlab工具箱文件夾中(D:Program FilesMATLABR2014a oolbox)最後是打開matlab2014a,貝葉斯網路是處理不確定信息做有效的表示方法之一。其關鍵的特徵之一是提供了把整個概率分布分解成幾個局部分布的方法,網路的拓撲結構表明如何從局部的概率分布獲得完全的聯合概率分布。 貝葉斯網路適合於對領域知識具有一定了解的情況,至少對變數間的依賴關系較清楚。否則直接從數據中學習貝葉斯網路結構復雜性極高(隨節點的增加成指數級增長)在這個網路meta分析中,研究者比較了多種非類固醇抗炎葯治療膝、 髖關節骨性關節炎疼痛的療效,那兩個大點就是樣本量最大的兩個不同的葯物組(變數)。當然,偉大的貝葉斯統計怎麼會僅僅局限於對文獻數據的網路meta分析?教科書上說,貝葉斯網路,既形式上,一個貝葉斯網路就是一個有向無環圖,結點表示隨機變數,可以是可觀測量、隱含變數、未知參量或假設等;結點之間的郵箱邊表示條件依存關系,箭頭指向的結點依存於箭頭發出的結點(父節點),每個結點都與一個概率函數相關。看看!說明啥?長得多麼多麼像醫學中各個疾病與其危險因素的關系啊!多麼多麼像臨床診斷指南里一下症狀中幾條中滿足幾條考慮診斷的診斷軸啊!
B. 如何使用貝葉斯網路工具箱
第一步:下載貝葉斯網路工具箱
第二步:解壓壓縮包
第三步:將工具箱中bnt文件夾復制到matlab工具箱文件夾中
第四步:打開
C. 求大神!matlab代碼錯誤如何調試,未定義的函數'mk_bnet'用於類型'cell'的輸入參數。
你要先向matlab中添加FULLBNT!!
2.向matlab中添加FULLBNT,參考地址:
http://hi..com/73290673/item/21db99f36d90bc49932af29d
採用MATLAB語言編制的貝葉斯網路工具箱(Bayesian Networks Toolbox,BNT)可實現貝葉斯網路結構學習、參數學習、推理和構建貝葉斯分類器,此工具箱在貝葉斯學習編 程方面非常靈活。
官方主頁:http://www.cs.ubc.ca/~murphyk/Software/BNT/bnt.html
官方下載:http://www.cs.ubc.ca/~murphyk/Software/BNT/FullBNT-1.0.4.zip
原文鏈接:http://hi..com/zgyz/blog/item/2d3627f415c7fbe77709d763.html
貝葉斯網路:http://www.cs.ubc.ca/~murphyk/Software/BNT/bnt.html
語音工具箱:http://www.ee.ic.ac.uk/hp/staff/dmb/voicebox/voicebox.html
1、解壓FullBNT-1.0.4.zip,將整個目錄FullBNT-1.0.4復制到MATLAB的安裝目錄的TOOLBOX目錄下,如D:\MATLAB7\toolbox\
2、打開Matlab,在MATLAB命令窗口中輸入以下命令:
>> cd D:\MATLAB7\toolbox\FullBNT-1.0.4
>> addpath(genpathKPM(pwd))
>>
將TOOLBOX下新加的BNT工具箱加到MATLAB的搜索路徑中去。
添加BNT工具箱的MATLAB的搜索路徑也可採用如下指令
>> addpath(genpath('D:\MATLAB7\toolbox\FullBNT-1.0.4'))
>>
3、為了永久保存上面的路徑,以免下次重啟MATLAB時重新添加,在MATLAB命令窗口下使用下面的命令:
>> savepath
>>
4、檢驗是否成功設置的方法:
在命令窗口中輸入以下命令:which test_BNT.m(可以為所加工具箱的任一個M文件名稱),如果顯示正確,就說明上面的設置成功。
>> which test_BNT.m
D:\MATLAB7\toolbox\FullBNT-1.0.4\BNT\test_BNT.m
>>
3.關於FULLBNT使用簡單教程
http://www.cs.ubc.ca/~murphyk/Software/BNT/usage.html#examples
http://blog.sina.com.cn/s/blog_6c7b434d01013ufz.html
參考鏈接:http://blog.csdn.net/moodytong/article/details/8122327
D. 如何使用matlab中的工具箱
matlab帶有很多工具箱,你可以在matlab界面中點擊左下角的start圖標,進入Toolboxes,選擇你想使用的工具箱即可。
E. 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().
F. 如何用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)
G. matlab優化工具箱怎麼調用呀我們要處理貝葉斯診斷問題請問該怎麼操作
1、MATLAB自帶工具箱
查看方來式:源
首先詳細介紹一下MATLAB自帶工具箱的使用。
在不熟悉一些調用工具箱的命令的時候,可以在MATLAB主窗口中,點擊左下角start--toolboxes,就會羅列出MATLAB已經安裝的所有工具箱,可以根據個人的需要選擇將要使用的工具箱。可以看到有擬合工具箱、金融工具箱、最優化工具箱等等。
2、調用(打開)方式:以調用擬合工具箱為例,進行詳細的示例。
調用方式一:
按照以下步驟:
點擊主窗口左下角start--toolboxes--curve fitting--curve fitting tool 單擊,就可以打開擬合工具箱。
3、調用方式二:
在上一步中,在start--toolboxes--curve fitting--curve fitting tool ,到這里的時候,會看到在其後面有一個簡寫 cftool ,這就是擬合工具箱調用命令函數。在MATLAB主窗口中輸入cftool ,回車,同樣可以打開擬合工具箱。
4、工具箱的使用:
擬合工具箱打開之後,就可以進行多種曲線擬合了。
H. matlab2016版autoscale在哪
1.滑鼠右鍵點擊解壓到【Matlab 2016a】。
2.雙擊打開【Matlab 2016a】文件夾
3.選中setup,滑鼠右鍵【以管理員身份運行】
4.點擊使用文件安裝密鑰,選擇【下一步】
5.選擇【是】,點擊【下一步】
6.密鑰輸入【09806-07443-53955-64350-21751-41297】,點擊【下一步】
7.選擇軟體安裝路徑,點擊【下一步】
8.取消勾選 MATLAB Distributed Computing Sever 6.8,點擊【下一步】
9.勾選桌面,選擇【下一步】
10.點擊【安裝】
11.軟體正在安裝中,請耐心等待。
12.點擊【下一步】
13.點擊【完成】
14.在桌面上找到MATLAB R2016a,滑鼠右擊選擇【打開文件所在的位置】
15.打開【win64】文件夾
16.雙擊打開【破解文件】文件夾
17.復制破解文件中win64文件夾下的四個文件,粘貼到安裝路徑win64文件夾內
18.點擊【替換目標中的文件】。
19.雙擊圖標,運余磨棚行軟體(桌面沒有的話可以找到軟體安裝路徑(第7步設置的路徑) ,依次打開軟體安裝路徑文件夾->bin打開即可)
20.選擇在不使用Internet的情況下手動激活,點游皮擊【下一步】
21.選擇輸入許可證文件的完整路徑,點擊【瀏覽】
22.打開解壓好的文件夾中的破解文件豎則,選擇【license_standalone.lic】,點擊「選擇」
23.點擊【下一步】
24.點擊【完成】
25.安裝完畢,關注VX公眾號AU軟體管家共享各種資源。
I. 用MATLAB2016A將GUI文件編譯生成EXE後的運行問題!!
方法一:
已有gui.m文件和gui.fig文件
1 在matlab的command窗口中輸入
mcc -B sgl GUI.m
2.將上步生成的文件包括*m 文件和*.fig文件一起考到待運行的機器,此時仍需matlab所必需的動態連接庫。
3. 將 <matlab path >/extern/lib/win32/mglinstallar.exel拷貝到到待運行機器上
4.在機器上先運行mglinstallar.exe, 然後選擇解壓目錄,將在將在指定目錄下解壓縮出bin和toolbox兩個子目錄,
其中在binwin32目錄下就是數學庫和圖形庫脫離MATLAB運行所需的所有動態連接庫,共
有37個。可以將這些.dll考入system32, 也可以直接放在應用程序目錄下。
而toolbox目錄則必須與應用程序同一目錄。
方法二:
matlab編程很方便,強大的矩陣運算功能,很多好用的工具箱,但是一般程序都要在matlab環境中運行,能否脫離這個環境打包發布,matlab也提供了這樣的工具。
1. 轉化為c/c++程序並編譯為.exe
先驗證mcc是否可用,用matlab中的example驗證即可。
建議不用matlab默認的lcc 編譯器(可能有問題),可使用VC6編譯器(按默認路徑安裝)。
由於帶有界面,需要圖像庫支持,編譯時應使用命令: mcc -B sglcpp pressure
編譯生成若干c/c++源碼,以及.exe文件、bin目錄中figure菜單條/工具條文件(.fig)等
程序發布需要.exe、bin、.fig。
2. 在未裝matlab的電腦上運行程序需要數學運行時庫、圖像運行時庫以及用到的工具箱mex文件。
前兩者已經在.exe壓縮包中,將其解壓,並在環境變數path中添加解壓到的路徑。
另外若程序中還用到其他工具箱的東西,那麼需要將此工具箱中需要的mex文件也一並放在解壓到的路徑,子文件夾位置與matlab中的位置相同。
3. 在確保.exe程序可以運行的情況下 可以用setup factory打包發布。