Sklearn 机器学习 数据聚类 层次聚类的两个重要属性
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖
本博客的精华专栏:
【自动化测试】 【测试经验】 【人工智能】 【Python】
Sklearn 机器学习:数据聚类中层次聚类的两个重要属性详解
层次聚类(Hierarchical Clustering)是一种逐层构建树状聚类结构的无监督学习方法,常见于图像分析、市场细分、基因数据处理等场景。相比 KMeans 这类需要预设簇数量的方法,层次聚类能更自然地反映数据间的嵌套与层次关系。
本文将详解 Sklearn 中 Agglomerative Clustering(凝聚式层次聚类) 的两个核心控制属性:
n_clusters
distance_threshold
它们不可同时设定,但各有适用场景。
🔍 一、n_clusters:指定聚类个数
含义
n_clusters
表示我们希望最终将数据聚为多少个簇(cluster),是控制聚类粒度的核心参数。
from sklearn.cluster import AgglomerativeClusteringmodel = AgglomerativeClustering(n_clusters=3)
这段代码的含义是:算法从每个样本单独作为一个簇开始,每次合并两个最近的簇,直到只剩下 3 个簇为止。
📌 术语补充说明
此过程可理解为:在构建的层次聚类树中,从下往上数,保留到聚为 n_clusters
个簇的那一层,停止后续合并过程,从而实现“截断”树结构。
使用场景
- 已知聚类目标数量(如 3 类客户、4 个品类)
- 聚类结果需匹配已有标签或业务分组
🧩 二、distance_threshold:指定距离阈值
含义
distance_threshold
用于控制聚类停止的条件,定义了两个簇之间的最小“距离界限”。
model = AgglomerativeClustering(distance_threshold=5.0, n_clusters=None)
该参数表示:算法每次合并距离最近的两个簇,直到所有簇之间的最小距离超过该阈值,聚