层次聚类
什么是层次聚类?
- 一种聚类分析方法,它通过创建一个由层次化的簇组成的树状图(称为树状图或 dendrogram)来组织数据。与 K-means 等平面(非层次)聚类算法不同,层次聚类不需要预先指定簇的数量
- 层次聚类有两种基本策略:凝聚(agglomerative)和分裂(divisive)。凝聚层次聚类从将每个数据点视为独立簇开始,然后逐步合并最接近的簇,直到达到预定的簇数量或所有点归为一个簇。分裂层次聚类则相反,它从包含所有数据点的单一簇开始,然后逐渐分裂成更小的簇
- 使用自下而上的方法执行层次聚类:每个观察都从其自己的聚类开始,然后将聚类连续合并在一起
1
2
3
4
5
6
7
8
9>>> from sklearn.cluster import AgglomerativeClustering
>>> import numpy as np
>>> X = np.array([[1, 2], [1, 4], [1, 0],
... [4, 2], [4, 4], [4, 0]])
>>> clustering = AgglomerativeClustering().fit(X)
>>> clustering
AgglomerativeClustering()
>>> clustering.labels_
array([1, 1, 1, 0, 0, 0])