model.frame.default(formula = mldata.knn $ Gender〜。,data = mldata_train,:中的错误:可变长度不同(为'Age'找到)

时间:2019-09-21 07:36:07

标签: r

set.seed(400)
random <- createDataPartition(mldata.knn$Transport, p=0.70,list = F)
mldata_train <- mldata.knn[random,]
mldata_test <- mldata.knn[-random,]
print(table(mldata.knn$Transport))
print(table(mldata_train$Transport))
library(e1071)
NB_model = naiveBayes(mldata.knn$Gender ~., data = mldata_train)
print(NB_model)

model.frame.default中的错误(公式= mldata.knn $ Gender〜。,data = mldata_train,:可变长度不同(为'Age'找到)

1 个答案:

答案 0 :(得分:0)

在对数据进行朴素贝叶斯分类时,数据的长度是不同的。无论您的mldata.knn的长度是多少,您的训练数据集mldata_train都将包含70%的数据,这是基于您从createDataPartition进行的70/30拆分中得出的。

因此,在声明中:

NB_model = naiveBayes(mldata.knn$Gender ~., data = mldata_train)

您有mldata.knn$Gender,其长度为原始数据集(mldata.knn),还有公式中点(。)中的任何变量-但这些变量取自{ {1}},因为该语句包括mldata_train。这些其他变量的长度将不同(仅占原始数据的70%)。

也许您只是打算使用训练数据来做您的NB分类器:

data = mldata_train