Машинное обучение
June 23

Карта машинного обучения: ваш путеводитель по алгоритмам и методам

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

А чтобы эта шпаргалка всегда была под рукой, я подготовил и PDF-версию в высоком качестве (скачать можно здесь).

Три парадигмы машинного обучения

Всё ML-разнообразие можно условно поделить на три большие группы.

Обучение с учителем (Supervised Learning)

Это самый понятный и распространенный подход. У нас есть размеченные данные, где для каждого объекта известен правильный ответ. Алгоритм пытается найти закономерности, чтобы потом давать верные ответы на новых, невиданных ранее данных.

  • Классификация: Предсказываем категорию. Спам или не спам? Уйдет клиент или останется?
    • Алгоритмы: Логистическая регрессия, k-NN, SVM, Наивный Байес.
  • Регрессия: Предсказываем конкретное число. Цена на квартиру, спрос на товар, погода.
    • Алгоритмы: Линейная, Полиномиальная, Ridge, Lasso.

Кстати, про линейную регрессию и её важные подвиды с регуляризацией (Ridge, Lasso) я писал подробнейшую статью с примерами на Python. А про полиномиальную регрессию, которая позволяет находить более сложные зависимости, — тоже есть отдельный разбор.

Обучение без учителя (Unsupervised Learning)

Здесь всё сложнее и интереснее. У нас есть данные, но без правильных ответов. Алгоритм должен сам найти в них какие-то скрытые структуры, закономерности и взаимосвязи.

  • Кластеризация: Группировка похожих объектов. Например, сегментация клиентов по поведению.
    • Алгоритмы: K-Means, DBSCAN, Mean-Shift.
  • Снижение размерности: Упрощение данных без потери важной информации. Когда у вас сотни признаков, а для модели нужно всего несколько.
    • Алгоритмы: PCA, t-SNE, LSA, LDA.

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

  • Поиск ассоциаций: Поиск правил вида "если купили товар А, то часто покупают и товар Б". Классика — анализ рыночной корзины.
    • Алгоритмы: Apriori, Eclat, FP-Growth.

Обучение с подкреплением (Reinforcement Learning)

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

  • Популярные алгоритмы: Q-Learning, SARSA, DQN, A3C.


Продвинутые методы

Когда классических подходов не хватает, в дело вступают тяжеловесы.

Ансамблевые методы

Идея проста: если объединить несколько слабых моделей, можно получить одну, но очень сильную и точную.

  • Бэггинг (Bagging): Модели учатся параллельно на разных подвыборках данных. Ключевой пример — Случайный лес (Random Forest).
  • Бустинг (Boosting): Модели учатся последовательно, каждая новая исправляет ошибки предыдущей. Тут царят XGBoost, LightGBM и, конечно, CatBoost.
  • Стекинг (Stacking): Результаты работы одних моделей становятся входными данными для другой, финальной мета-модели.

Нейросети и глубокое обучение (Deep Learning)

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

  • Свёрточные сети (CNN): Короли компьютерного зрения.
  • Рекуррентные сети (RNN, LSTM): Созданы для работы с последовательностями (текст, речь, временные ряды).
  • Трансформеры (BERT, GPT): Де-факто стандарт в NLP. На них работают все современные языковые модели.
  • Генеративные сети (GAN, VAE): Умеют создавать новый контент — от фото и музыки до текстов.

Эта карта — не исчерпывающий справочник, а скорее отправная точка для ваших исследований. Мир ML гораздо шире, но эти концепции — его основа.

Надеюсь, эта структура поможет вам лучше ориентироваться в мире машинного обучения.