贝叶斯网络中的变量必须是布尔值吗?
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 是上面的数字,但我不确定。
真不敢相信我找不到这方面的任何信息,但是贝叶斯网络中的变量必须是布尔值吗?我在教科书或网上找到的每个示例都使用 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 是上面的数字,但我不确定。