Sobes.tech
Middle
18

Что такое кросс-валидация? Какая бывает?

Companies where asked
AstonAston

Answer from AI

sobes.tech AI

Кросс-валидация — это метод оценки качества модели машинного обучения, при котором данные разбиваются на несколько частей (фолдов), и модель поочерёдно обучается на одних частях и тестируется на других. Это помогает получить более надёжную оценку, чем простое разделение на тренировочную и тестовую выборки.

Основные виды кросс-валидации:

  • k-fold: данные делятся на k равных частей. Модель обучается k раз, каждый раз используя k-1 часть для обучения и 1 часть для теста.
  • Stratified k-fold: вариант k-fold, при котором сохраняется пропорция классов в каждом фолде (важно для несбалансированных данных).
  • Leave-One-Out (LOO): каждый пример по очереди используется как тестовый, а остальные — для обучения. Очень затратный по времени.
  • Shuffle Split: случайное многократное разбиение данных на обучающую и тестовую выборки.

Пример k-fold (k=5):

from sklearn.model_selection import KFold
kf = KFold(n_splits=5)
for train_index, test_index in kf.split(X):
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]
    # обучение и оценка модели