我需要执行朴素的贝叶斯文本分类。运行naiveBayes()方法时出错

时间:2016-04-14 07:11:19

标签: r text-classification naivebayes

我在R中使用naiveBayes()方法时遇到错误。我将as.matrix(train_matrix)作为第一个参数传递,并将as.factor(train_data $ subcategory)传递给naiveBayes函数。

我收到以下错误:

model< - naiveBayes(as.matrix(trainmatrix),as.factor(traindata $ subCategory)); tapply错误(var,y,mean,na.rm = TRUE):   参数必须具有相同的长度

有人可以帮我吗?

model <- naiveBayes(as.matrix(trainmatrix),as.factor(traindata$subCategory));

其中trainMatrix是术语文档矩阵,traindata - 是需要训练模型的数据,subCategory是类(不同级别)。

我是以正确的方式做的吗?

2 个答案:

答案 0 :(得分:0)

错误清楚地表明您的矩阵(列车矩阵)与数据帧(列车数据)的长度不同,这显然是预期的。 使用语法 模型&LT; -naiveBayes(traindata $子类别〜,数据= traindata)

答案 1 :(得分:0)

完成创建模型和混淆矩阵。以下是代码段:

model <- naiveBayes(as.matrix(trainmatrix),as.factor(traindata$subCategory));

confusionMatrix(results, traindata$subCategory)

结果是预测结果。 注意:结果的长度和traindatat $ subcategory必须相同,(我缺少)。