贝叶斯网络中的变量必须是布尔值吗?

时间:2017-11-26 05:01:39

标签: artificial-intelligence bayesian

我无法相信我无法找到相关信息,但贝叶斯网络中的变量必须是布尔值吗?我在教科书或在线中找到的每个例子都使用T / F变量,但是如何在贝叶斯网络中表示具有两个以上可能值的变量?

例如,我遇到了以下问题:

我们有一袋三个有偏见的硬币a,b和c,其概率为20%,60%, 和80%,分别。从袋子中随机抽取一枚硬币(具有相同的绘图可能性) 三个硬币中的每一个),然后将硬币翻转三次以产生结果X1,X2和 X3。

绘制与此设置对应的贝叶斯网络,并定义必要的CPT(条件 概率表)。

任何人都可以帮我指明一个方向来开始这个吗?

3 个答案:

答案 0 :(得分:1)

贝叶斯网络支持具有两个以上可能值的变量。 Koller和Friedman"概率图形模型"有更大变量的例子。

通常BN具有离散的随机变量(具有有限数量的不同值)。但也可以使用可数无限或连续变量来定义它们。在后一种情况下,推理算法会发生很大变化。

现在我尝试在网上找到一些例子,我不得不承认你是正确的。他们很难找到。这是一个从上面的书中得到的例子。变量Grade可以采用三个不同的值。

enter image description here

答案 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是上面的数字,但我不确定。