Обучение с учителем (supervised learning) — это подход в машинном обучении (ML), где модель учится на размеченных примерах: у каждого входа есть признаки, а у выхода — известная метка ответа. После обучения модель применяют к новым примерам, для которых готовой метки обычно нет.
В официальных материалах Google это описано как изучение математической зависимости между features и labels; в документации TensorFlow и scikit-learn та же идея выражается через пары x/y и типичный цикл fit → evaluate → predict или fit(X, y) → predict(X). Если вам нужен короткий ответ на вопрос «что такое обучение с учителем», то суть такая: вы сначала показываете модели правильные ответы, а потом просите её предсказывать ответы для новых данных.
Английский термин: supervised learning. В документации также встречаются формулировки: обучение на labeled examples, обучение на парах x/y, обучение по features и labels. По-русски обычно говорят: обучение по размеченным данным, обучение на размеченных примерах.
Простыми словами
Грубо говоря, это похоже на обучение по карточкам с ответами. Вы показываете системе много примеров вида «вход → правильный результат», и она постепенно улавливает правило, по которому вход связан с ответом.
Важно не переусердствовать с аналогией: у модели нет «понимания» в бытовом смысле. Официальные источники описывают процесс строже: есть признаки входа, есть метка выхода, и модель подбирает математическую зависимость между ними.
Как это работает
В glossary Google labeled example — это пара «features + label», а unlabeled example — пример без label. В supervised learning модель обучают именно на labeled examples, а затем используют для предсказаний на новых данных. В TensorFlow типичный цикл дополнительно включает вычисление loss, градиентов и оценку качества на данных проверки.
Размеченные данные
[X1, y1], [X2, y2], [X3, y3] ...
│
▼
fit / training
│
├─ вычисление loss
├─ вычисление градиентов
└─ обновление параметров модели
│
▼
проверка на validation / evaluate
│
▼
predict(X_new) для новых примеров
│
▼
прогноз y_hat
- Подготовка данных. Вы собираете примеры, где у каждого входа уже известен правильный ответ y.
- Обучение. Модель получает пары x/y или X/y и подстраивает свои параметры.
- Проверка. Качество оценивают на отдельной проверочной, или отложенной, выборке.
- Применение. После этого модель делает предсказания для новых примеров без готовой метки.
Формулировки в источниках немного различаются: Google делает акцент на связи между features и labels, TensorFlow — на тренировочном цикле и API, scikit-learn — на интерфейсах fit(X, y) и predict(X). Но ядро одно и то же: обучение на размеченных данных.
Где применяется
- Табличные данные с целевой переменной. В scikit-learn supervised learning описывается через данные X и целевую переменную y. Это базовый сценарий, когда у вас уже есть исторические строки данных и известный целевой столбец.
- Classification-задачи. Документация scikit-learn прямо относит их к одной из двух основных групп supervised learning.
- Regression-задачи. Это вторая основная группа supervised learning в документации scikit-learn.
- Нейросетевые пайплайны в TensorFlow / tf.keras. Официальные руководства описывают обучение на x/y, затем оценку через evaluate и получение прогнозов через predict.
Практически это значит следующее: если у вас уже есть размеченная история наблюдений, supervised learning обычно становится первой постановкой, которую стоит проверить. Для быстрых baseline-моделей на табличных данных в source pack отдельно отмечен scikit-learn, а для нейросетевых и production-oriented пайплайнов — TensorFlow / tf.keras.
Практический пример
Ниже — схематичный Python-паттерн, который совпадает с тем, как официальные API описывают supervised workflow. Это не привязка к одной конкретной архитектуре, а минимальный каркас: обучить на размеченных данных, проверить на отдельной выборке, затем предсказать для новых примеров.
# X_train, y_train — размеченные примеры для обучения
model.fit(X_train, y_train)
# X_val, y_val — отдельная проверочная выборка
model.evaluate(X_val, y_val)
# X_new — новые примеры без готовых меток
y_pred = model.predict(X_new)
Что здесь важно:
- в scikit-learn базовый контракт для supervised estimators описан как fit(X, y) и predict(X);
- в tf.keras.Model документированы fit, evaluate и predict;
- в API Keras у fit также могут передаваться sample weights, если ваш сценарий этого требует.
Практический вердикт: если у вас есть исторические примеры с надёжным y, начинайте с supervised learning и простого baseline. Если меток нет, сам по себе workflow fit(X, y) здесь неприменим без дополнительной подготовки данных или другой постановки задачи.
Чем отличается от связанных терминов
| Термин | Что это | Чем отличается |
|---|---|---|
| Обучение без учителя | Смежная постановка, где в определении supervised отсутствует ключевой элемент — label y. | В официальных определениях supervised обучение строится именно на labeled examples. Если меток нет, это уже не тот сценарий, который описан здесь. |
| Labeled example | Один пример вида «features + label» по glossary Google. | Это единица данных для обучения, а не сам метод обучения. |
| Classification | Одна из двух основных групп supervised-задач в документации scikit-learn. | Это частный случай внутри supervised learning, а не его синоним. |
| Regression | Вторая основная группа supervised-задач в документации scikit-learn. | Тоже частный случай внутри supervised learning, а не отдельная альтернатива ему. |
Ограничения и заблуждения
- Заблуждение: «учитель» — это человек, который управляет моделью в момент предсказания. В проверенных источниках смысл другой: «учитель» фактически представлен метками y в обучающем наборе.
- Заблуждение: достаточно любой функции predict, и это уже supervised learning. Для supervised-постановки в источниках принципиально важно обучение на размеченных примерах: features + label или X/y.
- Ограничение: версия документации и установленная библиотека могут не совпадать. В source pack отдельно отмечено, что страницы TensorFlow, tf.keras API и release branches обновляются независимо; аналогично у scikit-learn есть отдельная release history. Для внедрения сверяйте именно вашу установленную версию с релиз-ноутами.
- Ограничение: это семейство подходов, а не один универсальный алгоритм. Официальные документы описывают общий паттерн обучения и предсказания, но не сводят supervised learning к одной модели.
- Редакционное ограничение этой статьи: здесь разобрана базовая постановка термина. Выбор конкретной модели, функции потерь, метрики и схемы валидации зависит от вашей задачи и в source pack подробно не раскрыт.
Связанные термины
Чтобы не путать постановки, полезно рядом прочитать про обучение без учителя. Для общего контекста начните с термина машинное обучение (ML). Если вы работаете с нейросетями, следующий логичный шаг — глубокое обучение (Deep Learning). А для другой логики обучения, где ключевым сигналом выступает не метка, а вознаграждение, посмотрите обучение с подкреплением (RL).
Источники
Материал сверен по состоянию на 2026-08-16. Для практической совместимости библиотек дополнительно проверяйте релиз-ветку и установленную у вас версию.
- Supervised learning | Machine Learning Crash Course
- Glossary | Machine Learning Crash Course
- Basic training loops | TensorFlow Core
- tf.keras.Model | TensorFlow Core
- Supervised learning — scikit-learn documentation
- Versions | TensorFlow
- Release history — scikit-learn
- Using Unlabeled Data for Supervised Learning
Вопросы и ответы
Обучение с учителем и classification — это одно и то же?
Нет. По документации scikit-learn, classification — это одна из основных групп задач внутри supervised learning. Сам термин supervised learning шире.
Нужны ли метки для каждого примера?
Для базовой supervised-постановки обучение строится на labeled examples. При этом после обучения модель как раз и применяют к новым примерам, где готовой метки нет.
Что означают X и y в документации?
Это стандартная запись для входных данных и целевой переменной. В Google-терминах та же идея описывается как features и label.
Можно ли делать supervised learning и в scikit-learn, и в TensorFlow?
Да. Официальная документация scikit-learn описывает supervised estimators через fit(X, y) и predict(X), а TensorFlow / tf.keras — через обучение на x/y, оценку через evaluate и предсказание через predict. Но совместимость API нужно проверять по вашей версии.