Sobes.tech
Middle — Senior
31

Как использовать кросс-валидацию для оценки модели?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

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

Самый распространённый вариант — k-fold кросс-валидация:

  1. Разбиваем данные на k равных частей.
  2. Для каждой из k частей:
    • Обучаем модель на остальных k-1 частях.
    • Проверяем модель на текущей части (валидационном наборе).
  3. Среднее значение метрик по всем k итерациям даёт более надёжную оценку качества модели.

Это помогает избежать переобучения и получить более объективную оценку, чем простое разбиение на тренировочную и тестовую выборки.

Пример на Python с использованием scikit-learn:

from sklearn.model_selection import cross_val_score
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris

iris = load_iris()
X, y = iris.data, iris.target
model = RandomForestClassifier()
scores = cross_val_score(model, X, y, cv=5)  # 5-fold кросс-валидация
print(f"Средняя точность: {scores.mean():.2f}")