日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

贝叶斯网络经典matlab源代码解析

發(fā)布時間:2023/12/20 循环神经网络 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 贝叶斯网络经典matlab源代码解析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

感謝貝葉斯網(wǎng)學(xué)習(xí)筆記

問題是這樣描述的:

福爾摩斯先生在他的辦公室工作時接到了他鄰居華生的電話。華生告訴他:他的家里可能進了竊賊, 因為他家的警鈴響了被告知有竊賊闖入,福爾摩斯迅速開車回家。在路上,他聽廣播得知他家那里 發(fā)生了地震。地震也有可能引起警報。這樣,請問福爾摩斯先生應(yīng)該回家抓賊還是迅速撤離該地區(qū) 以躲避地震?

簡單講,在路上的holmes需要判斷是盜賊還是地震導(dǎo)致警鈴?如果是前者,他需要回去抓賊,若是后者,則要逃離地震區(qū)。
所以圖中雖然有5個節(jié)點,地震并不100%導(dǎo)致警鈴,警鈴也不100%導(dǎo)致華生的信號。
但是我們在得到信號,聽到警鈴的情況下,可以通過計算盜賊導(dǎo)致警鈴的概率p1,和地震導(dǎo)致警鈴的概率pp1來進行決策,也可以計算在地震發(fā)生條件下,盜賊導(dǎo)致警鈴的概率p2。

  • P1表示在聽到警鈴的條件下,盜賊導(dǎo)致警鈴響的概率
  • PP1表示在聽到警鈴的條件下,地震導(dǎo)致警鈴響的概率PP1
  • P2,在地震發(fā)生的條件下,盜賊導(dǎo)致警鈴發(fā)生的概率。

如果p2比p1小,說明地震E才是導(dǎo)致A的主要原因。
反過來,如果P2和P1相同,說明地震這個新添加的條件,對警報沒有作用。
添加地震這個條件之后,還是盜賊的概率變小了,說明地震對警報是有影響的。

用用圖像描述如下:

圖片來源于realsa,表示感謝。

==注意:==節(jié)點的狀態(tài)是自己定義的,false = state 1 true = state 2,此處與jbb0523的理解剛好相反。
以下是源代碼分析

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %1、建立貝葉斯網(wǎng)絡(luò)結(jié)構(gòu) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% N = 3; %三個節(jié)點,分別是B、E、A dag = zeros(N,N);%建立一個N*N的0矩陣 B = 1; E = 2; A = 3; % %節(jié)點之間的連接關(guān)系 dag(B,A) = 1;%存在B指向A的邊 dag(E,A) = 1; %存在E指向A的邊 discrete_nodes = 1:N; %離散節(jié)點 node_sizes = 2*ones(1,N);%節(jié)點狀態(tài)數(shù)node_sizes的內(nèi)容為[2,2,2] bnet =mk_bnet(dag,node_sizes,'names',{ 'BB','EE','AAA'},'discrete',discrete_nodes); %name后面的{}里面給出了各個節(jié)點的別名 % % false = state 1 true = state 2,此處與[jbb0523](https://blog.csdn.net/jbb0523/article/details/79438092)的理解剛好相反 bnet.CPD{B} = tabular_CPD(bnet,B,[0.9 0.1]);%手動輸入的條件概率 入室盜竊發(fā)生的概率true 0.1 bnet.CPD{E} = tabular_CPD(bnet,E,[0.99 0.01]); bnet.CPD{A} = tabular_CPD(bnet,A,[0.99 0.1 0.1 0.01 0.01 0.9 0.9 0.99]); %利用tabular_CPD設(shè)置各個變量的邊緣概率,對于B和E,定義順序是False True%對于T、L和B這類,順序是FF FT TF TT; %對于D這類,順序是FFF FFT FTF FTT TFF TFT TTF TTT%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %2、畫出建好的貝葉斯結(jié)構(gòu) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% draw_graph(dag);%畫圖%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %3、使用聯(lián)合樹引擎對貝葉斯網(wǎng)絡(luò)進行推斷 engine = jtree_inf_engine(bnet); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %4、求解邊緣分布假設(shè) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %我們要計算盜竊導(dǎo)致響鈴的概率 %P1=P(B|A) evidence = cell(1,N);%創(chuàng)建一個1*n的空的矩陣 evidence{A} = 2; % %這里1是false,2True,等于讓A是True.%C{s}使用這種"{}"形式的返回的是cell中的內(nèi)容[engine, loglik] = enter_evidence(engine, evidence); marg = marginal_nodes(engine, B); %P1=P(B|A) p1 = marg.T(2);%算出p1=0.8412 P1 %現(xiàn)在我們添加地震的證據(jù)觀察它有什么不同P2=P(B|A,E) evidence{E} = 2;% %這里1是false,2True,等于讓E是True. [engine, loglik] = enter_evidence(engine, evidence);%loglik對數(shù)似然 marg = marginal_nodes(engine, B); p2 = marg.T(2);%算出p2=0.1089 %結(jié)論是地震更能解釋響鈴這個主要事實 %聯(lián)合概率分布%P( B=True|A=True,E=True) evidence = cell(1,N); evidence{A} = 2; evidence{E} = 2; [engine, ll] = enter_evidence(engine, evidence);%ll m = marginal_nodes(engine, [B E A]);

[engine, ll] = enter_evidence(engine, evidence);里面是LL不是1,也有人選擇loglik,不過也有人直接把這兩個都去掉,但是結(jié)果是相同的,不知道是什么原因。
CPT表如何排列
m的結(jié)果如何輸出,m的結(jié)果如何解讀,是下一步的重點。

總結(jié)

以上是生活随笔為你收集整理的贝叶斯网络经典matlab源代码解析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。