贝叶斯网络中单一子节点的变量消除

如果我们在贝叶斯网络中有一个节点X,它有一个子节点Y,为什么可以正确地将P(Y)表示为P(Y|X)P(X)?这是否意味着XY的必要条件?


回答:

贝叶斯网络

贝叶斯网络中的一条边表示变量是条件依赖的。如果节点之间没有任何路径连接,它们就是条件独立的。

有一个节点X及其子节点Y意味着你需要学习以下内容:

  • X为真时,Y为真的概率是多少?
  • X为假时,Y为真的概率是多少?

更一般地说:如果X可以有n个值,Y可以有m个值,那么你需要学习n * (m - 1)个值。这里的- 1是因为概率总和需要等于1。

示例

我们继续使用简单的二元变量案例,并使用维基百科的以下内容:

enter image description here

假设X是RAIN(下雨),Y是SPRINKLER(洒水器)。你想用X(下雨)来表达Y(洒水器)。

贝叶斯定理指出:

P(Y|X) = P(X|Y) * P(Y) / P(X)<=> P(Y) = P(Y | X) * P(X) / P(X | Y)

现在我们对X应用全概率定律。这意味着,对于X,我们只需遍历所有可能的值:

P(Y) = P(Y | X = true) * P(X = true) +       P(Y | X = false) * P(X = false)

我想这就是你所指的。P(X=true | Y) = 1,因为X=true意味着我们已经知道X=true发生了。无论Y是什么都没有关系。

继续我们的案例,我们现在查找表格中的值(X是RAIN,Y是SPRINKLER):

P(Y) = 0.01 * 0.2 + 0.4 * 0.8     = 0.322

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注