Ошибка в model.frame.default (формула = mldata.knn $ Gender ~., Data = mldata_train,: переменные длины различаются (найдено для 'Age') - PullRequest
0 голосов
/ 21 сентября 2019
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 $ Пол ~., Данные = mldata_train,: переменные длины различаются (найдено для 'Age')

1 Ответ

0 голосов
/ 21 сентября 2019

Длина данных различается при создании наивного байесовского классификатора для данных.Какой бы ни была длина вашего mldata.knn, ваш набор обучающих данных mldata_train будет содержать 70% данных, основанных на вашем 70/30 разделении от createDataPartition.

Итак, в утверждении:

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

У вас есть mldata.knn$Gender, который имеет длину исходного набора данных (mldata.knn), а также любые переменные, которые были там от точки(.) в формуле - но эти переменные взяты из mldata_train, так как оператор включает data = mldata_train.Эти другие переменные будут иметь другую длину (только 70% исходных данных).

Возможно, вы намереваетесь просто использовать обучающие данные, чтобы сделать свой классификатор NB:

NB_model = naiveBayes(Gender ~., data = mldata_train)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...