Перекрестная проверка с исключением одного в r (с примерами)


Чтобы оценить эффективность модели на наборе данных, нам необходимо измерить, насколько хорошо прогнозы, сделанные моделью, соответствуют наблюдаемым данным.

Обычно используемый метод для этого известен как перекрестная проверка с исключением одного (LOOCV) , в котором используется следующий подход:

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

2. Создайте модель, используя только данные из обучающего набора.

3. Используйте модель, чтобы спрогнозировать значение отклика наблюдения, исключенного из модели, и вычислить среднеквадратическую ошибку (MSE).

4. Повторите этот процесс n раз. Рассчитайте тестовую MSE как среднее значение всех тестовых MSE.

Самый простой способ запустить LOOCV в R — использовать функцию trainControl() из библиотеки курсоров в R.

В этом руководстве представлен краткий пример того, как использовать эту функцию для выполнения LOOCV для заданной модели в R.

Пример: перекрестная проверка с исключением одного в R

Предположим, у нас есть следующий набор данных в R:

 #create data frame
df <- data.frame(y=c(6, 8, 12, 14, 14, 15, 17, 22, 24, 23),
                 x1=c(2, 5, 4, 3, 4, 6, 7, 5, 8, 9),
                 x2=c(14, 12, 12, 13, 7, 8, 7, 4, 6, 5))

#view data frame
df

y x1 x2
6 2 14
8 5 12
12 4 12
14 3 13
14 4 7
15 6 8
17 7 7
22 5 4
24 8 6
23 9 5

Следующий код показывает, как подогнать модель множественной линейной регрессии к этому набору данных в R и выполнить LOOCV для оценки производительности модели:

 library (caret)

#specify the cross-validation method
ctrl <- trainControl(method = " LOOCV ")

#fit a regression model and use LOOCV to evaluate performance
model <- train(y ~ x1 + x2, data = df, method = " lm ", trControl = ctrl)

#view summary of LOOCV               
print(model)

Linear Regression 

10 samples
 2 predictors

No pre-processing
Resampling: Leave-One-Out Cross-Validation 
Summary of sample sizes: 9, 9, 9, 9, 9, 9, ... 
Resampling results:

  RMSE Rsquared MAE     
  3.619456 0.6186766 3.146155

Tuning parameter 'intercept' was held constant at a value of TRUE

Вот как интерпретировать результат:

  • Для создания 10 моделей было использовано 10 различных образцов. В каждой модели использовались две переменные-предикторы.
  • Никакой предварительной обработки не было. То есть мы никак не масштабировали данные перед подгонкой моделей.
  • Метод повторной выборки, который мы использовали для создания 10 выборок, заключался в перекрестной проверке с исключением одного.
  • Размер выборки для каждого обучающего набора составлял 9 человек.
  • RMSE: среднеквадратическая ошибка. Это измеряет среднюю разницу между предсказаниями модели и фактическими наблюдениями. Чем ниже RMSE, тем точнее модель может предсказать фактические наблюдения.
  • Rsquared: это мера корреляции между предсказаниями модели и фактическими наблюдениями. Чем выше R-квадрат, тем точнее модель может предсказать фактические наблюдения.
  • МАЭ: Средняя абсолютная ошибка. Это средняя абсолютная разница между предсказаниями модели и фактическими наблюдениями. Чем ниже MAE, тем точнее модель может предсказать фактические наблюдения.

Каждое из трех измерений, представленных в результате (RMSE, R-квадрат и MAE), дает нам представление о производительности модели на неопубликованных данных.

На практике мы обычно подбираем несколько различных моделей и сравниваем три показателя, представленные здесь в результатах, чтобы решить, какая модель дает наименьший уровень ошибок при тестировании и, следовательно, является лучшей моделью для использования.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *