R bnlearn Grow-Shrink结构学习

时间:2016-10-10 22:59:02

标签: r bayesian-networks

Nagarajan等人。本书(Bayesian Networks in R,O'Reilly 2013,p.35)表示,当我获取R bnlearn包的标记数据集并要求通过编写

来使用grow-shrink实现来学习结构时
library(bnlearn)
data(marks)
bn.gs = gs(marks)

申请时

bn.gs = gs(marks)

bn.gs甚至是bn.hc,它说:

  

“矩阵中的错误(c(x $ d,x $ pi,x $ sigma,x $ rho),ncol = 1):'data'必须是矢量类型,'NULL'”

我的数据类型似乎有问题,这与书籍完全相同。我该怎么办?

1 个答案:

答案 0 :(得分:0)

我无法重现这一点,但我希望我们能够弄清楚发生了什么,因为您似乎与我的设置相同。我将此作为答案发布,以便代码显示出来,但是一旦我们到达那里,我会将其修改为答案。

请尝试:

devtools::install_github("jennybc/reprex")
library(reprex)

将此代码复制到剪贴板(例如 CTRL + C

library(bnlearn)
data(marks)
bn.gs = gs(marks)
bn.gs

然后输入

reprex(venue = "so")

并粘贴输出。如果它有效,你应该得到类似下面的内容(如果它不是一个可重现的错误,应该会失败)

library(bnlearn)
data(marks)
bn.gs = gs(marks)
bn.gs
#> 
#>   Bayesian network learned via Constraint-based methods
#> 
#>   model:
#>     [undirected graph]
#>   nodes:                                 5 
#>   arcs:                                  6 
#>     undirected arcs:                     6 
#>     directed arcs:                       0 
#>   average markov blanket size:           2.40 
#>   average neighbourhood size:            2.40 
#>   average branching factor:              0.00 
#> 
#>   learning algorithm:                    Grow-Shrink 
#>   conditional independence test:         Pearson's Correlation 
#>   alpha threshold:                       0.05 
#>   tests used in the learning procedure:  44 
#>   optimized:                             TRUE