Кросс-валидация методом «один против всех»

term_id: leave_one_out_cross_validation

Category: basic_concepts

Definition

Кросс-валидация методом «один против всех» (LOOCV) является частным случаем k-блочной кросс-валидации, где k равно количеству образцов в наборе данных. Она дает почти несмещенную оценку производительности модели, вычисляя среднее значение ошибки на каждой итерации, когда одна точка используется как тестовая, а остальные — как обучающая.

Summary

Строгий метод ресэмплинга, при котором модель обучается на всех выборках, кроме одной, и тестируется на этой единственной оставленной выборке; процесс повторяется для каждой точки данных.

Key Concepts

  • Ресэмплинг
  • Оценка модели
  • Компромисс смещения и дисперсии
  • Вычислительная стоимость

Use Cases

  • Оценка моделей на небольших медицинских наборах данных
  • Настройка гиперпараметров при дефиците данных
  • Строгое сравнение производительности алгоритмов

Code Example

1
2
3
4
5
6
7
from sklearn.model_selection import LeaveOneOut
loo = LeaveOneOut()
for train_index, test_index in loo.split(X):
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]
    model.fit(X_train, y_train)
    score = model.score(X_test, y_test)