为CatNetwork对象解释CatNet&#;包的cnProb输出 [英] Interpreting 'catnet' package's cnProb output for a catnetwork object

查看:0
本文介绍了为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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