Машинное обучение (machine learning, ML) — это общее название задач, для которых библиотеки вроде scikit-learn, TensorFlow и PyTorch предоставляют инструменты обучения моделей на данных. В терминах текущего глоссария scikit-learn сюда входят как supervised learning с зависимой переменной target(s), так и unsupervised learning, где ожидаемое предсказание для каждого sample недоступно.
Английский термин: machine learning. Сокращение: ML. Важно: ниже термин объяснён через официальную терминологию scikit-learn и текущие документы TensorFlow и PyTorch по состоянию на 2026-08-16, поэтому это практическая, а не универсальная для всей отрасли, рамка.
Простыми словами
Грубо говоря, машинное обучение можно представить как работу с примерами. Если у вас есть набор объектов и для каждого уже известен правильный ответ, вы учите систему замечать связь между данными и этим ответом. Если правильных ответов нет, вы просите систему найти структуру сама: похожие группы, закономерности или распределение.
В этом смысле ключевой вопрос всегда один: есть ли у вас target. Если есть — вы ближе к обучению с учителем (Supervised Learning). Если нет — к обучению без учителя.
Как это работает
Для практики удобно держать в голове схему из глоссария scikit-learn. Там есть sample — отдельный пример из набора данных, есть target(s) — зависимая переменная для supervised и semisupervised learning, и есть процедура fit, во время которой оценщик обучается на данных.
- Вы собираете набор samples: строки таблицы, документы, записи сенсоров или другие объекты.
- Проверяете, есть ли для каждого sample ожидаемый ответ
y, то есть target. - Если
yесть, это supervised-постановка: модель учится предсказывать зависимую переменную. - Если
yнет, это unsupervised-постановка: ожидаемое предсказание для каждого sample не задано. - В scikit-learn unsupervised estimators игнорируют любой
y, переданный вfit. Это полезная практическая граница между режимами.
Данные X (samples)
|
+--> есть target y --> supervised learning --> fit(X, y) --> предсказание target
|
+--> нет target y --> unsupervised learning --> fit(X) или y игнорируется --> поиск структуры
Практический смысл схемы: машинное обучение — не один алгоритм и не одна библиотека, а способ постановки задачи. Сначала вы определяете роль данных и target, а уже потом выбираете инструменты.
Где применяется
- В Python-проектах с классическим ML. Официальная главная страница scikit-learn описывает проект как open source machine learning library in Python. Для практики это означает удобный вход в ML-терминологию: sample, target, estimator, supervised и unsupervised.
- В задачах, где для каждого объекта есть правильный ответ. Здесь нужен target, и именно он определяет supervised-постановку. Это базовая логика для большинства прикладных сценариев предсказания.
- В задачах, где правильного ответа нет для каждого объекта. Тогда речь идёт об unsupervised learning: система работает без ожидаемого предсказания для каждого sample.
- В средах TensorFlow и PyTorch, где важна совместимость окружения. Для реального проекта мало знать термин ML: нужно ещё попасть в поддерживаемые версии Python и платформы.
Состояние популярных библиотек на дату источников
- scikit-learn: текущая stable-документация — 1.9.0, а 1.10 находится в разработке.
- TensorFlow: страница установки указывает, что начиная с TensorFlow 2.21 Python 3.9 больше не поддерживается; поддерживаемые версии Python — 3.10–3.13. Также TensorFlow 2.16 был последним релизом с поддержкой macOS x86.
- PyTorch: локальная установка сообщает, что stable — это наиболее протестированный и поддерживаемый релиз, а latest PyTorch требует Python 3.9 или новее. В зафиксированном официальном changelog latest release помечен как 2.13.0, но эту метку стоит перепроверять прямо перед публикацией или развёртыванием.
Практический пример
Ниже — минимальный сценарий, который помогает не путать ML как термин с конкретной библиотекой.
- Определите, есть ли у ваших данных target
y. - Если target есть, мыслите задачу как supervised learning.
- Если target нет, мыслите задачу как unsupervised learning.
- Только после этого выбирайте стек: scikit-learn, TensorFlow или PyTorch, и проверяйте совместимость среды.
# Схема в духе scikit-learn
# X — samples
# y — target, если он известен
model.fit(X, y) # supervised learning
clusterer.fit(X) # unsupervised learning
# если передать y в unsupervised fit, такой estimator его проигнорирует
Если вы начинаете с PyTorch, в официальной инструкции после установки предлагается простой шаг проверки:
import torch
print(torch.cuda.is_available())
Это не «пример машинного обучения» в полном смысле, а полезная проверка, что рабочая среда готова к запуску ML-кода.
Чем отличается от…
| Термин | Что означает | Чем отличается от машинного обучения |
|---|---|---|
| Машинное обучение | Общий класс задач и инструментов обучения моделей на данных | Это umbrella-term для разных постановок, библиотек и режимов обучения |
| Обучение с учителем | Есть зависимая переменная target(s) для samples | Это частный случай ML, а не синоним всего ML |
| Обучение без учителя | Ожидаемое предсказание для каждого sample недоступно | Это тоже частный случай ML, где логика задачи строится без target |
| Библиотека ML | Инструмент, например scikit-learn, TensorFlow или PyTorch | Библиотека — это реализация и API, а ML — более широкий термин о постановке задачи |
Ограничения и заблуждения
- Заблуждение: «машинное обучение» — это один конкретный метод. На практике термин объединяет разные режимы работы с данными. Уже на уровне базовых источников видно разделение минимум на supervised и unsupervised.
- Заблуждение: target нужен всегда. Нет. В официальном глоссарии scikit-learn unsupervised learning прямо описан как режим, где ожидаемое предсказание недоступно для каждого sample.
- Заблуждение: если библиотека установилась, всё совместимо надолго. Нет. У TensorFlow совместимость зависит от версии Python и платформы; кроме того, сам проект указывает, что назад совместимы только документированные public API в minor и patch-релизах.
- Заблуждение: терминология одинакова во всех фреймворках. Нет. Даже в supplied source pack есть редакционное ограничение: словарь scikit-learn полезен для объяснения базы, но он scikit-learn-centric и не является универсальным стандартом всей области.
- Ограничение для практики: точные колёса, сборки и поддерживаемые варианты TensorFlow и PyTorch зависят от платформы, архитектуры и выбранного ускорителя. Эти детали нужно перепроверять в официальных install docs на дату установки.
Практический вердикт: если вам нужно быстро понять термин, считайте машинное обучение зонтичным понятием: сначала решите, есть ли у вас target, затем определите supervised или unsupervised постановку, и только потом выбирайте библиотеку и среду. Редакционное ограничение: эта статья намеренно опирается на терминологию scikit-learn и текущие условия установки TensorFlow/PyTorch по состоянию на 2026-08-16.
Связанные термины
- Обучение с учителем (Supervised Learning)
- Обучение без учителя
- Глубокое обучение (Deep Learning)
- Обучение с подкреплением (Reinforcement Learning, RL)
- Недообучение (Underfitting)
Источники
- Glossary of Common Terms and API Elements — scikit-learn 1.9.0 documentation
- scikit-learn: machine learning in Python — scikit-learn 1.9.0 documentation
- Install TensorFlow with pip
- TensorFlow version compatibility | TensorFlow Core
- Start Locally | PyTorch
- Releases · pytorch/pytorch · GitHub
- TensorFlow: Large-Scale Machine Learning on Heterogeneous Systems
- PyTorch 2: Faster Machine Learning Through Dynamic Shapes
Вопросы и ответы
Что в ML считается target?
В терминологии scikit-learn target(s) — это зависимая переменная в supervised и semisupervised learning. Если говорить проще, это тот ответ, который модель должна научиться предсказывать.
Нужен ли target для любой задачи машинного обучения?
Нет. Для unsupervised learning ожидаемое предсказание недоступно для каждого sample, а unsupervised estimators в scikit-learn игнорируют любой y, переданный в fit.
Можно ли считать scikit-learn универсальным словарём ML?
Не полностью. Это очень полезный практический словарь, но сам source pack отдельно предупреждает: он scikit-learn-centric и не является универсальным стандартом всей области.
Какие версии Python сейчас важны для TensorFlow и PyTorch?
По официальной странице TensorFlow, начиная с версии 2.21 Python 3.9 больше не поддерживается, а поддерживаемые версии — 3.10–3.13. По local install guide PyTorch latest PyTorch требует Python 3.9 или новее.
Как быстро проверить, что PyTorch видит CUDA?
В официальной инструкции PyTorch предлагается пост-установочная проверка через torch.cuda.is_available(). Это быстрый способ понять, доступен ли CUDA в текущей среде.