R Caret Train: результаты испытаний намного лучше, чем данные поезда - PullRequest
0 голосов
/ 22 января 2019

(я не уверен, является ли это вопросом R Caret или статистикой, но я думаю, что у меня только проблемы с пониманием вывода результатов поезда кареты)

Извините, что не предоставил работающего примера, этот вопросо понимании вывода каретки.

Мой набор данных dt_in имеет размеры 17 000 x 80.

У меня есть следующий код для обучающих моделей (например, случайный лес, усиленные линейные модели), который приводит кв гораздо лучшем случае RMSE, R ^ 2 и MAE для теста, чем для обучающего набора данных.Неважно, какую модель я использую, RMSE результата теста обычно на ~ 10% -30% ниже.

  # prepare datasets ----------------------------------------------------------------------------
  training_indices = createDataPartition(dt_in[, dep], p = .75, list = F)
  dt_training = dt_in[training_indices]
  dt_test = dt_in[-training_indices]

  tc = trainControl(method = "repeatedcv",number = 10,repeats = 3)

  # train ---------------------------------------------------------------------------------------  
  trained = train(dt_training[, -"dep"] , dt_training[, dep], method = fun, trControl = tc)
  # model evalution ---------------------------------------------------------

  trained$results
    mtry     RMSE  Rsquared      MAE   RMSESD RsquaredSD    MAESD
  1    2 80.59007 0.2192741 46.86460 21.27305 0.06727583 2.937344
  2   40 73.42838 0.3747700 40.95060 18.61011 0.05384239 1.291299
  3   79 71.62358 0.3975308 40.42657 19.50400 0.07105303 1.502392

  # test results
  models_predicted = extractPrediction(list(trained), 
                    testX = dt_test[, -"dep"],
                    testY = dt_test[, dep])
  postResample(models_predicted$pred, models_predicted$obs)

  RMSE   Rsquared        MAE 
  59.1520342  0.5816214 23.3004383 

Я уже избавился от экстремальных выбросов в зависимой переменной, которые могут быть болееможет появиться в наборе обучающих данных.

Я понимаю, что делает extractPrediction, но я не уверен, как рассчитывается trained$results, просто потому, что он основан на наборах данных для повторной выборки.Я не понимаю, как результаты теста могут быть намного лучше, чем результаты тренировок.

...