У меня есть фрейм данных с 45045 переменными и только 90 наблюдениями в R. Я сделал PCA, чтобы уменьшить размерность, и я буду использовать 14 основных компонентов. Мне нужно делать прогнозы, и я хочу попробовать использовать метод Наивного Байеса. Я не могу использовать функцию прогнозирования с преобразованными данными, и я не понимаю ошибку.
Вот код:
data.pca <- prcomp(data)
Я буду использовать 14 ПК:
newdata <- as.data.frame(data.pca$x[,1:14]) #dimension: 90x14
Обучение:
библиотека (naivebayes)
mod.nb <- naive_bayes(label ~ newdata$PC1+...+newdata$PC14, data = NULL)
Попробуйте предсказать 50-е наблюдение:
test.pca <- predict(data.pca, newdata = data[50,])
test.pca <- as.data.frame(test.pca)
test.pca <- test.pca[,1:14]
pred <- predict(mod.nb, test.pca)
Я получаю следующие ошибки:
predict.naive_bayes(): Only 0 feature(s) out of 14 defined in the naive_bayes object "mod.nb" are used for prediction.
predict.naive_bayes(): No feature in the newdata corresponds to probability tables in the object. Classification is done based on the prior probabilities
Вектор меток является фактором с уровнями от 1 до 6, и для любого наблюдения, которое я пытаюсь предсказать, результат равен только 1. Например, 50-е наблюдение имеет метку 4.