首先,您对“先验概率”一词的使用似乎是错误的。对于具有离散值的任何节点 N,N 的某个值先验发生的概率为。如果一个节点没有父节点,则有兴趣计算这个概率。但是,如果一个节点有父节点 P,则有兴趣计算条件概率,即在给定其父节点的情况下出现某个 N 值的概率。这是。nip(N=ni)p(N=ni|P)
关于您的实际问题:如果父母是连续的并且子节点是a)离散或b)连续,如何计算子节点的条件概率。我将使用一个具体的例子来解释一种方法,但我希望总体思路会很清楚。
考虑这个网络:

其中补贴和购买是离散的节点,而收获和成本是连续的。
a) p(Cost|Subsidy, Harvest) 两种选择:
- 离散化 Harvest 并将其视为离散 => 可能信息丢失
- 建模从当前收获值到描述成本分布的参数的映射。
2.的细节:假设成本可以使用正态分布建模。在这种情况下,通常固定方差并将 Harvest 的值线性映射到高斯的平均值。父补贴(二进制)仅添加约束,为补贴=true 和补贴=false 创建单独的分布。
结果:
p(Cost=c|Harvest=h,Subsidy=true)=N(α1∗h+β1,σ21)(c)
p(Cost=c|Harvest=h,Subsidy=false)=N(α2∗h+β2,σ22)(c)
对于一些 s 和 s。αβ
b) p(Buys|Cost) 在这种情况下,需要将某些成本发生的概率映射到 Buy=True 的概率 (p(Buy=False) = 1-p(Buy=True))。(请注意,这与逻辑回归中的任务相同)。一种方法是,如果父项具有正态分布,则计算标准正态分布的从 0 到 x 的积分,其中 x 是父项的 z 变换值。在我们的示例中:
其中 =mean 和 = Cost 分布的标准差。在这种情况下而不是,因为观察(从数据中提取的知识!)是,成本越低,购买的可能性就越大。p(Buys=true|Cost=c)=integral(0,−c+μσ)μσ−c+μμ−c
在非二进制离散子节点的情况下,一种方法是将一个多值问题转换为多个二进制问题。
示例来源/进一步阅读:
罗素和诺维格的“人工智能:一种现代方法”