0

我对 R 很陌生。我的数据如下所示:

> head(NB)
       a     s    e    i
9011 20-30   F  Others 10-50K
9012 GT 45   M  Others 10-50K

我将它与 naiveBayes 分类如下:

c = i ~ a + s + e
cl = naiveBayes(c, head(NB,1500), laplace = 0)

然后我在这样的新数据上预测它的结果

> p <- predict(classifier, tail(NB, 500), type = c("class", "raw"), threshold = 0.001)

我想查看 p 中每个数据点的预测,看看它与 p 的实际值的匹配程度——但我无法弄清楚 p 实际代表什么。它似乎没有行也没有列——但它绘制成一个直方图,似乎显示了数据的预测。

> nrow(p)
NULL
> ncol(p)
NULL
> str(p) says 
Factor w/ 3 levels "10-50K","50-80K",..: 1 1 1 1 1 1 1 1 1 1 ...

到底是怎么回事?我如何找出它预测的内容,例如 P 数据集中的第三个值?为什么 p 没有任何行或列?

4

1 回答 1

1

p 是因子的向量。在 R 中,向量没有行数或列数,只有长度。打字length(p)会给你长度。p 的每个元素是“10-50K”、“50-80K”或第三个值之一。要查看 p 中的不同值,请键入unique(p)。要获取 p 的第三个元素,只需像使用任何其他向量一样访问它p[3]或查看所有 p print(p)。如果要计算与原始数据相同的数字,请尝试sum(p == NB$i). 在这里查看更多信息http://www-users.cs.york.ac.uk/~jc/teaching/arin/R_practical/

于 2013-10-29T00:36:16.453 回答