У меня есть набор обучающих данных, который я беру (случайным образом) для обучения модели в R.
sampleSize <- floor(0.1 * nrow(trainingDataFrame))
train_index <- sample(seq_len(nrow(trainingDataFrame)), size = sampleSize)
trainDF <- trainingDataFrame[train_index,]
fit <- train(dependentVariable ~ ., data=trainDF,
trControl = trainControl(method = "cv",number = 10),method="lm")
Затем я использую эту модель для predict
значений в отдельном наборе данных тестирования. Однако есть факторное поле, которое для некоторых строк в моем наборе тестовых данных иногда имеет значения, которые не встречались в обучающем наборе из-за того, что я произвольно выбираю для обучающего набора значения. Это приводит к "factor ... has new levels"
ошибке.
На самом деле я повторяю этот процесс образец-поезд-прогноз на протяжении нескольких итераций, поэтому каждая запись тестового набора данных, скорее всего, в конечном итоге будет иметь некоторые допустимые прогнозы. Таким образом, для моего варианта использования действительно нормально, если некоторые записи не могут быть predict
-совместимы в любой конкретной итерации. Я бы не хотел исключать данную область из обучения модели.
Вместо этого можно ли указать функции predict
выдать мне na
или другое значение по умолчанию для этих недопустимых строк?
predict
сtryCatch
илиpurrr::safely()
? Или вы можете получить уровни, присутствующие в обучающем наборе для каждой итерации, и отфильтровать тестовый набор данных перед использованиемpredict
? - person Calum You   schedule 08.08.2018