我需要對貝葉斯網絡進行一些推理,例如我在下面創建的示例。 貝葉斯網絡中的推理
我正在尋找像這樣的事情來解決諸如P(F | A = True,B = True)的推論。我最初的做法是像做
For every possible output of F
For every state of each observed variable (A,B)
For every unobserved variable (C, D, E, G)
// Calculate Probability
但我不認爲這會工作,因爲我們確實需要許多變數一次走了過來,不是每一次。
我聽說過珍珠算法的消息傳遞,但我還沒有找到一個合理的描述,不是非常密集。爲了增加信息,這些貝葉斯網絡被約束爲不超過15-20個節點,並且我們有所有的條件概率表,這些代碼並不一定是快速或有效的。
基本上我正在尋找一種方法來做到這一點,不一定是最好的方式來做到這一點。
你的圖只是一個例子,或者是所有觀察到的最高變量? –
珍珠的消息傳遞算法只適用於網絡,但不循環。對於離散和高斯變量的循環網絡有精確的算法,但它們並不簡單。我的建議是找一些軟件做了計算,因此,所有你需要做的就是進入網絡描述(變量,連接和概率表),並運行查詢。這裏有商業和非商業軟件;對不起,我沒有推薦。 –
圖表只是一個例子,頂部變量並不總是嚴格遵守 – suphug22