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

Чтобы избежать этого, обычной практикой при выполнении (контролируемого) машинного обучения является предоставление другой части набора данных, так называемого «проверочного набора»: обучение продолжается на обучающем наборе, после чего выполняется оценка на проверочном наборе, и когда оценка точности кажется достаточно хорошей, окончательная оценка может быть выполнена на тестовом наборе.

Однако, разбивая доступные данные на три набора, мы резко сокращаем количество выборок, которые можно использовать для обучения модели, что в конечном итоге приводит к снижению производительности. Гоша! Что же нам теперь делать ?

Решением этой проблемы является процедура, называемая кросс-валидация (сокращенно CV). Тестовый набор по-прежнему должен храниться для окончательной оценки, как обычно, но проверочный набор больше не нужен при выполнении CV. Рассмотрим базовый подход, называемый k-кратным CV, при котором обучающая выборка разбивается на k меньших наборов. Теперь давайте пройдемся по шагам:

  • Модель обучается с использованием k−1 складок в качестве обучающих данных;
  • полученная модель проверяется на оставшейся части данных (т. Е. Она используется в качестве тестового набора для вычисления показателя производительности, такого как точность).
  • Среднее значение записанной точности k называется точностью перекрестной проверки и будет служить показателем производительности модели.

Теперь давайте перейдем к интересной части «кода». Взволнован, верно? Я тоже!

Самый простой способ использовать перекрестную проверку — вызвать вспомогательную функцию cross_val_score для оценщика и набора данных.

Эта статья является продуктом знаний из

: https://scikit-learn.org/stable/modules/cross_validation.html

Если вам понравилась эта статья, подпишитесь на меня