簡體   English   中英

用於bnlearn中的貝葉斯Netoworks的Laplace Smoothig

[英]Laplace smoothig for Bayesian Netoworks in bnlearn

我正在嘗試使用R使用貝葉斯網絡,目前正在使用bnlearn框架。 我正在嘗試從數據中使用基於分數的結構學習,並嘗試不同的算法和方法。

我想知道是否在bnlearn實現了Laplace平滑。 我在文檔中找不到有關它的任何信息。 我錯過了什么嗎? 有人知道嗎?

不它不是。 但是,這應該沒問題,因為bnlearn中提供了不同的先驗,並且除非您有某些非常特殊的理由使用拉普拉斯平滑(這是一個特定的先驗),否則這些都應該做到。

一旦有了結構,就可以使用bn.fit()函數學習參數。 設置method = "bayes"使用貝葉斯估計,可選參數iss確定先驗。 iss的定義:“貝葉斯方法用來估計與離散節點關聯的條件概率表(CPT)的虛擬樣本大小”。

例如,考慮某個網絡中的二進制根節點X。 bn.fit()返回(Nx + iss / cptsize) / (N + iss)作為X = x的概率,其中N是您的樣本數, NxX = x的樣本數,並且cptsize的基數X ; 在這種情況下cptsize = 2因為X是二進制。 拉普拉斯校正將要求iss / cptsize始終等於1。但是, bnlearn對所有CPT使用相同的iss值,並且,如果所有變量具有相同的基數,則iss / cptsize將僅為1。 因此,對於二進制變量,通過設置iss = 2確實可以進行拉普拉斯校正。 但是,在一般情況下,這是不可能的。

有關其他更多信息,請參見bnlearn :: bn.fit的區別和方法“ mle”和“ bayes”的計算

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM