В чём разница между обучением с учителем и без учителя?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Обучение с учителем vs без учителя
Обучение с учителем (Supervised Learning) и обучение без учителя (Unsupervised Learning) - два фундаментальных подхода в машинном обучении, различающихся наличием размеченных данных.
Обучение с учителем (Supervised Learning)
Модель обучается на размеченных данных - парах (вход, правильный ответ). Цель - научиться предсказывать правильный ответ для новых данных.
Задачи:
- Классификация - предсказание категории (спам/не спам, диагноз заболевания)
- Регрессия - предсказание числового значения (цена квартиры, температура)
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
model = RandomForestClassifier(n_estimators=100)
model.fit(X_train, y_train) # обучение на размеченных данных
predictions = model.predict(X_test)
Алгоритмы: линейная регрессия, логистическая регрессия, SVM, деревья решений, Random Forest, XGBoost, нейронные сети.
Метрики: accuracy, precision, recall, F1-score, AUC-ROC (классификация); MSE, RMSE, MAE, R-squared (регрессия).
Обучение без учителя (Unsupervised Learning)
Модель работает с неразмеченными данными - только входные данные без правильных ответов. Цель - найти скрытые закономерности и структуру в данных.
Задачи:
- Кластеризация - группировка похожих объектов (сегментация клиентов)
- Снижение размерности - сжатие данных с сохранением информации (PCA, t-SNE)
- Обнаружение аномалий - поиск выбросов (fraud detection)
- Ассоциативные правила - поиск закономерностей (анализ корзины покупок)
from sklearn.cluster import KMeans
from sklearn.decomposition import PCA
# Кластеризация
kmeans = KMeans(n_clusters=5, random_state=42)
clusters = kmeans.fit_predict(X) # нет y - только X
# Снижение размерности
pca = PCA(n_components=2)
X_reduced = pca.fit_transform(X)
print(f"Объясненная дисперсия: {pca.explained_variance_ratio_.sum():.2%}")
Алгоритмы: K-Means, DBSCAN, иерархическая кластеризация, PCA, t-SNE, UMAP, Isolation Forest, autoencoders.
Ключевые различия
| Аспект | С учителем | Без учителя |
|---|---|---|
| Данные | Размеченные (X, y) | Неразмеченные (только X) |
| Цель | Предсказание | Поиск структуры |
| Оценка | Точные метрики (accuracy) | Косвенные метрики (silhouette) |
| Стоимость данных | Высокая (разметка дорогая) | Низкая |
| Примеры | Классификация, регрессия | Кластеризация, PCA |
Semi-Supervised Learning
Промежуточный подход: небольшая часть данных размечена, основная масса - нет. Модель использует размеченные данные для начального обучения, затем распространяет знания на неразмеченные.
from sklearn.semi_supervised import LabelSpreading
# -1 означает неразмеченные данные
labels = [0, 1, -1, -1, -1, 0, -1, 1, -1, -1]
model = LabelSpreading()
model.fit(X, labels)
Self-Supervised Learning
Модель генерирует псевдо-метки из самих данных (BERT маскирует слова, SimCLR создает аугментации). Это позволяет обучаться на огромных неразмеченных датасетах.
Когда что использовать
- С учителем - когда есть размеченные данные и конкретная задача предсказания
- Без учителя - когда нужно исследовать данные, найти паттерны, нет разметки
- Semi-supervised - когда разметка дорогая, но есть немного размеченных примеров