Зачем нужно машинное обучение
В анализе данных мы часто сталкиваемся со сложно устроенными данными, объем которых может быть крайне большим. Наша задача — найти или проверить в них закономерности. Чаще всего речь идет о таких закономерностях, которые человек не может выявить с помощью простого анализа или сводных таблиц в Excel. Причины — большой объем данных или нетривиальность самой зависимости.
Чтобы научить машину искать эти закономерности, нужно сначала понять, что они из себя представляют. Простой пример закономерности — поиск однокоренных слов в тексте. Но что делать, если мы не можем явно описать правило? Для этого и существует машинное обучение.
Основной принцип машинного обучения
Суть машинного обучения заключается в следующем:
- У нас есть обучающаяся программа (алгоритм).
- Мы предоставляем ей примеры данных, в которых содержатся искомые закономерности (даже если они скрыты от человека).
- Программа строит модель этих закономерностей.
- Построенную модель мы применяем к новым данным, для которых правильный ответ неизвестен.
- Мы проверяем, насколько хорошо модель выявляет закономерности, оценивая ее точность на новых данных.
Разбор на примере: метод ближайших соседей (k-NN)
Рассмотрим самый простой метод — метод ближайших соседей (k-Nearest Neighbors, k-NN).
Представьте набор данных с точками двух цветов: красного и синего. Появляется новый объект, и нам нужно определить его цвет. Метод ближайших соседей предлагает посмотреть на ближайших к новому объекту соседей и на основании их цветов принять решение.
Но здесь возникает проблема шума или выбросов в данных. Если взять слишком маленький радиус вокруг новой точки, в него может попасть только один синий объект. Тогда мы решим, что новая точка — синяя. Однако, взглянув на картину шире, мы увидим, что область вокруг в основном красная, а этот синий объект, скорее всего, является отклонением от нормы (шумом).
Если мы увеличим радиус, то увидим, что рядом есть и три красных, и два синих объекта. Логично предположить, что новая точка должна быть красной, а синие — это аномалии. Таким образом, наличие ошибок в обучающих данных — это нормально. Стремиться к стопроцентной точности на обучающей выборке вредно.
Если мы будем стараться классифицировать каждую точку обучающей выборки идеально, то модель «зазубрит» шум и построит слишком сложную границу, которая будет идеально работать на старых данных, но плохо — на новых. Это называется переобучением (overfitting). Если же модель слишком проста и не может уловить основную закономерность, это называется недообучением (underfitting). Необходим баланс.
Метод k-NN позволяет регулировать сложность с помощью параметра k (количество соседей). При маленьком k=1 модель очень чувствительна к шуму и склонна к переобучению, выстраивая сложные границы с «островками» и «вырезами». При большом k=15 модель более устойчива к шуму и строит более гладкую, естественную границу.
У метода k-NN есть модификация, которая вместо четкого отнесения объекта к классу использует вероятностное (нечеткое) разделение. Вместо строгого ответа «синий» или «красный», модель может сказать: «Этот объект синий с вероятностью 70% и красный с вероятностью 30%». Это позволяет лучше отражать реальность в пограничных областях, где классы пересекаются.
Все эти принципы работают и в многомерном пространстве. Для визуализации многомерных данных используют их двумерные проекции (например, пары признаков X-Y, X-Z, Y-Z), так как человеческий глаз лучше воспринимает плоскую картинку.
Качество модели и ее оценка
Как оценить, насколько хороша построенная модель? Качество — это доля правильных ответов модели на новых данных. Проблема в том, что для новых данных у нас нет правильных ответов.
Решение — разделить исходный набор данных (где ответы известны) на две части:
- Обучающая выборка (training set): на ней модель учится. Модель «видит» признаки и правильные ответы и подгоняет свои параметры для достижения наилучшего результата.
- Тестовая (контрольная) выборка (test set): на ней модель проверяется. Мы подаем модели только признаки, получаем ее ответ и сравниваем с известным нам правильным ответом. Так мы оцениваем точность.
Обычно данные делят в пропорции 70–80% на обучение и 20–30% на тест.
У этого подхода есть недостатки:
- Мы не используем все данные для обучения, отбрасывая потенциально ценную информацию.
- Оценка качества производится только на малой части данных, что может быть нерепрезентативно.
Скользящий контроль (кросс-валидация)
Чтобы получить более надежную оценку, используют скользящий контроль (кросс-валидация, cross-validation).
Принцип работы:
- Обучающая выборка разбивается на n равных частей (например, 10).
- Проводится n итераций. На каждой итерации одна из частей используется как проверочная (тестовая), а остальные n-1 частей — как обучающие.
- Таким образом, каждая часть данных по одному разу побывает в роли тестовой выборки.
- Оценки точности, полученные на каждой итерации, усредняются.
Это позволяет получить более адекватную и устойчивую оценку качества модели.
Подбор параметров на примере k-NN
Кросс-валидация нужна не только для оценки, но и для подбора параметров алгоритма. Для метода k-NN ключевой параметр — k (количество соседей).
Чтобы найти оптимальное k, мы проводим кросс-валидацию для разных значений k и сравниваем среднюю точность. График зависимости точности от k обычно скачет. Это связано с наличием в данных шума. Если бы данные были идеальными, график был бы монотонным. Скачки говорят о том, что при одних значениях k в проверочную выборку попадают выбросы, при других — нет.
Для получения более точного результата кросс-валидацию можно повторять несколько раз с разными разбиениями и затем усреднять полученные оценки.
Важно понимать, что наличие шума — это естественно. Пример: утверждение «люди с высшим образованием зарабатывают больше, чем без него» в целом верно, но из него есть множество исключений. Наличие исключений не делает правило плохим, если оно обеспечивает приемлемую точность.
Важные аспекты метода k-NN
- Вычислительная сложность: для предсказания для M новых объектов на основе N объектов обучения требуется O(N*M) операций. Существуют структуры данных (часто древовидные), которые позволяют ускорить работу алгоритма.
- Параметры: у k-NN больше одного параметра. Помимо k, важную роль играет функция расстояния (метрика). Мы можем использовать:
- Евклидово расстояние (Euclidean distance): привычное геометрическое расстояние.
- Манхэттенское расстояние (Manhattan distance): сумма модулей разностей координат.
- Взвешенное расстояние: когда одни признаки важнее других, и им присваивается больший вес.
Выбор метрики напрямую влияет на результат. Перебрать все возможные параметры (особенно метрики) часто невозможно, поэтому используют эвристики и быстрые методы поиска.
Обобщенный цикл решения задачи
Подход, который мы разобрали на примере k-NN, универсален для любого алгоритма машинного обучения. Общий цикл решения задачи выглядит так:
- Предобработка данных.
- Выбор метода и его параметров.
- Обучение модели на обучающей выборке.
- Оценка качества на тестовой выборке (с помощью кросс-валидации).
- Если качество неудовлетворительное, можно:
- Изменить параметры метода.
- Выбрать другой метод.
- Вернуться к предобработке данных.
- Применение модели к новым данным.
Синонимы в науке о данных
В области анализа данных часто используются синонимы:
- Распознавание, предсказание, прогнозирование — это одно и то же.
- Обучающая выборка, тренировочный набор, наблюдения — синонимы.
- Тестовая, контрольная, скрытая выборка — близкие понятия. Валидационная выборка — это третья отдельная выборка, используемая для дополнительной проверки, но принцип ее работы тот же.
- Классы и метки классов — синонимы.
- Скользящий контроль и кросс-валидация — синонимы.
Краткие итоги
Понимание того, как алгоритмы находят закономерности, принципиально для успешного применения машинного обучения. Основная цель — не зазубрить данные, а выявить устойчивые, обобщающие правила, способные работать на новой информации. Стремление к идеальной точности на известных данных — ловушка, ведущая к переобучению, когда модель воспроизводит случайный шум, а не реальную структуру задачи. Поэтому ключевой становится способность находить баланс между простотой и сложностью модели, между недообучением и переобучением.
Центральная методологическая идея — оценка качества на данных, которые модель не видела при обучении. Разделение выборки и, в особенности, кросс-валидация, предоставляют практический инструмент для такой оценки. Этот подход позволяет не только измерить точность, но и осознанно подойти к настройке параметров алгоритма, например, числа соседей k. Выбор параметров — это итеративный процесс, основанный на компромиссе между точностью и обобщающей способностью.
Наконец, осознание того, что у любого алгоритма есть несколько параметров, включая метрику расстояния, и что их полный перебор часто невозможен, подводит к пониманию важности экспертного знания. Инженер по данным не просто перебирает варианты, а осмысленно выбирает, какие параметры и как настраивать, исходя из особенностей задачи. Это знание предметной области в сочетании с описанным универсальным циклом — от предобработки до финального применения — составляет суть практической работы в машинном обучении.
Введение
Машинное обучение нужно для поиска сложных закономерностей в больших или нетривиально устроенных данных, которые человек не может найти вручную.
Основной принцип
Программа обучается на примерах с известными ответами (обучающая выборка) и строит модель закономерностей. Затем модель применяют к новым данным, где ответ неизвестен.
Метод ближайших соседей (k-NN)
Это простейший метод классификации. Новый объект относят к тому классу, к которому принадлежит большинство из его k ближайших соседей.
- Проблема: в данных есть шум (выбросы). При маленьком k (напр., k=1) модель реагирует на шум и переобучается, строя неправильные, извилистые границы.
- Решение: увеличивать k, чтобы модель обобщала, а не запоминала детали.
- Баланс: маленькое k ведет к переобучению (запоминание шума), слишком большое — к недообучению (неспособность уловить структуру).
- Модификация: использование нечеткой классификации, когда модель выдает вероятность принадлежности к классу (например, 70% синий, 30% красный), что полезно в пограничных зонах.
Оценка качества
Стремиться к 100% точности на обучении вредно. Необходимо оценивать работу на новых данных.
- Решение: Разделить данные на обучающую (70–80%) и тестовую (20–30%) выборки. Модель учится на обучающей, а качество проверяется на тестовой.
- Недостаток: оценка зависит от одного случайного разбиения.
Скользящий контроль (кросс-валидация)
Это метод более надежной оценки. Данные делятся на n равных частей. Проводится n итераций: на каждой одна часть служит тестовой, остальные — обучающими. Результаты всех итераций усредняются.
Подбор параметров
Кросс-валидация нужна и для настройки параметров алгоритма. Для k-NN ключевой параметр — k. Нужно провести кросс-валидацию для разных k и выбрать то, при котором средняя точность максимальна.
- На графике точности видны скачки из-за шума. Тренд же показывает баланс между недообучением и переобучением.
Другие параметры k-NN
- Функция расстояния (метрика): влияет на определение «близости». Может быть евклидово, манхэттенское или взвешенное расстояние. Выбор метрики зависит от задачи.
- Вычислительная сложность: O(N*M), где N — объекты обучения, M — новые объекты. Существуют структуры (например, деревья) для ускорения.
- Полный перебор всех параметров часто невозможен, поэтому нужны экспертные знания.
Универсальный цикл решения задачи
Принципы, разобранные на k-NN, применимы к любому алгоритму:
- Предобработка данных.
- Выбор метода и параметров.
- Обучение модели (на обучающей выборке).
- Оценка качества (на тестовой, с помощью кросс-валидации).
- Если качество не устраивает, вернуться к шагу 2 или 3.
- Применение финальной модели к новым данным.
Терминология
- Распознавание, предсказание, прогнозирование — синонимы.
- Обучающая выборка, тренировочный набор — синонимы.
- Тестовая, контрольная, скрытая выборка — близкие понятия. Валидационная выборка — отдельная, третья, выборка для проверки.
- Классы и метки классов — синонимы.
- Скользящий контроль и кросс-валидация — синонимы.
1. Машинное обучение необходимо для поиска сложных закономерностей в больших объемах данных, которые человек не может обнаружить вручную.
2. Принцип работы любой модели машинного обучения — обучение на примерах с известными ответами и последующее применение к новым данным.
3. Метод k-ближайших соседей определяет класс нового объекта на основе класса большинства его ближайших соседей.
4. Наличие шума и выбросов в данных — это естественно, и абсолютная точность на обучающей выборке недостижима и вредна.
5. Переобучение возникает, когда модель запоминает шум вместо выявления общей закономерности, и ведет к плохой работе на новых данных.
6. Недообучение возникает, когда модель слишком проста и не может уловить основную структуру данных.
7. Оценка качества модели возможна только на данных, которые не участвовали в обучении, что требует разделения выборки на обучающую и тестовую.
8. Кросс-валидация (скользящий контроль) — это метод более точной и устойчивой оценки качества модели путем многократного разбиения данных.
9. Подбор параметров алгоритма, таких как k в методе k-NN, должен осуществляться через оценку качества с помощью кросс-валидации.
10. Результат работы алгоритма существенно зависит от выбранной функции расстояния (метрики).
11. Полный перебор всех параметров модели часто невозможен, поэтому требуется экспертный подход и понимание предметной области.
12. Решение любой задачи машинного обучения — это итеративный цикл, включающий предобработку, обучение, оценку и при необходимости возврат на предыдущие этапы.
1. Почему для поиска закономерностей в больших и сложных данных недостаточно простого анализа в Excel?
2. Опишите общий цикл работы алгоритма машинного обучения: от данных до применения модели.
3. Как работает метод k-ближайших соседей?
4. Объясните, как наличие выбросов в данных может привести к неправильной классификации нового объекта методом k-NN.
5. В чем разница между переобучением и недообучением? Приведите примеры того, как они проявляются в методе k-NN.
6. Почему ошибки на обучающей выборке считаются нормальным явлением?
7. Для чего необходимо разделять данные на обучающую и тестовую выборки?
8. Опишите принцип работы скользящего контроля (кросс-валидации). Какие проблемы простого разделения выборки он решает?
9. Каким образом можно использовать кросс-валидацию для выбора оптимального значения параметра k в методе k-NN?
10. Почему точность на графике при разных значениях k часто «скачет», а не меняется плавно?
11. Как выбор метрики расстояния (например, евклидово или манхэттенское) может повлиять на результат работы k-NN?
12. Опишите универсальный цикл решения задачи анализа данных, начиная с предобработки и заканчивая применением.