← Назад к вопросам

В чём разница между supervised learning и unsupervised learning?

1.0 Junior🔥 151 комментариев
#Machine Learning#Статистика и теория вероятностей

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Разница между supervised learning и unsupervised learning

Основное определение

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

  • У каждого примера в данных есть правильный ответ (метка)
  • Модель учится на примерах: вход → выход
  • Цель: предсказать выход для новых неизвестных входов

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

  • Данные НЕ имеют меток (правильных ответов)
  • Модель сама ищет закономерности и структуру в данных
  • Цель: найти скрытые паттерны, группировки, зависимости

Ключевые отличия

АспектSupervisedUnsupervised
Метки (labels)ОбязательныНе требуются
Данные для обучения(X, y) парыТолько X
ЗадачаПредсказаниеРазведочный анализ
Контроль качестваПросто (сравниваем с y)Сложно (нет истины)
Примеры задачКлассификация, регрессияКластеризация, сегментация

Примеры Supervised Learning

1. Классификация (Classification)

  • Задача: предсказать категорию
  • Примеры:
    • Спам vs не спам в письмах
    • Одобрить vs отклонить кредит
    • Класс: кошка vs собака vs птица
# Данные с метками
X = [
    [20, "A"],   # возраст, уровень образования
    [45, "B"],
    [30, "A"]
]
y = ["low_risk", "high_risk", "medium_risk"]  # МЕТКИ!

# Модель учится предсказывать y по X
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier()
model.fit(X, y)

# Предсказание для нового клиента
new = [[35, "B"]]
prediction = model.predict(new)  # ['high_risk']

2. Регрессия (Regression)

  • Задача: предсказать число
  • Примеры:
    • Цена дома по характеристикам
    • Продажи компании в следующем месяце
    • Оценка фильма (1-10)
# Данные с целевым значением
X = [[100], [150], [200]]  # площадь в м²
y = [2.5, 3.8, 5.1]  # цена в млн ₽

from sklearn.linear_model import LinearRegression
model = LinearRegression()
model.fit(X, y)

# Предсказание цены
new_house = [[175]]
price = model.predict(new_house)  # [4.45]

Примеры Unsupervised Learning

1. Кластеризация (Clustering)

  • Задача: разделить клиентов на группы
  • Цель: найти схожие объекты
  • Метрики: нет настоящих ответов, используем силуэт, инерцию
from sklearn.cluster import KMeans

# НЕТУ МЕТОК!
X = [
    [25, 50000],   # возраст, доход
    [45, 120000],
    [28, 55000],
    [65, 80000]
]

# Разделяем на 2 группы (молодые vs старые)
model = KMeans(n_clusters=2)
labels = model.fit_predict(X)
print(labels)  # [0, 1, 0, 1] — автоматически найденные кластеры

2. Снижение размерности (Dimensionality Reduction)

  • Задача: сжать 1000 признаков в 50
  • Цель: визуализация, ускорение обучения
  • Пример: PCA (Principal Component Analysis)
from sklearn.decomposition import PCA

# 1000 признаков
X = [[...], [...], ...]  

# Сжимаем до 50 главных компонент
pca = PCA(n_components=50)
X_compressed = pca.fit_transform(X)

3. Поиск аномалий (Anomaly Detection)

  • Задача: найти необычные транзакции
  • Цель: обнаружить мошенничество
from sklearn.ensemble import IsolationForest

# Нету меток аномалий!
X = [[100], [105], [103], [500]]  # сумма транзакций

model = IsolationForest(contamination=0.1)
outliers = model.fit_predict(X)  # [1, 1, 1, -1] где -1 = аномалия

Реальные примеры использования

Supervised:

  • Предсказание оттока клиентов (churn prediction)
  • Скоринг кредитоспособности
  • Рекомендации товаров (если есть история покупок)
  • Диагностика болезней (если есть исторические данные пациентов)

Unsupervised:

  • Сегментация клиентов для маркетинга
  • Анализ текстов (topic modeling — какие темы в корпусе?)
  • Рекомендации товаров (на основе схожести товаров)
  • Визуализация высокомерных данных

Гибридный подход: Semi-Supervised Learning

Иногда часть данных имеет метки, часть нет:

# 1000 примеров, но только 100 имеют метку
X_labeled = [...]
y_labeled = [...]
X_unlabeled = [...]  # остальные 900 примеров

# Модель учится на обоих типах данных
from sklearn.semi_supervised import LabelPropagation
model = LabelPropagation()
model.fit(np.vstack([X_labeled, X_unlabeled]), 
          np.append(y_labeled, [-1]*len(X_unlabeled)))

Заключение

Supervised: когда ты знаешь правильные ответы → используй для предсказания Unsupervised: когда ты хочешь найти закономерности → используй для исследования

В чём разница между supervised learning и unsupervised learning? | PrepBro