В мире анализа данных и обучения без учителя иерархическая кластеризация — это мощный метод, который позволяет нам обнаруживать скрытые закономерности и структуры в наших данных. В этой статье блога мы углубимся в иерархическую кластеризацию с использованием языка программирования R. Мы рассмотрим различные методы, предоставим примеры кода и продемонстрируем, как визуализировать результаты, используя популярные методы построения графиков. Итак, начнем!
-
Подготовка данных.
Для начала нам нужен набор данных для работы. Предположим, у нас есть набор данных под названием «mydata» с необходимыми переменными. Загрузите набор данных в R, используя соответствующую функцию, напримерread.csv()илиread.table(). -
Вычисление расстояния.
Иерархическая кластеризация требует определенной степени несходства между точками данных. Общие метрики расстояния включают евклидово расстояние, манхэттенское расстояние и корреляцию Пирсона. Рассчитайте матрицу расстояний с помощью функцииdist()в R. -
Иерархическая кластеризация.
Выполняйте иерархическую кластеризацию с помощью функцииhclust(). Эта функция принимает матрицу расстояний в качестве входных данных и возвращает объект класса hclust, который представляет иерархическую структуру кластеризации. -
Визуализация дендрограммы.
Визуализируйте структуру кластеризации с помощью дендрограммы. Дендрограмма обеспечивает иерархическое представление кластеров. Используйте функциюplot(), чтобы создать график дендрограммы, и настройте его, используя такие параметры, какmain,xlabиylab..
Пример кода:
# Perform hierarchical clustering
hc <- hclust(dist_matrix)
# Plot the dendrogram
plot(hc, main = "Dendrogram of Hierarchical Clustering", xlab = "Data Points", ylab = "Distance")
- Визуализация тепловой карты.
Другой способ визуализации результатов иерархической кластеризации — использование тепловой карты. На тепловых картах точки данных имеют цветовую маркировку на основе их сходства, что упрощает идентификацию кластеров. Используйте функциюheatmap()в R, чтобы создать график тепловой карты.
Пример кода:
# Create a heatmap
heatmap(as.matrix(mydata), main = "Heatmap of Hierarchical Clustering", xlab = "Variables", ylab = "Data Points")
- Силуэтный график.
Силуэтный график — это графическое представление качества результатов кластеризации. Это помогает оценить компактность и разделение кластеров. Используйте функциюsilhouette()в R, чтобы вычислить и построить график силуэта.
Пример кода:
# Calculate silhouette values
sil <- silhouette(cutree(hc, k), dist_matrix)
# Plot the silhouette plot
plot(sil, main = "Silhouette Plot of Hierarchical Clustering")
- Определение количества кластеров:
Чтобы определить оптимальное количество кластеров, мы можем использовать концепцию «метода локтя» или путем изучения дендрограммы. Метод локтя включает в себя построение графика суммы квадратов внутри кластера (WCSS) в зависимости от количества кластеров и выбор точки перегиба в качестве оптимального числа кластеров.
Пример кода:
# Calculate within-cluster sum of squares
wss <- (nrow(mydata) - 1) * sum(apply(mydata, 2, var))
# Plot the elbow curve
plot(1:k, wss, type = "b", main = "Elbow Curve for Hierarchical Clustering", xlab = "Number of Clusters", ylab = "Within-Cluster Sum of Squares")
Иерархическая кластеризация — это универсальный и мощный метод выявления закономерностей в данных. В этой статье мы рассмотрели различные методы выполнения иерархической кластеризации в R, включая визуализацию дендрограмм, построение тепловых карт, силуэтный анализ и определение оптимального количества кластеров. Используя эти методы, вы можете получить ценную информацию из своих данных и принять обоснованные решения. Удачной кластеризации!