Что такое машинное обучение и где его применяют

Машинное обучение (Machine Learning, ML) — это совокупность методов, позволяющих компьютерам обучаться на данных без явного программирования правил. Программист не пишет условия вида «если в письме слово «выигрыш», то это спам», а дает алгоритму много примеров с ответами. Алгоритм сам подбирает параметры модели — функции, которая потом дает ответ на новых данных.

Ниже — чем ML отличается от ИИ и нейросетей, три вида обучения, основные алгоритмы с выбором по задаче, короткий пример на Python и сферы, где машинное обучение применяют на практике. Код проверен на Python 3.14.7 и scikit-learn 1.9.1 (24.09.2026).

Правила против обучения: в чем разница

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

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

Мини-словарь: пять терминов, которые путают

Термин Что это Пример в задаче «спам или нет»
Признаки (features) Входные данные объекта в числовом виде Длина письма, число ссылок, частоты слов
Целевая переменная (target) То, что нужно предсказать Метка «спам» / «не спам»
Алгоритм обучения Процедура, которая подбирает параметры Логистическая регрессия, градиентный бустинг
Модель Результат обучения: функция с найденными параметрами Файл с весами, который отвечает на новое письмо
Обучающая и тестовая выборки Данные для подбора параметров и данные для честной проверки 80% писем на обучение, 20% отложены

Алгоритм и модель — разные вещи: один алгоритм на разных данных дает разные модели.

ИИ, машинное обучение, глубокое обучение и нейросети

Эти понятия вложены друг в друга, но не равны:

  • Искусственный интеллект — широкая область: все способы заставить машину решать «интеллектуальные» задачи, включая системы на вручную написанных правилах.
  • Машинное обучение — часть ИИ, где поведение получают из данных.
  • Глубокое обучение — часть ML на многослойных нейросетях. Подробнее об их устройстве — в статье о нейронных сетях.

Большие языковые модели вроде ChatGPT — тоже результат машинного обучения, но это лишь один класс моделей. Большая часть ML в бизнесе — это прогнозы и классификация по табличным данным, где нейросети часто не нужны.

Виды машинного обучения

Вид Какие данные есть Типовые задачи Пример
С учителем (supervised) Примеры с правильными ответами Классификация (класс), регрессия (число) Спам-фильтр, прогноз цены квартиры
Без учителя (unsupervised) Данные без ответов Кластеризация, поиск аномалий, сжатие признаков Сегменты клиентов, подозрительные операции
С подкреплением (reinforcement) Среда и награда за действия Выбор последовательности действий Игровые агенты, управление роботом

Кроме трех классических видов часто выделяют обучение с частичным привлечением учителя (ответы есть лишь у части данных) и самообучение (self-supervised), когда метки берутся из самих данных. Так предобучают языковые модели: они учатся предсказывать следующий фрагмент текста.

Как выбрать вид: есть исторические данные с ответами — обучение с учителем; ответов нет и нужна структура — без учителя; решение — цепочка действий с отложенной оценкой — с подкреплением.

Как обучают модель: шаги

  1. Сформулировать задачу: что предсказываем и как измерим качество.
  2. Собрать и почистить данные: пропуски, дубли, ошибки в метках.
  3. Разделить данные на обучающую и тестовую части.
  4. Обучить модель на обучающей части.
  5. Оценить на тестовой части и сравнить с простым базовым решением.
  6. Встроить модель в продукт и следить за качеством: данные со временем меняются.

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

Пример: обучение с учителем на Python

Учебный набор данных о новообразованиях груди встроен в scikit-learn: 569 объектов, 30 числовых признаков, метка «злокачественное / доброкачественное». Это демонстрация механики ML, а не медицинский инструмент.

from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.metrics import accuracy_score

X, y = load_breast_cancer(return_X_y=True)
print("Объектов:", X.shape[0], "признаков:", X.shape[1])

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.25, random_state=42, stratify=y
)

for depth in (None, 3):
    model = DecisionTreeClassifier(max_depth=depth, random_state=42)
    model.fit(X_train, y_train)
    train_acc = accuracy_score(y_train, model.predict(X_train))
    test_acc = accuracy_score(y_test, model.predict(X_test))
    print(f"max_depth={depth}: train={train_acc:.3f}, test={test_acc:.3f}")

baseline = max(y_test.mean(), 1 - y_test.mean())
print(f"Если всегда отвечать самым частым классом: {baseline:.3f}")

Вывод прогона:

Объектов: 569 признаков: 30
max_depth=None: train=1.000, test=0.923
max_depth=3: train=0.977, test=0.944
Если всегда отвечать самым частым классом: 0.629

Что здесь видно:

  • train_test_split откладывает 25% данных, которых модель не видит при обучении. stratify=y сохраняет долю классов в обеих частях.
  • Дерево без ограничения глубины угадывает 100% обучающих примеров, а на тесте теряет почти 8 пунктов. Этот разрыв между обучением и тестом и есть признак запоминания. То, что дерево глубиной 3 здесь еще и точнее на тесте, — наблюдение на этом разбиении: при других random_state порядок двух деревьев может смениться, а разрыв у неограниченного дерева остается.
  • Базовое решение «всегда самый частый класс» дает 0.629. Модель имеет смысл, только если заметно лучше такого наивного ответа.

Доля верных ответов (accuracy) — не единственная метрика: когда пропуск опасного случая дороже ложной тревоги, смотрят полноту (recall), а долю верных среди объектов, отнесенных к классу, — точность в узком смысле (precision).

Какие правила нашла модель

Дерево решений удобно тем, что найденные правила можно распечатать:

from sklearn.datasets import load_breast_cancer
from sklearn.tree import DecisionTreeClassifier, export_text

