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

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

Вот пошаговое объяснение алгоритма агломерационной кластеризации:

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

Вот фрагмент кода Python для реализации агломерационной кластеризации с использованием библиотеки Scikit-learn:

# Import necessary libraries
from sklearn.cluster import AgglomerativeClustering
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt

# Generate random data points
X, y = make_blobs(n_samples=100, centers=3, n_features=2, random_state=42)

# Create an AgglomerativeClustering object
agg = AgglomerativeClustering(n_clusters=3)

# Fit the AgglomerativeClustering model to the data
agg.fit(X)

# Get the cluster labels
labels = agg.labels_

# Plot the data points and clusters
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.show()

Выход

В этом фрагменте кода мы сначала генерируем случайные точки данных, используя функцию make_blobs из Scikit-learn. Затем мы создаем объект AgglomerativeClustering с 3 кластерами и подгоняем модель к данным. Мы получаем метки кластера, используя атрибут labels_ объекта AgglomerativeClustering. Наконец, мы наносим точки данных и кластеры, используя функцию scatter из Matplotlib.

Параметр n_clusters в объекте AgglomerativeClustering указывает количество формируемых кластеров. Метод fit объекта AgglomerativeClustering подгоняет модель к данным и возвращает метки кластеров, назначенные каждой точке данных.

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

Оставайтесь с нами, чтобы узнать больше!

Я всегда рад общаться со своими подписчиками и читателями в LinkedIn. Если у вас есть какие-либо вопросы или вы просто хотите поздороваться, пожалуйста, не стесняйтесь обращаться к нам.

https://www.linkedin.com/in/sharmasaravanan/

Приятного обучения!

Прощай, мне нравится!! 🤗🤗