层次聚类(Hierarchical Clustering)是聚类算法的一族算法的总称,它通过连续合并或拆分聚类来构建嵌套聚类。这种聚类的层次结构就像树一样,树的根是收集所有样本的唯一簇,叶子是只有一个样本的簇。
上图中,树根聚类就是abcdef,叶子聚类就是每一个字母的节点。
在scikit-learn中,层次聚类可以通过AgglomerativeClustering对象来实现。这个算法使用自下而上的方法执行层次聚类:每次都从其自己的聚类开始,然后将聚类连续合并在一起。
使用鸢尾花数据集,只需要几行代码就通过AgglomerativeClustering完成层次聚类。
先导入NumPy,鸢尾花iris数据集,以及AgglomerativeClustering。
import numpy as np
from sklearn.datasets import load_iris
from sklearn.cluster import AgglomerativeClustering
下面就准备数据并进行聚类。
iris = load_iris()
X = iris.data # 准备聚类的数据(鸢尾花的花瓣和花萼长度特征)
# 创建AgglomerativeClustering对象
model = AgglomerativeClustering(distance_threshold=0,
linkage="ward",
n_cluste