machine-learning Лекция

Кластеризация: K-Means и Иерархический анализ

Лекция 13: Кластеризация. K-Means и Иерархический анализ

Цели лекции

  1. Сменить парадигму: научиться работать без целевой переменной (yy).
  2. Разобрать K-Means — самый популярный алгоритм группировки данных.
  3. Изучить Иерархическую кластеризацию и дендрограммы.
  4. Понять, как оценивать качество, когда правильных ответов нет (Silhouette Score).

Часть 1: Философия Unsupervised Learning

В Supervised Learning (Регрессия, Классификация) у нас был “Учитель”, который говорил: “Это кошка, а это собака”. Модель минимизировала ошибку между прогнозом и учителем. В Unsupervised Learning (обучении без учителя) правильных ответов нет.

Аналогия: Инопланетянин в библиотеке

Представьте, что вы прилетели на другую планету и зашли в библиотеку. Вы не знаете языка. Вы не знаете жанров. Но вы видите:

  • Книги в красных переплетах стоят вместе.
  • Тонкие брошюры лежат отдельно.
  • Книги с формулами сгруппированы в углу.

Вы кластеризуете объекты на основе их похожести (расстояния), не зная их истинной сути.

1.2. Примеры из жизни

Где это применяется на практике?


Часть 2: K-Means (К-Средних) — Рабочая лошадка

Это итеративный алгоритм, который пытается найти KK центров сгустков данных.

2.1. Алгоритм в 4 шага

  1. Init (Инициализация): Выбираем KK случайных точек в пространстве и называем их Центроидами.
  2. Assignment (Назначение): Для каждой точки данных ищем ближайший центроид и красим точку в его цвет.
  3. Update (Обновление): Перемещаем центроид в геометрический центр всех точек его цвета (берем среднее арифметическое координат).
  4. Repeat (Повторение): Повторяем шаги 2 и 3, пока центроиды не перестанут двигаться.

2.2. Проблема выбора K (Elbow Method)

Алгоритм не знает, сколько кластеров в данных изначально. Вы должны сказать ему, например, K=3K=3. А если их 5?

Метод локтя (Elbow Method)

  • Строим график: ось X — число KK, ось Y — Inertia (сумма квадратов расстояний от точек до их центроидов).
  • Значение Inertia всегда падает с ростом KK.
  • Мы ищем точку изгиба (“локоть”), где падение резко замедляется. Это значение и есть оптимальное KK.

2.3. Нюансы инженера

Критически важные ограничения

  • Масштабирование обязательно! K-Means основан на расчете Евклидового расстояния. Если одна ось — “Зарплата” (100 000), а другая — “Возраст” (30), алгоритм будет работать только по Зарплате. Использование StandardScaler критически важно.
  • Форма кластеров: K-Means ищет исключительно сферы. Если ваши данные выглядят как “полумесяцы” или “вложенные кольца”, K-Means не справится (в таких случаях нужен DBSCAN).

Часть 3: Иерархическая кластеризация (Hierarchical)

Используется, если мы не хотим задавать KK заранее и хотим видеть структуру вложенности данных.

3.1. Агломеративный подход (Bottom-Up)

  1. В начале каждая точка — это отдельный независимый кластер.
  2. Находим два самых близких кластера и объединяем их в один.
  3. Повторяем процесс, пока все точки не сольются в один гигантский кластер.

3.2. Дендрограмма

Это дерево, которое визуально показывает историю объединений.

  • Ось Y показывает расстояние, на котором произошло слияние.
  • Проведя горизонтальную линию на любой высоте, мы получим нужное число кластеров.

Часть 4: Оценка качества (Evaluation)

Как понять, что разбиение хорошее, если у нас нет правильных ответов для проверки?

4.1. Внутренние метрики

Хороший кластер должен обладать двумя свойствами:

  1. Компактным (Cohesion): Точки плотно прижаты к своему центру.
  2. Изолированным (Separation): Кластеры находятся далеко друг от друга.

4.2. Silhouette Score (Силуэт)

Это самая надежная метрика, которая считается для каждой отдельной точки. s=bamax(a,b)s = \frac{b - a}{\max(a, b)}

  • aa: Среднее расстояние до точек своего кластера (мы хотим, чтобы оно было меньше).
  • bb: Среднее расстояние до точек ближайшего чужого кластера (мы хотим, чтобы оно было больше).

Интерпретация значений

  • +1: Идеально. Точка далеко от чужих кластеров и очень близко к своим.
  • 0: Точка находится прямо на границе двух кластеров (спорная ситуация).
  • -1: Ошибка. Точка была приписана не к тому кластеру.

Средний Силуэт по всем точкам дает общую оценку всего разбиения. Обычно Score>0.5Score > 0.5 считается хорошим результатом.


🧠 Проверка знаний

Почему при использовании алгоритма K-Means крайне важно предварительно применять масштабирование данных (например, StandardScaler)?

Что означает значение Silhouette Score равное нулю (0) для конкретной точки данных?