概念
在层次聚类中,聚类结果可以以树状结构表示,通常称为树状图(Dendrogram)。树状图展示了数据点如何被合并或分裂以形成聚类的层次结构。通过观察树状图,可以更直观地理解数据点之间的相似性和关系。
在比较树状图时,主要关注以下几个方面:
高度和距离:树状图中的垂直轴表示合并或分裂的距离或相似度。较低的连接高度表示较近的数据点或聚类,而较高的连接高度表示较远的数据点或聚类。
切割点:通过水平线在树状图上切割,可以将聚类结果截断为特定数量的聚类。不同高度处的切割点将产生不同数量的聚类。
紧密度和分离度:在树状图中,紧密的聚类会产生更短的连接,而分离的聚类会产生较长的连接。根据树状图的形态,可以判断哪些聚类紧密度较高,哪些分离度较高。
层次结构:树状图的深度表示数据点被合并或分裂的次数。较浅的分支表示较高层次的合并或分裂,而较深的分支表示较低层次的合并或分裂。
特定模式:树状图中的一些模式可能会暗示数据的特定结构或关系。例如,长时间期内连接较长的情况可能表示数据点之间的相似度较低。
代码实现
import numpy as np
from scipy.cluster.hierarchy import linkage, dendrogram
import matplotlib.pyplot as plt
# 创建一个示例数据集
X = np.array([[1, 2], [2.5, 3], [3, 4], [6, 8], [7, 9]])
# 计算连接矩阵
Z = linkage(X, method='ward')
# 绘制树状图
plt.figure(figsize=(10, 5))
dendrogram(Z)
plt.title('Dendrogram')
plt.xlabel('Data Points')
plt.ylabel('Distance')
plt.show()