R naiveBayes分类器预测“下标越界”

时间:2017-02-20 19:20:10

标签: r naivebayes subscript

我是R的新手,我正在努力解决为什么我的预测超出范围。问题应该是一个简单的解决方案,因为这更像是一个介绍。

使用火车数据设置我的分类器

php artisan --version

但是当我尝试执行预测功能时会发生错误

sms_classifier <- naiveBayes(sms_train, sms_train_labels)

错误 错误

sms_test_pred <- predict(sms_classifier, sms_test)

1 个答案:

答案 0 :(得分:1)

假设您正在尝试构建一个需要documentTerm矩阵的垃圾邮件分类器,当测试数据集中有更多因素(也就是术语)而不存在于训练数据集中时,就会发生这种情况。所以使用下面的代码摆脱这些非常罕见的术语 -

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))

上面的代码将删除任何不常用的术语(无论如何它们都是无用的),并且测试数据集中的级别将匹配训练数据集中的级别。然后预测函数不应该抛出任何错误。