Почему модель может показывать отличные результаты в тестах и при этом быть бесполезной?

Модель может показать отличные результаты и при этом оказаться бесполезной, если её проверяют на тех же данных, на которых она обучалась: возможно, она просто запомнила примеры, а не усвоила закономерности, применимые к новым клиентам.

Представьте вымышленную компанию Pantrybox со штатом 120 человек, которая доставляет наборы продуктов по подписке. Аналитик Кофи строит модель, чтобы предсказать, какие подписчики отменят подписку в следующем месяце, и команда удержания могла сначала позвонить им. В сообщении руководителю клиентского отдела Шан он пишет: 'Модель A: точность 99%!! использует 85 столбцов, вкл. идентификатор клиента, почтовый индекс, даты всех прошлых заказов. Модель B (простая, 2 столбца): 69% на обучающих данных, 68% на тестовых. Модель A на новых данных за прошлый месяц: 71%. Около 30% клиентов отменяют подписку каждый месяц.' Шан хочет понять, какую модель использовать и почему модель с точностью 99% так плохо сработала в прошлом месяце.

МодельТочность на обучающих данныхТочность на тестовых данныхЧто он предлагает
Модель A, 85 столбцов99%71%Переобучение: модель запомнила клиентов из обучающей выборки
Модель B, 2 столбца69%68%Недообучение: результат едва лучше, чем при постоянном ответе «остаётся»

Как пошагово выявить переобучение и недообучение?

Выявите обе проблемы, сравнив результаты на обучающих данных с результатами на данных, которых модель никогда не видела, а затем сравнив оба показателя с простым базовым решением. Соотношение этих трёх чисел покажет, какая проблема возникла.

1. Не передавайте все данные

Перед обучением отложите тестовый набор данных, который модель не увидит. Проверять модель на данных, на которых она обучалась, — грубая ошибка: модель, которая просто повторяет увиденное, получит идеальную оценку, но ничего не предскажет.

2. Определите исходный уровень

Определите, какой результат даст самое простое правило. В Pantrybox каждый месяц остаётся около 70% клиентов, поэтому прогноз 'останется' для всех даёт точность около 70%. Полезная модель должна заметно превосходить этот результат.

3. Сравните обучающую и тестовую выборки

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

4. Проверьте стабильность

При перекрёстной проверке модель несколько раз обучают и проверяют на разных частях обучающих данных, а затем усредняют результаты. Если оценки сильно различаются между частями, модель неустойчива.

5. Выберите способ исправления, соответствующий проблеме

Переобучение и недообучение требуют противоположных мер, поэтому прежде чем что-либо менять, определите проблему.

Как устранить переобучение и недообучение?

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

При переобучении

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

При недообучении

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

Для обоих случаев

Не используйте тестовую выборку до самого конца. Если вы многократно настраиваете модель по результатам на тестовой выборке, информация из неё проникает в модель, и тестовая оценка перестаёт быть объективной.

Как выглядят неудачное и улучшенное решения на основе модели оттока клиентов?

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

Улучшенное решение сформулировано так: 'Модель A запомнила отдельных клиентов: в ней используются идентификатор клиента и точные даты заказов, поэтому она узнавала уже встречавшихся людей, а не училась определять причины отказа от подписки. Модель B слишком проста, чтобы превзойти базовый результат 70%. Следующий шаг: модель C использует шесть поведенческих признаков, в том числе пропуски доставок за последний месяц, обращения в поддержку и число недель с последнего изменения меню; идентификатор клиента и почтовый индекс исключены. Цель: результат на тестовых данных заметно выше 70% и с отставанием от результата на обучающих данных не более чем на несколько процентных пунктов, подтверждённый перекрёстной проверкой по пяти блокам, прежде чем команда удержания клиентов начнёт на него опираться.' Теперь Шан понимает, почему модель с результатом 99% не сработала и каким должен быть хороший результат.

Как проверить, что модель не переобучена и не недообучена?

Чтобы проверить модель, убедитесь, что её оценка на тестовых данных близка к оценке на обучающих данных, заметно лучше базового уровня и стабильна на разных блоках перекрёстной проверки и на новых данных за месяц. Также выясните, нет ли среди признаков таких, которые становятся известны только после наступления результата, например причины отмены. Это утечка данных: из-за неё обе оценки выглядят лучше, чем модель работает на самом деле.

Какие ошибки часто допускают при работе с переобучением и недообучением моделей?

Самая распространённая ошибка — представлять точность на обучающих данных как точность в реальных условиях. Другие ошибки: игнорировать базовый уровень, из-за чего 70% выглядят впечатляюще, хотя столько же даёт угадывание; добавлять все доступные столбцы в надежде повысить результат; подглядывать в тестовую выборку при настройке; и считать переобучение поводом усложнить модель, хотя обычно требуется обратное.

К какому разделу Tosheo.ai относится этот урок?

Этот урок находится в категории «Машинное обучение» и следует за введением в модели в курсе по машинному обучению. В практическом задании Tosheo.ai вы получаете вымышленный отчёт о модели для разбора. Обратная связь по критериям оценки проверяет, сравнили ли вы результаты на обучающей и тестовой выборках с базовым результатом, прежде чем рекомендовать исправление. Это профессиональная база для совместной работы с командами по работе с данными. Обучение и оценка моделей в коде входят в дополнительное направление «Программирование».

Источники и границы рассмотрения

Ускоренный курс машинного обучения Google: переобучение (проверено 19 October 2026) ↗

Ускоренный курс машинного обучения Google: сложность модели и регуляризация (проверено 19 October 2026) ↗

Руководство пользователя scikit-learn: перекрёстная проверка (проверено 19 October 2026) ↗