我在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是类(不同级别)。
我是以正确的方式做的吗?
答案 0 :(得分:0)
错误清楚地表明您的矩阵(列车矩阵)与数据帧(列车数据)的长度不同,这显然是预期的。 使用语法 模型&LT; -naiveBayes(traindata $子类别〜,数据= traindata)
答案 1 :(得分:0)
完成创建模型和混淆矩阵。以下是代码段:
model <- naiveBayes(as.matrix(trainmatrix),as.factor(traindata$subCategory));
confusionMatrix(results, traindata$subCategory)
结果是预测结果。 注意:结果的长度和traindatat $ subcategory必须相同,(我缺少)。