R: Правильно ли понимаете проверку K-Fold? - PullRequest
0 голосов
/ 01 мая 2020

Добрый день.

Я хотел проверить работоспособность после проведения исследования о перекрестной проверке k-Fold . Я предоставлю свое понимание, а затем приведу пример того, как выполнить предвзятое понимание в R .

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

  • Иметь набор данных о населении (xDF)
  • Я хочу разбить набор данных на k = 10 отдельных частей, обучаем модель на 9 из них (связанных), а затем проверяем на оставшемся наборе проверки
  • Затем я хочу провести l oop через каждый набор проверки, чтобы наблюдать, как модель работает на необученные сегменты данных
  • Показатели производительности модели ( RMSE для этого примера) в kth -кратном проверочном наборе, который отображает аналогичные результаты в проверочном наборе k + 1 ... k + 9-й показано, что модель хорошо обобщена

R Код:

#Declaring randomly sampled validation indices

ind <- sample(seq_len(nrow(xDF)), size = nrow(xDF))



n <- (nrow(xDF)/10)
nr <- nrow(xDF)
validation_ind <- split(ind, rep(1:ceiling(nr/n), each=n, length.out=nr))

#Looping through validation sets to obtain Model Performance measure of each set
RMSEsF <- double(10)
RMSEsFT <- double(10)
R2F <- double(10)
R2FT <- double(10)
rsq <- function (x, y) cor(x, y) ^ 2

for (i in 1:10){


    validate = as.data.frame(xDF[unlist(validation_ind[i]),])
    train = as.data.frame(xDF[unlist(validation_ind[-i]),])


    rf_train = randomForest(y~.,data=train,mtry=3)


    predictions_rf = predict(rf_train,validate)
    predictions_rft = predict(rf_train, train)


    RMSEsF[i] = RMSE(predictions_rf, validate$y)
    RMSEsFT[i] = RMSE(predictions_rft, train$y)
    R2F[i] = rsq(predictions_rf, validate$y)
    R2FT[i] = rsq(predictions_rft, train$y)

    print(".")


}

RMSEsF
RMSEsFT

Am Я собираюсь об этом правильно?

Большое спасибо заранее.

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