Лекция 13: Кластеризация. K-Means и Иерархический анализ
Цели лекции
- Сменить парадигму: научиться работать без целевой переменной ().
- Разобрать K-Means — самый популярный алгоритм группировки данных.
- Изучить Иерархическую кластеризацию и дендрограммы.
- Понять, как оценивать качество, когда правильных ответов нет (Silhouette Score).
Часть 1: Философия Unsupervised Learning
В Supervised Learning (Регрессия, Классификация) у нас был “Учитель”, который говорил: “Это кошка, а это собака”. Модель минимизировала ошибку между прогнозом и учителем. В Unsupervised Learning (обучении без учителя) правильных ответов нет.
Аналогия: Инопланетянин в библиотеке
Представьте, что вы прилетели на другую планету и зашли в библиотеку. Вы не знаете языка. Вы не знаете жанров. Но вы видите:
- Книги в красных переплетах стоят вместе.
- Тонкие брошюры лежат отдельно.
- Книги с формулами сгруппированы в углу.
Вы кластеризуете объекты на основе их похожести (расстояния), не зная их истинной сути.
1.2. Примеры из жизни
Где это применяется на практике?
Часть 2: K-Means (К-Средних) — Рабочая лошадка
Это итеративный алгоритм, который пытается найти центров сгустков данных.
2.1. Алгоритм в 4 шага
- Init (Инициализация): Выбираем случайных точек в пространстве и называем их Центроидами.
- Assignment (Назначение): Для каждой точки данных ищем ближайший центроид и красим точку в его цвет.
- Update (Обновление): Перемещаем центроид в геометрический центр всех точек его цвета (берем среднее арифметическое координат).
- Repeat (Повторение): Повторяем шаги 2 и 3, пока центроиды не перестанут двигаться.
2.2. Проблема выбора K (Elbow Method)
Алгоритм не знает, сколько кластеров в данных изначально. Вы должны сказать ему, например, . А если их 5?
Метод локтя (Elbow Method)
- Строим график: ось X — число , ось Y — Inertia (сумма квадратов расстояний от точек до их центроидов).
- Значение Inertia всегда падает с ростом .
- Мы ищем точку изгиба (“локоть”), где падение резко замедляется. Это значение и есть оптимальное .
2.3. Нюансы инженера
Критически важные ограничения
- Масштабирование обязательно! K-Means основан на расчете Евклидового расстояния. Если одна ось — “Зарплата” (100 000), а другая — “Возраст” (30), алгоритм будет работать только по Зарплате. Использование
StandardScalerкритически важно. - Форма кластеров: K-Means ищет исключительно сферы. Если ваши данные выглядят как “полумесяцы” или “вложенные кольца”, K-Means не справится (в таких случаях нужен DBSCAN).
Часть 3: Иерархическая кластеризация (Hierarchical)
Используется, если мы не хотим задавать заранее и хотим видеть структуру вложенности данных.
3.1. Агломеративный подход (Bottom-Up)
- В начале каждая точка — это отдельный независимый кластер.
- Находим два самых близких кластера и объединяем их в один.
- Повторяем процесс, пока все точки не сольются в один гигантский кластер.
3.2. Дендрограмма
Это дерево, которое визуально показывает историю объединений.
- Ось Y показывает расстояние, на котором произошло слияние.
- Проведя горизонтальную линию на любой высоте, мы получим нужное число кластеров.
Часть 4: Оценка качества (Evaluation)
Как понять, что разбиение хорошее, если у нас нет правильных ответов для проверки?
4.1. Внутренние метрики
Хороший кластер должен обладать двумя свойствами:
- Компактным (Cohesion): Точки плотно прижаты к своему центру.
- Изолированным (Separation): Кластеры находятся далеко друг от друга.
4.2. Silhouette Score (Силуэт)
Это самая надежная метрика, которая считается для каждой отдельной точки.
- : Среднее расстояние до точек своего кластера (мы хотим, чтобы оно было меньше).
- : Среднее расстояние до точек ближайшего чужого кластера (мы хотим, чтобы оно было больше).
Интерпретация значений
- +1: Идеально. Точка далеко от чужих кластеров и очень близко к своим.
- 0: Точка находится прямо на границе двух кластеров (спорная ситуация).
- -1: Ошибка. Точка была приписана не к тому кластеру.
Средний Силуэт по всем точкам дает общую оценку всего разбиения. Обычно считается хорошим результатом.