我是R的新手,我正在努力解决为什么我的预测超出范围。问题应该是一个简单的解决方案,因为这更像是一个介绍。
使用火车数据设置我的分类器
php artisan --version
但是当我尝试执行预测功能时会发生错误
sms_classifier <- naiveBayes(sms_train, sms_train_labels)
错误 错误
sms_test_pred <- predict(sms_classifier, sms_test)
答案 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))
上面的代码将删除任何不常用的术语(无论如何它们都是无用的),并且测试数据集中的级别将匹配训练数据集中的级别。然后预测函数不应该抛出任何错误。