Это один из довольно интересных методов кластеризации в неконтролируемом машинном обучении. Давайте начнем узнавать больше об алгоритме, задействованном в нем, и его реализации.

Что такое кластеризация?

Кластеризация — это стратегия группировки похожих объектов таким образом, чтобы объекты в одной категории были более похожи, чем объекты в других группах. Кроме того, кластер представляет собой набор связанных элементов.

Типы кластеризации:

  1. Кластеризация K-средних
  2. Иерархическая кластеризация
  3. Кластеризация среднего сдвига
  4. Пространственная кластеризация приложений с шумом на основе плотности (DBSCAN)
  5. Кластеризация максимизации ожидания (EM) с использованием моделей гауссовских смесей (GMM)

В этом блоге мы сосредоточимся только на иерархической кластеризации.

Давайте обсудим, зачем вообще нужна эта кластеризация, когда у нас уже есть k-mean??? …….. Да, вы правы, преодолевая проблемы k-mean

Проблемы k-средних: он пытается каждый раз создавать кластеры одинакового размера. Мы также должны указать количество кластеров в начале алгоритма. Мы бы предпочли не знать, сколько кластеров у нас должно быть в начале алгоритма, что усложняет поиск K-средних.

Определение. Иерархическая кластеризация, также известная как иерархический кластерный анализ (HCA), представляет собой метод кластерного анализа, целью которого является создание иерархии кластеров без определенного количества кластеров.

Типы иерархической кластеризации:

  1. Агломеративная иерархическая кластеризация
  2. Разделительная иерархическая кластеризация

Агломеративная иерархическая кластеризация:

Это подход «снизу вверх». Способ кластеризации лучше проиллюстрирован следующими рисунками.

Разделительная иерархическая кластеризация:

Это подход сверху вниз. Способ кластеризации лучше проиллюстрирован следующими рисунками.

Этапы для выполнения агломерационной иерархической кластеризации:

  1. Сначала мы назначаем все точки отдельному кластеру
  2. Следующий шаг — посмотреть наименьшее расстояние в матрице близости, объединить точки с наименьшим расстоянием и обновить матрицу близости. Обновленное значение может быть основано на минимальной, максимальной, средней связи или методе Уорда. (Я также дал небольшое описание матрицы близости и связей ниже этого)
  3. Повторяйте вышеуказанный шаг, пока не получите один кластер.

Матрица близости: это матрица, в которой хранятся расстояния между каждой точкой. В общем случае это евклидово расстояние. У нас будет матрица N x N, где N - количество наблюдений.

Связи :

  1. Одиночная связь: здесь расстояние между двумя кластерами определяется как кратчайшее расстояние между двумя точками в каждом кластере.
  2. Полная связь: здесь расстояние между двумя кластерами определяется как самое дальнее расстояние между двумя точками в каждом кластере.
  3. Средняя связь: среднее расстояние между каждой точкой в ​​одном кластере и каждой точкой в ​​другом кластере.

Метод Варда: он похож на среднюю связь, за исключением того, что он вычисляет сумму квадратов расстояний.

Реализация:

Попробуем проиллюстрировать на примере

Вы также можете проверить это по моей ссылке git ниже



Вы можете скачать вышеуказанный набор данных по этой ссылке https://drive.google.com/file/d/1orkqFIRB-Yl6DCBYkS1DJsaZmXiX8CeZ/view?usp=sharing

У нас есть данные о оптовых клиентах, и цель этой задачи — сегментировать клиентов оптового дистрибьютора на основе их годовых расходов на различные категории продуктов, такие как молоко, бакалея и площадь.

Мы нормализуем набор данных и делаем кластеризацию. Чтобы получить следующие результаты

Мы устанавливаем порог, чтобы обрезать самые высокие вертикальные линии дендрограммы, чтобы определить количество кластеров.