5-кратная перекрестная проверка - PullRequest
2 голосов
/ 31 марта 2020

Я использовал этот код для выполнения 5-кратной перекрестной проверки набора данных Дэвиса, найденного в библиотеке carData.

install.packages("caret")
library(caret)
trainControl<-trainControl(method="cv",number=5)
lm<-train(weight~height+repht+repwt,Davis,method="lm",trControl=trainControl)
lm

При выполнении этого я получаю сообщение об ошибке, в котором отсутствуют значения веса. Это сообщение об ошибке:

Ошибка в na.fail.default (список (вес = c (77L, 58L, 53L, 68L, 59L, 76L,: пропущенные значения в объекте * 1007) *

Буду очень признателен за любые предложения по решению этой проблемы. Заранее спасибо!

1 Ответ

1 голос
/ 31 марта 2020

В вашем предикторе отсутствуют ошибки, например:

library(caret)
data = mtcars
data$mpg[c(3,6,9)]<-NA
trainControl<-trainControl(method="cv",number=5)
fit<-train(mpg~cyl+hp,data,method="lm",trControl=trainControl)

Error in na.fail.default(list(mpg = c(21, 21, NA, 21.4, 18.7, NA, 14.3,  : 
  missing values in object

Используйте файл complete.cases для получения данных, содержащих полные наблюдения

complete.obs = complete.cases(data[,c("mpg","cyl","hp")])
data = data[complete.obs,]
fit<-train(mpg~cyl+hp,data,method="lm",trControl=trainControl)

В вашем случае это должно сделать быть:

complete.obs = Davis[,c("weight","height","repht","repwt")]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...