R bnlearn - 使用naive.bayes()的参数学习check.data()错误

时间:2015-07-07 18:51:17

标签: r machine-learning graph-theory naivebayes

我有一个图形结构,从另一种方法确定,我想做参数学习。然而,bnlearn方法似乎直接在数据集上进行参数学习(严格地在数据帧中)。我有两个问题:如何使用bnlearn从igraph或graphNEL结构中进行参数学习?

第二个问题:当我尝试使用我的数据集进行参数学习时,我收到了check.data()错误。他们的示例代码有效,我无法理解为什么我的数据集没有。请参阅下面的代码和下面的可重现示例。

以下是他们的示例代码:

require(bnlearn)
require(Rgraphviz)
data(learning.test)
bn <- naive.bayes(learning.test, "A")
pred <- predict(bn, learning.test)
table(pred, learning.test[,"A"])

我可重复的示例(naive.bayes()调用上的错误):

require(bnlearn, Rgraphviz)
data <- data <- matrix(sample.int(200, 61*252, TRUE), nrow=252, ncol=61)
data <- as.data.frame(matrix(as.numeric(as.matrix(data)), ncol=ncol(data), 
        byrow=TRUE))
bn <- naive.bayes(data, names(data)[1])

错误讯息:

Error in check.data(data, allowed.types = discrete.data.types) : 
valid data types are:
* all variables must be unordered factors.
* all variables must be ordered factors.
* variables can be either ordered or unordered factors.

我不认为这个错误来自检测整数,因为当我将数据转换为数据帧时,我首先将其转换为数字,因为bnlearn中的其他方法需要数字或因子数据。此数据集是计数数据,但我想使用该方法,假设我使用的是连续数据集。这有意义吗?

0 个答案:

没有答案