逐步聚类法学习笔记
在聚类分析中,逐步聚类法(Hierarchical Clustering)是一种基于距离度量的聚类方法。其主要思想是将样本逐步合并成越来越大的簇,直到所有样本都属于同一个簇为止。
本篇博客将介绍逐步聚类法的基本概念、算法流程以及Python实现。
基本概念
- 簇:由若干个相似对象组成的集合。
- 距离度量:用于衡量不同对象间的相似度或距离。
- 聚类距离:用于衡量两个簇之间的距离或相似度。
- 聚类图:表示聚类过程中各个簇之间的合并过程。
算法流程
逐步聚类法的算法流程如下:
- 将每个对象看作一个簇。
- 计算两个最近的簇之间的距离,并将它们合并成一个新的簇。
- 重复步骤2,直到所有对象都属于同一个簇为止。
在逐步聚类法中,有两种常用的距离度量方式:欧氏距离和曼哈顿距离。在计算两个簇之间的距离时,有三种常用的聚类距离方式:单链接聚类、完全链接聚类和平均链接聚类。
Python实现
下面是使用Python进行逐步聚类法的示例代码:
import numpy as np
from scipy.cluster.hierarchy import dendrogram, linkage
import matplotlib.pyplot as plt
# 样本数据
X = np.array([[5,3], [10,15], [15,12], [24,10], [30,30], [85,70], [71,80], [60,78], [70,55], [80,91]])
# 逐步聚类
Z = linkage(X, method='complete', metric='euclidean')
# 绘制聚类图
plt.figure(figsize=(10, 7))
plt.title("Hierarchical Clustering Dendrogram")
plt.xlabel("Index")
plt.ylabel("Distance")
dendrogram(Z)
plt.show()
其中, X X X表示样本数据集,在本例中为二维空间中的10个点。通过运行代码,可以得到逐步聚类法的聚类图,其中横轴表示样本点的索引,纵轴表示样本点之间的距离。
总结
本篇博客介绍了逐步聚类法的基本概念、算法流程以及Python实现。希望可以对读者在进行聚类分析时有所帮助。