Это один из довольно интересных методов кластеризации в неконтролируемом машинном обучении. Давайте начнем узнавать больше об алгоритме, задействованном в нем, и его реализации.
Что такое кластеризация?
Кластеризация — это стратегия группировки похожих объектов таким образом, чтобы объекты в одной категории были более похожи, чем объекты в других группах. Кроме того, кластер представляет собой набор связанных элементов.
Типы кластеризации:
- Кластеризация K-средних
- Иерархическая кластеризация
- Кластеризация среднего сдвига
- Пространственная кластеризация приложений с шумом на основе плотности (DBSCAN)
- Кластеризация максимизации ожидания (EM) с использованием моделей гауссовских смесей (GMM)
В этом блоге мы сосредоточимся только на иерархической кластеризации.
Давайте обсудим, зачем вообще нужна эта кластеризация, когда у нас уже есть k-mean??? …….. Да, вы правы, преодолевая проблемы k-mean
Проблемы k-средних: он пытается каждый раз создавать кластеры одинакового размера. Мы также должны указать количество кластеров в начале алгоритма. Мы бы предпочли не знать, сколько кластеров у нас должно быть в начале алгоритма, что усложняет поиск K-средних.
Определение. Иерархическая кластеризация, также известная как иерархический кластерный анализ (HCA), представляет собой метод кластерного анализа, целью которого является создание иерархии кластеров без определенного количества кластеров.
Типы иерархической кластеризации:
- Агломеративная иерархическая кластеризация
- Разделительная иерархическая кластеризация
Агломеративная иерархическая кластеризация:
Это подход «снизу вверх». Способ кластеризации лучше проиллюстрирован следующими рисунками.
Разделительная иерархическая кластеризация:
Это подход сверху вниз. Способ кластеризации лучше проиллюстрирован следующими рисунками.
Этапы для выполнения агломерационной иерархической кластеризации:
- Сначала мы назначаем все точки отдельному кластеру
- Следующий шаг — посмотреть наименьшее расстояние в матрице близости, объединить точки с наименьшим расстоянием и обновить матрицу близости. Обновленное значение может быть основано на минимальной, максимальной, средней связи или методе Уорда. (Я также дал небольшое описание матрицы близости и связей ниже этого)
- Повторяйте вышеуказанный шаг, пока не получите один кластер.
Матрица близости: это матрица, в которой хранятся расстояния между каждой точкой. В общем случае это евклидово расстояние. У нас будет матрица N x N, где N - количество наблюдений.
Связи :
- Одиночная связь: здесь расстояние между двумя кластерами определяется как кратчайшее расстояние между двумя точками в каждом кластере.
- Полная связь: здесь расстояние между двумя кластерами определяется как самое дальнее расстояние между двумя точками в каждом кластере.
- Средняя связь: среднее расстояние между каждой точкой в одном кластере и каждой точкой в другом кластере.
Метод Варда: он похож на среднюю связь, за исключением того, что он вычисляет сумму квадратов расстояний.
Реализация:
Попробуем проиллюстрировать на примере
Вы также можете проверить это по моей ссылке git ниже
Вы можете скачать вышеуказанный набор данных по этой ссылке https://drive.google.com/file/d/1orkqFIRB-Yl6DCBYkS1DJsaZmXiX8CeZ/view?usp=sharing
У нас есть данные о оптовых клиентах, и цель этой задачи — сегментировать клиентов оптового дистрибьютора на основе их годовых расходов на различные категории продуктов, такие как молоко, бакалея и площадь.
Мы нормализуем набор данных и делаем кластеризацию. Чтобы получить следующие результаты
Мы устанавливаем порог, чтобы обрезать самые высокие вертикальные линии дендрограммы, чтобы определить количество кластеров.