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

Do variables in Bayesian Networks have to be Boolean?

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

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

我们有一袋三枚有偏见的硬币 a、b 和 c,正面朝上的概率分别为 20%、60%、 和 80%。从袋子中随机抽取一枚硬币(抽取的可能性相等 三个硬币中的每一个),然后将硬币翻转三次以生成结果 X1、X2 和 X3.

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

任何人都可以帮我指出开始这个的方向吗?

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

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

既然我试着在网上找了一些例子,我不得不承认你是对的。他们很难找到。这是从上面的书中摘录的示例。变量 Grade 可以取三个不同的值。

问得好。关于具体的作业问题,已经有人给你指出了正确的方向,我就不再重复了;我会尝试添加一些可能有用的直觉。

您在这里需要的直觉是,贝叶斯网络只不过是表示一组条件独立性假设[=的视觉(图形)方式而已21=]。 因此,例如,如果 X 和 Z 是给定 Y 的条件独立变量,那么您可以绘制贝叶斯网络 X → Y → Z。相反,唯一 贝叶斯网络net X → Y → Z 告诉你存在三个变量 (X, Y, Z) 并且 X 和 Z 在给定 Y 的情况下是条件独立的。

一旦你理解了这一点,你就会意识到任何你可以为其编写条件独立假设的东西,你都可以为其绘制贝叶斯网络,反之亦然。
即,它们根本不需要是布尔值。

通常贝叶斯网络是用每个节点的离散值建模的,当这些值已知(或值由建模者设置)时,人们会说概率分布分解这些值。

我认为具有连续值的贝叶斯网络的理论框架也存在,但它们在数学上比离散更难(可能只适合博士?)

此外,我无法立即解决你的问题,但也许 在 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

我认为 "network" 只是用箭头硬币连接的 2 个气泡 -> 选择,CPT 是上面的数字,但我不确定。