我无法相信我无法找到相关信息,但贝叶斯网络中的变量必须是布尔值吗?我在教科书或在线中找到的每个例子都使用T / F变量,但是如何在贝叶斯网络中表示具有两个以上可能值的变量?
例如,我遇到了以下问题:
我们有一袋三个有偏见的硬币a,b和c,其概率为20%,60%, 和80%,分别。从袋子中随机抽取一枚硬币(具有相同的绘图可能性) 三个硬币中的每一个),然后将硬币翻转三次以产生结果X1,X2和 X3。
绘制与此设置对应的贝叶斯网络,并定义必要的CPT(条件 概率表)。
任何人都可以帮我指明一个方向来开始这个吗?
答案 0 :(得分:1)
贝叶斯网络支持具有两个以上可能值的变量。 Koller和Friedman"概率图形模型"有更大变量的例子。
通常BN具有离散的随机变量(具有有限数量的不同值)。但也可以使用可数无限或连续变量来定义它们。在后一种情况下,推理算法会发生很大变化。
现在我尝试在网上找到一些例子,我不得不承认你是正确的。他们很难找到。这是一个从上面的书中得到的例子。变量Grade
可以采用三个不同的值。
答案 1 :(得分:1)
很好的问题。在特定的家庭作业问题上,有人已经指出了正确的方向,所以我不再重复;我会尝试添加一些可能有用的直觉。
你需要的直觉是,贝叶斯网络 ,而不是表示一组条件独立性假设的视觉(图形)方式。 因此,例如,如果X和Z是给定Y的条件独立变量,那么您可以绘制贝叶斯网络X→Y→Z。相反,唯一的东西即贝叶斯网X→ Y→Z告诉你有三个变量(X,Y,Z),并且给定Y,X和Z在条件上是独立的。
一旦你理解了这一点,那么你就会意识到任何你可以编写条件独立性假设的东西,你可以为其绘制贝叶斯网络,反之亦然。
即,它们根本不需要布尔值。
答案 2 :(得分:0)
通常贝叶斯网络使用每个节点的离散值建模,当这些值已知(或者由建模者设置值)时,人们会说概率分布对这些值进行分解。
我认为具有连续值的贝叶斯网络的理论框架也存在,但它们在数学上比离散更难(可能只适用于博士?)
此外,我无法解决你的问题,但也许 在R中试试这个:
library(dplyr) # loads mutate(), %>% (pipe operator)
Model <- c("Coin a", "Coin b", "Coin c")
Prior <- c(0.2, 0.6, 0.8)
Likelihood <- c(1/3, 1/3, 1/3)
bayes_df <- data.frame(Model=Model, Prior=Prior, Likelihood=Likelihood)
# posterior probabilities
bayes_df %>%
mutate(Product = Likelihood * Prior, Posterior = Product/sum(Product))
结果
Model Prior Likelihood Product Posterior
1 Coin a 0.2 0.3333 0.06667 0.125
2 Coin b 0.6 0.3333 0.20000 0.375
3 Coin c 0.8 0.3333 0.26667 0.500
我认为&#34;网络&#34;只是用箭头硬币连接的2个气泡 - &gt;选择和CPT是上面的数字,但我不确定。