R朴素贝叶斯分类器预测时出现“下标越界”错误

3

我刚接触R语言,正在试图解决我的预测结果超出边界的问题。这个问题应该很容易解决,因为它更多是介绍性质的。

使用训练数据设置分类器。

sms_classifier <- naiveBayes(sms_train, sms_train_labels)

但是当我尝试执行预测函数时,出现了错误。
sms_test_pred <- predict(sms_classifier, sms_test)

错误提示

中出现了错误。
`[.default`(object$tables[[v]], , nd + islogical[attribs[v]]) : subscript out of bounds
1个回答

1
假设您正在构建需要文档术语矩阵的垃圾邮件分类器,当测试数据集中有更多因素(也称为术语),而这些因素在训练数据集中不存在时,就会出现这种情况。因此,请使用以下代码消除这些非常罕见的术语-
freq_terms = findFreqTerms(dtm.train, 5)
reduced_dtm.train = DocumentTermMatrix(corpus.train, list(dictionary=freq_terms))
reduced_dtm.test =  DocumentTermMatrix(corpus.test, list(dictionary=freq_terms))

上述代码将消除任何较少频繁的术语(它们无用),测试数据集中的级别将与训练数据集中的级别匹配。然后,预测函数不应抛出任何错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接