我正在尝试定义我的询问。也许我的话是错的。抱歉造成任何误会。
cptD中的四个概率是指根据“ C”事件对“ D”事件的预测。例如“ C”事件:“ TRUE”,“ FALSE”和“ D”可能的事件:“ y”,“ n”。因此,它是具有给定概率的2x2表。我的问题是:
先前的知识:如何将来自“ A”和“ B”事件的“ C”可能事件的预测传递到“ D”节点?
因为如果我理解正确,C是由A和B预测的,而D是由C预测的。 但是,在“ C”节点中再次定义了概率。
我们可以在C-D交互中传递计算出的概率吗?怎么样 ? 请提供清晰的R示例,因为我很困惑。 请用简单的词描述节点“ D”的概率。
网络是由专家知识定义的。我们能否定义A事件,B事件,仅C事件,仅D事件的概率, 然后C(与A,B)和D(与C)事件交互的概率从一个节点传递到另一个节点?
事件和交互的概率都必须独立于先前的节点事件计算吗?
那么,如果A和B节点中的概率发生变化,这将不会影响D节点中的概率?如果是,怎么办?如果没有,为什么?如果同时出现,怎么办?
这里是示例:
library(bnlearn)
net = model2network("[A][B][C|A:B][D|C]")
cptA = matrix(c(0.4, 0.6), ncol = 2, dimnames = list(NULL, c("LOW", "HIGH")))
cptB = matrix(c(0.8, 0.2), ncol = 2, dimnames = list(NULL, c("GOOD", "BAD")))
cptC = array(c(0.5, 0.5, 0.4, 0.6, 0.3, 0.7, 0.2, 0.8), dim = c(2, 2, 2), dimnames = list("C" = c("TRUE", "FALSE"), "A" = c("LOW", "HIGH"),"B" = c("GOOD", "BAD")) )
cptD = matrix( c(0.4, 0.6, 0.2, 0.8), ncol = 2, dimnames = list("D" = c("y", "n"), "C" = c("TRUE", "FALSE") ) )
cfit = custom.fit( net, dist = list( A = cptA, B = cptB, C = cptC, D=cptD ) )
graphviz.chart( cfit )