Этот пост предназначен для того, чтобы быстро освежить (таким образом, предполагается, что вы уже знакомы с материалом) по «Иерархической кластеризации». Вы также можете рассматривать это как 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-средних

Если вам понравилась эта статья, нажмите значок ❤ ниже