Длина данных различается при создании наивного байесовского классификатора для данных.Какой бы ни была длина вашего 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)