📅  最后修改于: 2023-12-03 15:39:58.983000             🧑  作者: Mango
在数据挖掘领域中,层次聚类是一种常见的聚类方法。层次聚类可以将数据集中的元素按照一个树形结构进行组织。这个树形结构以每个元素为叶子节点,并根据它们之间的相似度关系,层层向上组织成更高层次的节点,直到最后形成一个根节点。
层次聚类一般分为两种方法:聚合法(Agglomerative)和分裂法(Divisive)。聚合法是一种自下而上的聚类方法,先将每个样本看做一个簇,然后将相似度最大的两个簇合并,得到一个大的簇。分裂法则是一种自上而下的聚类方法,先将整个数据集看做一个簇,然后递归地将簇分裂成更小的簇。
以聚合法为例,层次聚类的算法步骤如下:
以下是Python语言实现层次聚类的示例代码片段:
# 导入scipy库
from scipy.cluster.hierarchy import dendrogram, linkage
from matplotlib import pyplot as plt
import numpy as np
# 初始化数据集矩阵
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, 'ward')
# 可视化聚类结果
plt.figure(figsize=(10, 7))
plt.title("层次聚类图")
dendrogram(Z)
plt.show()
层次聚类是一种很好的聚类方法,具有可解释性好、聚类结果可视化、可处理噪声数据等优势。但是,由于聚合法在合并过程中对于异常值较为敏感,对于大样本数据集的处理也较为困难,因此在应用时需要注意选择合适的聚类算法以及调整算法中的参数。