Этот пост предназначен для того, чтобы быстро освежить (таким образом, предполагается, что вы уже знакомы с материалом) по «Иерархической кластеризации». Вы также можете рассматривать это как FAQ или Вопросы для собеседования.
Сколько существует типов иерархической кластеризации?
Есть 2 типа: агломеративный (подход снизу вверх), разделительный (подход сверху вниз)
*****************************************
Что работает за иерархической кластеризацией?
Первый шаг - сделать каждую точку данных единым кластером точек. Второй шаг - взять 2 ближайших кластера и объединить их в один кластер. Третий шаг - взять 2 закрытых кластера и объединить их в один кластер. Повторяйте шаг 3, пока не останется только один кластер.
*****************************************
Как работают дендограммы?
Дендограмма - это график евклидова расстояния между каждым кластером. Согласно объяснению в работе за иерархической кластеризацией, мы наносим точки на ось X, а евклидово расстояние - на ось y. А затем мы начинаем строить график в соответствии с работой иерархической кластеризации. Пожалуйста, прочтите статью wikipidea для лучшего понимания. https://en.wikipedia.org/wiki/Dendrogram
*****************************************
Глядя на дендограмму, как узнать, сколько кластеров нужно иметь?
На дендограмме найдите самую большую вертикальную линию, которая не пересекает горизонтальную линию. Используйте эту линию, чтобы нарисовать горизонтальную линию, а затем, в точках, где эта горизонтальная линия пересекает различные вертикальные линии, подсчитайте эти точки, и это количество является идеальным ответом на количество кластеров, которые могут иметь данные.
*****************************************
Пример кода для построения дендограммы?
# Использование дендограммы для поиска оптимального количества кластеров
import scipy.cluster.hierarchy как sch
dendogram = sch.dendrogram (sch.linkage (X, method = 'ward'))
plt.title ('‹Заголовок для оси X›')
plt.xlabel ('‹Заголовок для оси Y›')
plt.ylabel ('Евклидово расстояние')
plt .Показать()
*****************************************
Пример кода для реализации агломеративной кластеризации?
# подгонка иерархической кластеризации к набору данных торгового центра
из sklearn.cluster import AgglomerativeClustering
hc = AgglomerativeClustering (n_clusters = 5, affinity = 'euclidean', linkage = 'ward')
y_hc = hc. fit_predict (X)
# Визуализация кластеров
plt.scatter (X [y_hc == 0, 0], X [y_hc == 0, 1], s = 100, c = 'red', label = 'Cluster 1') < br /> plt.scatter (X [y_hc == 1, 0], X [y_hc == 1, 1], s = 100, c = 'blue', label = 'Cluster 2')
plt. scatter (X [y_hc == 2, 0], X [y_hc == 2, 1], s = 100, c = 'green', label = 'Cluster 3')
plt.scatter (X [y_hc == 3, 0], X [y_hc == 3, 1], s = 100, c = 'cyan', label = 'Cluster 4')
plt.scatter (X [y_hc == 4, 0 ], X [y_hc == 4, 1], s = 100, c = 'magenta', label = 'Cluster 5')
plt.title ('Clusters of customers')
plt.xlabel ('Годовой доход (тыс. $)')
plt.ylabel ('Оценка расходов (1–100)')
plt.legend ()
plt.show ()
***************************************
Кластеризация K-средних зависит от WCS (в пределах кластера suqares). Аналогичным образом, от чего зависит иерархическая кластеризация?
В пределах кластерной дисперсии
*****************************************
Какая кластеризация лучше работает для больших наборов данных, иерархическая или K-средние?
К-средние
****************************************
Что можно использовать для определения идеального количества кластеров в иерархической кластеризации?
Дендограммы
****************************************
Преимущества и недостатки кластеризации K-средних и иерархической кластеризации.
Кластеризация K-средних
Преимущества ::
›Легко понять
› Легко адаптируется
›Эффективно и производительно
› Хорошо работает на обоих малые и большие наборы данных
Недостатки ::
›Необходимость выбора количества кластеров
Иерархическая кластеризация
Преимущества: :
›Оптимальное количество кластеров можно получить из самой модели.
› Дендограммы помогают нам в визуализации, что практично и легко для понимания
Недостатки ::
›Не подходит для больших наборов данных
*****************************************
Предыдущая :: Наука о данных (Python) :: Кластеризация K-средних