data = load_breast_cancer()
print(dict(enumerate(data.target_names.tolist())))

tree = DecisionTreeClassifier(max_depth=2, random_state=42)
tree.fit(data.data, data.target)
print(export_text(tree, feature_names=list(data.feature_names)))
{0: 'malignant', 1: 'benign'}
|--- worst radius <= 16.80
|   |--- worst concave points <= 0.14
|   |   |--- class: 1
|   |--- worst concave points >  0.14
|   |   |--- class: 0
|--- worst radius >  16.80
|   |--- mean texture <= 16.11
|   |   |--- class: 1
|   |--- mean texture >  16.11
|   |   |--- class: 0

Пороги 16.80 и 0.14 никто не задавал вручную — их подобрал алгоритм по данным. Это и есть «обучение без явного программирования» в самом наглядном виде. У нейросети или градиентного бустинга правила так просто не распечатать.

Без учителя: кластеризация

Здесь ответов нет: алгоритм k-means сам делит точки на заданное число групп.

from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans

X, _ = make_blobs(n_samples=300, centers=3, random_state=7)
km = KMeans(n_clusters=3, n_init=10, random_state=7).fit(X)
print("Размеры кластеров:", sorted(int((km.labels_ == k).sum()) for k in range(3)))
Размеры кластеров: [100, 100, 100]

Данные сгенерированы с тремя четкими группами, поэтому результат идеальный. На реальных данных число кластеров заранее неизвестно, а смысл каждой группы интерпретирует человек.

Основные алгоритмы и когда их брать

Алгоритм Вид / задача Когда подходит Ограничение
Линейная регрессия С учителем, регрессия Прогноз числа, нужна интерпретация коэффициентов Плохо ловит нелинейные зависимости без доработки признаков
Логистическая регрессия С учителем, классификация Быстрый понятный базовый классификатор Граница между классами линейная
k ближайших соседей (kNN) С учителем Небольшие данные, простая идея «похож на соседей» Медленно на больших данных, чувствителен к масштабу признаков
Дерево решений С учителем Нужны читаемые правила Легко переобучается
Случайный лес С учителем Надежный вариант «из коробки» для таблиц Модель тяжелее, правила не читаются
Градиентный бустинг (CatBoost, XGBoost, LightGBM) С учителем Табличные данные, высокая точность Нужна настройка параметров
k-means Без учителя, кластеризация Группы примерно шарообразной формы Число кластеров задают заранее
DBSCAN Без учителя, кластеризация Группы произвольной формы, выбросы Чувствителен к параметрам плотности
Иерархическая кластеризация Без учителя Нужно дерево вложенных групп Плохо масштабируется на большие объемы
Метод главных компонент (PCA) Без учителя, сжатие признаков Визуализация, борьба с избытком признаков Новые признаки трудно объяснить
Нейросети Любой вид Изображения, звук, текст Нужно много данных и вычислений

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

Где применяют машинное обучение

Сфера Задача Вид обучения
Интернет-магазины и стриминг Рекомендации товаров, фильмов, музыки Коллаборативная фильтрация, ранжирование с учителем
Банки и платежи Скоринг заявок, поиск мошеннических операций С учителем, поиск аномалий
Почта и соцсети Фильтрация спама, модерация контента С учителем
Ритейл и логистика Прогноз спроса, оптимизация запасов С учителем (временные ряды)
Маркетинг Сегментация клиентов, прогноз оттока Без учителя и с учителем
Медицина Помощь врачу в анализе снимков С учителем, глубокое обучение
Производство Предсказание поломок оборудования по датчикам С учителем, поиск аномалий
Тексты и речь Перевод, распознавание речи, чат-боты Самообучение, глубокое обучение

Когда машинное обучение не нужно

ML не стоит брать, если правило известно и стабильно (посчитать налог по формуле), данных мало или они без ответов, а ошибка модели недопустима и ее нельзя проверить. Модель всегда ошибается с некоторой вероятностью и переносит перекосы из данных: если в исторических решениях была систематическая ошибка, модель ее воспроизведет. Со временем поведение пользователей меняется, и качество падает — это называют дрейфом данных, поэтому модели переобучают.

Выводы

  • Машинное обучение — методы, при которых логику решения подбирает алгоритм по данным, а не пишет программист.
  • Три классических вида: с учителем (есть ответы), без учителя (ищем структуру), с подкреплением (учимся по награде).
  • Качество проверяют только на отложенных данных и сравнивают с простым базовым решением: 100% на обучающей выборке при заметно худшем тесте говорят о запоминании.
  • Для табличных задач начинают с простых моделей, затем пробуют лес или бустинг; нейросети сильнее на изображениях, звуке и тексте.
  • ML применяют в рекомендациях, антифроде, прогнозе спроса, медицине, промышленности и обработке текста — там, где правила сложно описать вручную, а данных много.

Где применяется / связь с практикой

Освойте тему на практике

Чтобы применять машинное обучение в работе, нужны три опоры: Python с библиотеками pandas и scikit-learn, базовая статистика и привычка честно проверять модель. Эти темы по шагам — от подготовки данных до выбора и оценки моделей — разбирают на курсе Machine Learning. Basic. Посмотреть формат занятий заранее можно на открытых уроках Otus.

FAQ

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

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

Чем машинное обучение отличается от анализа данных?
Анализ данных отвечает на вопрос «что произошло и почему» по уже собранным данным. Машинное обучение строит модель, которая дает ответ на новых объектах. На практике они пересекаются: подготовка данных для ML — это во многом анализ.

OTUS Журнал
Скидка 5% 14-20 сентября на курсы (popup)