Я пытаюсь предсказать с упрощенной моделью Knn с использованием пакета каретки в R. Это всегда дает ту же ошибку, даже в самом простом примере воспроизводимого здесь:Caret и КННЫ в R: предсказать функция выдает ошибку
library(caret)
set.seed(1)
#generate training dataset "a"
n = 10000
a = matrix(rnorm(n*8,sd=1000000),nrow = n)
y = round(runif(n))
a = cbind(y,a)
a = as.data.frame(a)
a[,1] = as.factor(a[,1])
colnames(a) = c("y",paste0("V",1:8))
#estimate simple KNN model
ctrl <- trainControl(method="none",repeats = 1)
knnFit <- train(y ~ ., data = a, method = "knn", trControl = ctrl, preProcess = c("center","scale"), tuneGrid = data.frame(k = 10))
#predict on the training dataset (=useless, but should work)
knnPredict <- predict(knnFit,newdata = a, type="prob")
Это дает
Ошибка в [.data.frame
(из,, obsLevels, падение = FALSE): неопределенные столбцы выбраны
Определение более реалистичный тест набора данных "б" без целевой переменной у ...
#generate test dataset
b = matrix(rnorm(n*8,sd=1000000),nrow = n)
b = as.data.frame(b)
colnames(b) = c(paste0("V",1:8))
#predict on the test datase
knnPredict <- predict(knnFit,newdata = b, type="prob")
дает ту же ошибку,
Ошибка в [.data.frame
(из,, obsLevels, падение = FALSE): неопределенные столбцы выбраны
Я знаю, что columnames очень важны, но здесь они идентичны. Что здесь не так? Благодаря!
Спасибо, я прочитал ответ в другой теме слишком поздно ... –