Допустим, нам показали клиентов, о которых уже известно, вернули ли они долг. Теперь появился новый клиент. Правило для его случая никто не записал, но решение всё равно нужно. Машинное обучение помогает найти закономерность в известных данных и использовать её для предсказания. Главный вопрос начинается после первого удачного ответа: сработает ли найденное правило на следующем незнакомом человеке?
Разберём этот путь на задаче классификации. Сначала превратим объекты в признаки и сравним два способа провести границу между классами. Затем отделим данные для обучения от данных для выбора и итоговой проверки модели. Так станет ясно, почему безошибочная работа на знакомых примерах может обмануть.
Что модель узнаёт из данных
Закономерность вместо готового правила
Машинное обучение ищет закономерности в данных и применяет их к новым объектам. Модель задаёт способ описать эту закономерность, статистика помогает её исследовать, а алгоритм оптимизации настраивает параметры модели по примерам. Сама модель не получает ответа для каждого будущего случая: ей предстоит переносить выученное за пределы списка знакомых объектов.
Почему количество не заменяет качество
Если примеров мало или они низкого качества, модель не может надёжно выучить нужную закономерность. Большой объём качественных данных позволяет обучать более гибкие модели. Поэтому прежде чем обсуждать хитрый алгоритм, стоит посмотреть, на чём ему предлагают учиться. Даже самый старательный ученик не восстановит пропущенные страницы задачника по одному красивому переплёту.
Классификация: объект, признаки и метка
Кредитный риск как задача о двух классах
Классификация начинается с объектов, для которых уже известны метки классов. По ним модель учится назначать метку новому объекту. В примере с кредитным риском каждый клиент описан двумя признаками: годовым доходом и балансом кредитной карты. Известных клиентов можно разделить на тех, кто вернул долг, и тех, кто допустил дефолт. Для нового клиента метка пока неизвестна — именно её и нужно предсказать.
Обозначим признаки клиента через $x$, а предсказанную метку — через $\hat y$. Классификатор — это модель $h$, которая сопоставляет одному другое:
Формула короткая, но не объясняет, как модель принимает решение. Это зависит от выбранного классификатора и от того, какие признаки мы ему дали.
Когда объект выглядит как набор пикселей
Тот же язык работает для изображений. В примере с рукописными цифрами изображение размера$m \times n$ можно вытянуть в вектор $x \in \mathbb{R}^{mn}$: каждой координате соответствует пиксель. Если выписать строки картинки $4 \times 4$ одну за другой, получится вектор из 16 координат. Тогда распознавание единицы или семёрки тоже становится классификацией точек, только пространство признаков уже не двумерное.
Как классификатор проводит границу
Для клиентов с двумя признаками можно представить каждую запись точкой на плоскости. Граница решений отделяет области, в которых классификатор предсказывает разные классы. Одну и ту же размеченную выборку разные модели могут разделить по-разному. Значит, выбор модели — ещё и выбор предположения о форме закономерности.
Линейный классификатор
Линейный классификатор использует гиперплоскость. Если $w$ — веса признаков, а$b$ — сдвиг, её точки удовлетворяют равенству:
В пространстве двух признаков это прямая. Такая граница гладкая и не подстраивается под каждую отдельную обучающую точку, но для сложного расположения классов она может оказаться слишком жёсткой. Ей не обязательно угадать метку каждого известного клиента.
Метод ближайших соседей
Метод $k$ ближайших соседей решает иначе: для нового объекта он находит$k$ ближайших объектов обучающей выборки и отдаёт голос большинству их меток. При$k = 1$ ответ диктует один ближайший сосед. Метод не вычисляет границу явно заранее: решение для каждой новой точки зависит от расстояний до сохранённых примеров.
Малое $k$ делает границу сложной и чувствительной к отдельным точкам. Большое$k$ сглаживает её, но способно скрыть реальное локальное различие между классами. Получается знакомая задача выбора: сколько деталей считать закономерностью, а сколько — случайностью?
Три выборки для трёх разных решений
Чтобы ответить на вопрос о новых данных, нельзя всё время показывать модели одни и те же примеры. Размеченные данные разделяют по назначению: на одних настраивают модель, на других выбирают её вариант, на третьих один раз оценивают окончательный результат.
Обучающая выборка
Обучающая выборка — часть размеченных данных, по которой алгоритм настраивает параметры модели. Для линейного классификатора это, например, веса и сдвиг. Слова «обучающие данные» иногда обозначают только эту часть, а иногда — все исходные размеченные данные. Поэтому в разговоре о качестве полезнее называть конкретную выборку, чем надеяться на контекст.
Валидационная выборка и гиперпараметры
Валидационная выборка отложена от обучения параметров. На ней сравнивают обученные модели и выбирают гиперпараметры — настройки самого алгоритма, которые не вычисляются как параметры модели. В методе соседей таким гиперпараметром служит $k$. Кандидатов обучают на одной обучающей выборке и сравнивают на одной валидационной. В лекции встречается разделение 80% данных для обучения и 20% для валидации: это пример, а не обязательная пропорция.
Тестовая выборка
После выбора модели тестовая выборка даёт итоговую оценку на новых данных, если она доступна. Её не используют ни для настройки параметров, ни для выбора гиперпараметров. Внешний оценщик может даже скрыть правильные метки тестовых объектов и сообщить только результат сравнения. Иначе «последняя проверка» быстро превращается в ещё одну попытку подогнать ответ.
Как измерить ошибку классификации
Доля неверных ответов
Для выборки $S$ ошибка классификации — доля объектов, которым классификатор назначил неверную метку. Если $y_i$ — истинная метка объекта $x_i$, запись выглядит так:
Индикатор $\mathbb{1}$ равен единице для ошибки и нулю для правильного ответа. Сумма считает ошибки, а деление на $|S|$ превращает их в долю. Меняем $S$ — меняем смысл результата, хотя формула остаётся той же.
Обучающая, валидационная и тестовая ошибки
Обучающая ошибка показывает, как модель отвечает на знакомых объектах. Валидационная помогает сравнивать кандидатов и выбирать гиперпараметры. Тестовая оценивает уже выбранную модель на новых объектах. Валидационная ошибка обычно выше обучающей: модель не видела эти примеры при настройке параметров. Но одно число без имени выборки говорит о качестве меньше, чем кажется.
У метода одного ближайшего соседа обучающая ошибка в обычном случае равна нулю: ближайшей к обучающей точке оказывается она сама. Из этого не следует, что метод лучше предскажет метки новых точек. Выбирать$k$ только по обучающей ошибке означало бы вознаграждать запоминание знакомых примеров.
Почему нулевая ошибка ещё не победа
Переобучение и недообучение
Переобучение возникает, когда модель слишком чувствительна к выбросам или случайным особенностям обучающей выборки и хуже работает на новых объектах. Выбросом может быть объект с нетипичными признаками или меткой: например, богатый заёмщик, который всё же не вернул долг. Изломанная граница может старательно обойти и эту точку, но такая аккуратность на знакомых данных не обещает пользы на следующих клиентах.
Недообучение — противоположная проблема: модели не хватает гибкости, чтобы выразить полезную закономерность. Обобщающая способность означает, что качество сохраняется на объектах, которых модель не встречала при обучении. Нам нужна граница, которая замечает содержательные различия и не повторяет каждую случайность выборки. Именно для выбора этого компромисса нужна валидация.
Как выбирать число соседей
В примере лекции сравнивают $k = 1$ и $k = 15$: у первого граница слишком изломана, у второго — заметно глаже. На показанной там кривой тестовой ошибки минимум оказался при$k = 7$. Это свойство того примера, а не универсальное значение для метода. В собственной задаче сравнивают варианты на валидационной выборке, а тест оставляют для итоговой оценки выбранного варианта.
Когда тест виден всем
Публичная и закрытая части соревнования
В соревнованиях вроде Kaggle промежуточную оценку получают на публичной части тестовых данных, а итоговую — на закрытой. Если многократно менять модель по публичному результату, можно подобрать вариант, которому повезло именно на этой части. Закрытая часть нужна, чтобы итоговая оценка меньше зависела от такого перебора. Даже таблица лидеров не отменяет вопроса, на каких данных принималось каждое решение.
Порядок работы с новой задачей
- Определите объект, признаки и метку, которую нужно предсказать.
- Разделите размеченные данные на обучающую и валидационную выборки.
- Обучите кандидатов на обучающей выборке и выберите модель и гиперпараметры по валидационной ошибке.
- Если есть тестовая выборка, один раз оцените на ней выбранную модель.
Теперь можно вернуться к новому клиенту из начала статьи. Предсказать его класс — лишь половина работы. Другая половина — проверить, что выбранное правило умеет отвечать не только тем, кого уже встречало.
Источник конспекта: материал лекции.

