Машинное обучение (Machine Learning, ML) — это совокупность методов, позволяющих компьютерам обучаться на данных без явного программирования правил. Программист не пишет условия вида «если в письме слово «выигрыш», то это спам», а дает алгоритму много примеров с ответами. Алгоритм сам подбирает параметры модели — функции, которая потом дает ответ на новых данных.
Содержание
- Правила против обучения: в чем разница
- Мини-словарь: пять терминов, которые путают
- ИИ, машинное обучение, глубокое обучение и нейросети
- Виды машинного обучения
- Как обучают модель: шаги
- Пример: обучение с учителем на Python
- Основные алгоритмы и когда их брать
- Где применяют машинное обучение
- Выводы
- Где применяется / связь с практикой
- FAQ
Ниже — чем 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), когда метки берутся из самих данных. Так предобучают языковые модели: они учатся предсказывать следующий фрагмент текста.
Как выбрать вид: есть исторические данные с ответами — обучение с учителем; ответов нет и нужна структура — без учителя; решение — цепочка действий с отложенной оценкой — с подкреплением.
Как обучают модель: шаги
- Сформулировать задачу: что предсказываем и как измерим качество.
- Собрать и почистить данные: пропуски, дубли, ошибки в метках.
- Разделить данные на обучающую и тестовую части.
- Обучить модель на обучающей части.
- Оценить на тестовой части и сравнить с простым базовым решением.
- Встроить модель в продукт и следить за качеством: данные со временем меняются.
Главная ловушка — проверять модель на тех же данных, на которых она училась. Модель может запомнить примеры, а не закономерность. Это называется переобучением.
Пример: обучение с учителем на 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 — это во многом анализ.



