R caret package, Error: Пожалуйста, убедитесь, что `y` является фактором или числовым значением - PullRequest
0 голосов
/ 15 октября 2018

Я пытаюсь использовать пакет Caret для перекрестной проверки созданной мной модели.Это зависит от 3 переменных, но набор данных, который я использовал, имеет гораздо больше, чем это.Чтобы воспроизвести более точный пример, я создал переменные abcd и e, но для прогнозирования используем только ab и c.

a <- rnorm(10)
b <- rnorm(10)
c <- rnorm(10)
d <- rnorm(10)
e <- rnorm(10)
y <- rnorm(10)
df <- data.frame(a,b,c,d,e,y, stringsAsFactors=FALSE)

library(caret)
model <- train(
df$y ~ df$a + df$b + df$c, x = df,
method = "lm",
trControl = trainControl(
method = "cv", number = 10,
verboseIter = TRUE, 
))

Это дает ошибку: Пожалуйста, убедитесь, что y является фактором или числомзначение

Я пробовал несколько способов изменить y, но не повезло.Кто-нибудь знает из опыта, почему это не работает?Я гуглил пару часов и не могу найти точно такую ​​же проблему.

1 Ответ

0 голосов
/ 15 октября 2018

Вы должны либо использовать формулу (и аргумент data) , либо x и y аргументы, вы смешиваете оба.Таким образом, вы можете использовать формулу с:

model <- train(
    y ~ a + b + c, data = df,
    method = "lm",
    trControl = trainControl(
        method = "cv", number = 10,
        verboseIter = TRUE, 
    ))

(вам не нужно писать df$y, df$a и т. Д., Потому что вы предоставляете аргумент data, чтобы R знал, что искать вэтот фрейм данных)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...