Введение в машинное обучение и анализ данных

Обзор принципов работы основных алгоритмов машинного обучения. Часть 1

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

Основные мысли

В результате изучения лекции слушатель будет способен:
1. Объяснить, зачем нужно машинное обучение и в каких ситуациях оно необходимо.
2. Описать принцип работы метода k-ближайших соседей (k-NN).
3. Различать понятия «недообучение» и «переобучение» модели и объяснять их причины.
4. Обосновать необходимость разделения данных на обучающую и тестовую выборки.
5. Применять метод скользящего контроля (кросс-валидации) для оценки качества модели и подбора параметров.
6. Анализировать, как выбор метрики расстояния и значения параметра k влияют на результат работы алгоритма.
7. Оценивать вычислительную сложность метода ближайших соседей.
8. Составлять общий план (цикл) решения задачи с помощью машинного обучения.
Показывать лекцию целиком
Краткое изложение

Зачем нужно машинное обучение

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

Чтобы научить машину искать эти закономерности, нужно сначала понять, что они из себя представляют. Простой пример закономерности — поиск однокоренных слов в тексте. Но что делать, если мы не можем явно описать правило? Для этого и существует машинное обучение.

Основной принцип машинного обучения

Суть машинного обучения заключается в следующем:

  1. У нас есть обучающаяся программа (алгоритм).
  2. Мы предоставляем ей примеры данных, в которых содержатся искомые закономерности (даже если они скрыты от человека).
  3. Программа строит модель этих закономерностей.
  4. Построенную модель мы применяем к новым данным, для которых правильный ответ неизвестен.
  5. Мы проверяем, насколько хорошо модель выявляет закономерности, оценивая ее точность на новых данных.

Разбор на примере: метод ближайших соседей (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), так как человеческий глаз лучше воспринимает плоскую картинку.

Качество модели и ее оценка

Как оценить, насколько хороша построенная модель? Качество — это доля правильных ответов модели на новых данных. Проблема в том, что для новых данных у нас нет правильных ответов.

Решение — разделить исходный набор данных (где ответы известны) на две части:

Обычно данные делят в пропорции 70–80% на обучение и 20–30% на тест.

У этого подхода есть недостатки:

  1. Мы не используем все данные для обучения, отбрасывая потенциально ценную информацию.
  2. Оценка качества производится только на малой части данных, что может быть нерепрезентативно.

Скользящий контроль (кросс-валидация)

Чтобы получить более надежную оценку, используют скользящий контроль (кросс-валидация, cross-validation).

Принцип работы:

  1. Обучающая выборка разбивается на n равных частей (например, 10).
  2. Проводится n итераций. На каждой итерации одна из частей используется как проверочная (тестовая), а остальные n-1 частей — как обучающие.
  3. Таким образом, каждая часть данных по одному разу побывает в роли тестовой выборки.
  4. Оценки точности, полученные на каждой итерации, усредняются.

Это позволяет получить более адекватную и устойчивую оценку качества модели.

Подбор параметров на примере k-NN

Кросс-валидация нужна не только для оценки, но и для подбора параметров алгоритма. Для метода k-NN ключевой параметр — k (количество соседей).

Чтобы найти оптимальное k, мы проводим кросс-валидацию для разных значений k и сравниваем среднюю точность. График зависимости точности от k обычно скачет. Это связано с наличием в данных шума. Если бы данные были идеальными, график был бы монотонным. Скачки говорят о том, что при одних значениях k в проверочную выборку попадают выбросы, при других — нет.

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

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

Важные аспекты метода k-NN

Выбор метрики напрямую влияет на результат. Перебрать все возможные параметры (особенно метрики) часто невозможно, поэтому используют эвристики и быстрые методы поиска.

Обобщенный цикл решения задачи

Подход, который мы разобрали на примере k-NN, универсален для любого алгоритма машинного обучения. Общий цикл решения задачи выглядит так:

  1. Предобработка данных.
  2. Выбор метода и его параметров.
  3. Обучение модели на обучающей выборке.
  4. Оценка качества на тестовой выборке (с помощью кросс-валидации).
  5. Если качество неудовлетворительное, можно:
    • Изменить параметры метода.
    • Выбрать другой метод.
    • Вернуться к предобработке данных.
  6. Применение модели к новым данным.

Синонимы в науке о данных

В области анализа данных часто используются синонимы:

Краткие итоги

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

Центральная методологическая идея — оценка качества на данных, которые модель не видела при обучении. Разделение выборки и, в особенности, кросс-валидация, предоставляют практический инструмент для такой оценки. Этот подход позволяет не только измерить точность, но и осознанно подойти к настройке параметров алгоритма, например, числа соседей k. Выбор параметров — это итеративный процесс, основанный на компромиссе между точностью и обобщающей способностью.

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

Введение

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

Основной принцип

Программа обучается на примерах с известными ответами (обучающая выборка) и строит модель закономерностей. Затем модель применяют к новым данным, где ответ неизвестен.

Метод ближайших соседей (k-NN)

Это простейший метод классификации. Новый объект относят к тому классу, к которому принадлежит большинство из его k ближайших соседей.

Оценка качества

Стремиться к 100% точности на обучении вредно. Необходимо оценивать работу на новых данных.

Скользящий контроль (кросс-валидация)

Это метод более надежной оценки. Данные делятся на n равных частей. Проводится n итераций: на каждой одна часть служит тестовой, остальные — обучающими. Результаты всех итераций усредняются.

Подбор параметров

Кросс-валидация нужна и для настройки параметров алгоритма. Для k-NN ключевой параметр — k. Нужно провести кросс-валидацию для разных k и выбрать то, при котором средняя точность максимальна.

Другие параметры k-NN

Универсальный цикл решения задачи

Принципы, разобранные на k-NN, применимы к любому алгоритму:

  1. Предобработка данных.
  2. Выбор метода и параметров.
  3. Обучение модели (на обучающей выборке).
  4. Оценка качества (на тестовой, с помощью кросс-валидации).
  5. Если качество не устраивает, вернуться к шагу 2 или 3.
  6. Применение финальной модели к новым данным.

Терминология

Выводы

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. Опишите универсальный цикл решения задачи анализа данных, начиная с предобработки и заканчивая применением.
Вернуться к учебному плану