Результаты обучения
После изучения урока вы сможете:
- Объяснять отличие обучения без учителя от обучения с учителем.
- Различать матрицу признаков X и отсутствие заранее заданной целевой переменной y.
- Объяснять кластеризацию и сравнивать K-means, иерархическую кластеризацию и DBSCAN.
- Понимать назначение снижения размерности и роль PCA.
- Описывать обнаружение аномалий и ограничения такого результата.
- Выбирать первичные проверки качества и формулировать ограничения найденной структуры.
1. Что означает обучение без учителя
В предыдущем уроке мы рассматривали пары (X, y): признаки объекта и известный ответ, который модель учится предсказывать. Здесь исходная постановка обычно содержит матрицу признаков X, но не содержит целевой переменной y, которую нужно воспроизвести.
Отсутствие целевых меток не означает, что алгоритм работает без цели вообще. Цель задаёт исследователь: сгруппировать похожие профили энергопотребления, сжать множество показателей до нескольких компонент или найти наблюдения, резко отличающиеся от обычного поведения.
Не путайте с self-supervised learning. При самообучении (self-supervised learning) обучающий сигнал создаётся из самих данных: например, модель учится восстановить скрытую часть входа или предсказать следующий фрагмент последовательности. Такой подход часто используют при предварительном обучении больших моделей. Его принято выделять отдельно, хотя граница между терминами в литературе не всегда одинакова. Полуобучение (semi-supervised learning), в свою очередь, сочетает небольшую размеченную часть данных с большой неразмеченной.
Представьте историю работы сотен зданий: температура, влажность, потребление энергии, время суток и режим оборудования. Алгоритм может обнаружить повторяющиеся профили — например, ночной режим, рабочий день или пиковую нагрузку. Но названия групп появляются только после анализа их характеристик человеком.
2. Кластеризация: поиск похожих объектов
Алгоритм не знает заранее, что означает «похожи». Если сравнивать здания по годовому потреблению, получится одна структура; если по суточному профилю нагрузки — другая. Результат зависит от набора признаков, их масштаба, метрики расстояния и параметров алгоритма.
K-means: группы вокруг центров
K-means требует заранее задать число групп k. Алгоритм размещает центры, относит каждый объект к ближайшему центру, пересчитывает центры как средние координаты объектов и повторяет шаги до стабилизации. Это полезный базовый метод для числовых признаков, но он лучше работает с компактными группами сопоставимого масштаба.
Число k выбирают заранее. Разные начальные положения центров могут давать разные решения, поэтому используют несколько запусков. K-means чувствителен к масштабу признаков и выбросам: показатель с большими числовыми значениями может доминировать в расстоянии.
Иерархическая кластеризация
Иерархические методы строят дерево объединений или разделений объектов. При агломеративном подходе каждый объект сначала считается отдельной группой, затем близкие группы последовательно объединяются. Дерево можно рассматривать на разных уровнях детализации; метрика и способ связи (linkage) влияют на результат.
DBSCAN: группы по плотности
DBSCAN ищет области высокой плотности точек, может находить группы неправильной формы и помечать отдельные точки как шум. Число кластеров не задаётся напрямую, но результат чувствителен к радиусу соседства и минимальному числу соседей. При сильно различающейся плотности групп метод может работать плохо.
3. Как оценивать кластеры без правильных ответов
Часто нет эталонной разметки, с которой можно напрямую сравнить результат. Поэтому проверка сложнее, чем подсчёт accuracy в классификации.
- Внутренняя оценка. Silhouette coefficient оценивает компактность объектов внутри группы и отделённость от соседних групп. Значение около 1 обычно говорит о более чётком разделении, около 0 — о перекрытии, отрицательное — о возможном неудачном назначении. Но метрика отражает геометрию, а не полезность результата.
- Устойчивость. Повторяется ли структура при другой инициализации, подвыборке или небольшом изменении параметров?
- Содержательная проверка. Можно ли описать профили групп через исходные признаки? Имеет ли разделение смысл для задачи? Не создано ли оно ошибкой данных или масштабом?
- Внешняя оценка. Независимые метки можно использовать для последующей проверки, но нельзя незаметно передавать их алгоритму при обучении и называть результат полностью unsupervised.
4. Снижение размерности и PCA
Если у каждого объекта 80 показателей, общую картину трудно увидеть. Методы снижения размерности строят компактное представление для визуализации, уменьшения шума или дальнейшего анализа.
PCA (Principal Component Analysis) строит новые оси — главные компоненты, являющиеся линейными комбинациями исходных признаков. Первая компонента направлена туда, где данные имеют наибольшую дисперсию; следующие объясняют максимально возможную оставшуюся дисперсию при условии ортогональности предыдущим. PCA не выбирает «самые важные исходные признаки» и не гарантирует сохранение редких, но значимых событий.
t-SNE и UMAP часто используют для двумерной визуализации сложных представлений. Расстояния и размеры групп на такой карте зависят от параметров и случайности. Нельзя автоматически трактовать визуально разнесённые островки как объективные классы.
5. Обнаружение аномалий
Примеры: необычный профиль энергопотребления здания, редкое сочетание температуры и вибрации оборудования, нетипичная последовательность действий пользователя. Аномалия не обязательно является ошибкой или аварией: это сигнал для проверки.
Isolation Forest пытается изолировать редкие наблюдения случайными разбиениями; Local Outlier Factor сравнивает локальную плотность точки с плотностью соседей. Простые пороговые правила тоже полезны, если границы заданы физикой процесса или требованиями эксплуатации.
Различайте выброс в данных и значимое редкое событие. Необычное значение может быть ошибкой датчика, изменением режима, реальной аварией или новым допустимым состоянием. Нельзя автоматически удалять аномалии: сначала выясните их происхождение.
6. Сквозной пример: режимы работы зданий
Пусть у нас есть почасовые записи по зданиям: температура наружного воздуха, потребление энергии, влажность, число людей и время суток. Цель — понять повторяющиеся режимы, а не предсказать заранее размеченный класс.
- Сформулируйте вопрос. Найти типичные профили часов или дней.
- Выберите единицу наблюдения. Например, один день одного здания. Не смешивайте часовые и суточные записи без осознанной агрегации.
- Выберите признаки. Средняя и пиковая нагрузка, ночное потребление, диапазон температуры, доля рабочих часов. У каждой величины должны быть единицы и период расчёта.
- Подготовьте признаки. Проверьте пропуски, дубликаты, временные зоны и масштабы. Масштабирование особенно важно для методов на расстояниях.
- Сравните методы. Начните с K-means, затем проверьте, меняется ли вывод при иерархической кластеризации или DBSCAN.
- Проверьте результат. Изучите профили групп, устойчивость, внутренние метрики и экспертную интерпретацию.
- Сформулируйте осторожный вывод. «В этом наборе данных обнаружены три повторяющихся профиля» точнее, чем «существуют ровно три типа зданий».
Практическое задание
Предложите два набора признаков для одной задачи: (а) группировка зданий по масштабу потребления; (б) группировка по форме суточного профиля. Для каждого укажите единицу наблюдения, способ масштабирования и риск неверной интерпретации. Объясните, почему результаты могут различаться, хотя здания те же.
Критерий хорошего ответа: вы показываете, что кластеры зависят от исследовательского вопроса и представления данных, а не объявляете один вариант единственно правильным.
7. Ограничения и контрольный список
- Алгоритм может обнаружить математическую структуру, не имеющую предметного смысла.
- Выбор признаков, расстояния, масштаба и параметров способен изменить группы.
- В высокой размерности расстояния становятся менее информативными; редкие структуры могут теряться при сжатии.
- Кластер — не обязательно естественная категория, а аномалия — не обязательно ошибка.
- Двумерная визуализация не доказывает существование кластеров в исходном пространстве.
- Если появились надёжные метки и задача стала предсказательной, можно перейти к supervised learning, сохранив корректное разделение данных.
8. Практика с Python: K-means
Пример создаёт синтетические точки. Генератор также возвращает учебные метки, но мы отбрасываем их: алгоритм кластеризации получает только матрицу признаков X.
from sklearn.datasets import make_blobs
from sklearn.preprocessing import StandardScaler
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score
# Создаём синтетические признаки; сгенерированные метки отбрасываем.
X, _ = make_blobs(
n_samples=300,
centers=3,
cluster_std=1.2,
random_state=42
)
X_scaled = StandardScaler().fit_transform(X)
model = KMeans(n_clusters=3, n_init=10, random_state=42)
cluster_ids = model.fit_predict(X_scaled)
# Оцениваем геометрическое разделение, а не смысловую правильность.
score = silhouette_score(X_scaled, cluster_ids)
print("Silhouette score:", round(score, 3))
print("Cluster IDs:", sorted(set(cluster_ids)))Разбор: make_blobs создаёт точки; StandardScaler приводит признаки к сопоставимому масштабу; KMeans ищет три группы; silhouette_score оценивает геометрическую отделённость. Номера кластеров — технические идентификаторы: кластер 0 не лучше и не важнее кластера 1.
Среда: Python 3.9+ и актуальная версия scikit-learn. Установка: python -m pip install scikit-learn. В реальном проекте преобразования нужно обучать только на данных, разрешённых для соответствующего этапа анализа.