为CatNetwork对象解释CatNet&#;包的cnProb输出 [英] Interpreting 'catnet' package's cnProb output for a catnetwork object
本文介绍了为CatNetwork对象解释CatNet&#;包的cnProb输出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是贝叶斯网络的新手。我正尝试在R中使用CatNet包,但我在理解cnProb()函数的输出时遇到了困难。例如,下面是一个新的CatNetwork对象:
cnet_test <- cnNew(
nodes = c("a", "b", "c"),
cats = list(c("1","2"), c("1","2"), c("1","2")),
parents = list(NULL, c(1), c(1,2)))
这应该会产生这样的网络,对吗?我假设Parents=此处的参数表示节点X是...的父节点
但是,在此CatNet对象上执行cnProb()时,它返回以下内容:
$a
1 2
0.19 0.81
$b
a 1 2
A 1 0.396 0.604
B 2 0.611 0.389
$c
a b 1 2
A 1 1 0.519 0.481
B 1 2 0.878 0.122
A 2 1 0.666 0.334
B 2 2 0.89 0.11
这似乎与网络图完全相反。根据文档,cnprob:
返回由指定节点的条件概率列表 CatNetwork对象的哪个参数。节点概率为 报告格式如下。首先,节点名及其父节点是 给定,则对应于所有的概率值列表 父类别(放在方括号中)和节点的组合 类别。例如,一个节点的条件概率 两个父节点,使得节点及其父节点都有三个 类别,由27个值提供,333各有一个值 组合。我想知道我们究竟如何解释cnProb的输出?或者,我对cnNew的Parents参数的解释是错误的。任何信息都将有所帮助。
推荐答案
您对cnNew()中的&parents";参数的解释不正确,并且您的图表与您实际定义的网络不对应。 ";Parents=List(空,c(1),c(1,2))";表示";1";是";2";的父项,而";1和2";是";3";的父项。因此,网络是{a-&>b;a-&>c,b-&>c}。
这篇关于为CatNetwork对象解释CatNet&#;包的cnProb输出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文