You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python的scikit-learn实现无标签数据层次聚类及结果解读

层次聚类树状图解读与参数验证指南

一、树状图(Dendrogram)解读要点

  • 垂直轴高度:代表两类合并时的距离/相似度,高度越高,合并的两类差异越大;高度越低,两类相似度越高。
  • 水平分支与聚类数量:从底部样本节点往上看,找树状图中最长的无垂直分支的水平空白段,画一条水平线穿过这段,水平线与多少条垂直分支相交,就对应合适的聚类数。
  • 样本归属:底部的每个小节点对应单个样本,往上追溯,最终汇聚到同一分支的样本属于同一个聚类簇。

二、层次聚类参数验证方法

层次聚类的核心参数是距离度量和链接方法,可通过以下方式验证合理性:

1. 距离度量选择

  • 连续型数值数据(如传感器数据、用户行为特征):优先用euclidean(欧氏距离);数据含异常值时,换manhattan(曼哈顿距离)更稳健;高维稀疏数据(如文本向量)用cosine(余弦相似度)。
  • 验证方式:用不同距离度量分别跑聚类,对比树状图的簇结构——如果某一种距离下的簇符合你对数据的领域认知(比如用户分群匹配消费习惯),即为更合适的选择。

2. 链接方法选择

  • ward:最小化簇内方差,适合簇大小相近、形状紧凑的数据集,是通用默认选项;
  • single:最近邻链接,易形成链式簇,适合细长分布的数据;
  • complete:最远邻链接,生成的簇更紧凑,但对异常值敏感;
  • average:平均距离链接,平衡了single和complete的特性。
  • 验证方式:对比不同链接方法的树状图,看哪种得到的簇结构更符合数据逻辑。比如用户画像聚类中,ward生成的簇应该是特征差异均匀的群体,这就是合理的结果。

三、无标签数据集的聚类效果评估

无标签场景下,用以下无监督指标评估聚类质量:

  • 轮廓系数(Silhouette Score):范围[-1,1],越接近1说明簇内样本相似度越高、簇间差异越大,聚类效果越好。计算代码:
    from sklearn.metrics import silhouette_score
    score = silhouette_score(标准化后的数据集, 聚类标签)
    
  • Calinski-Harabasz指数:比值越大,代表簇内方差越小、簇间方差越大,聚类效果越优。计算代码:
    from sklearn.metrics import calinski_harabasz_score
    score = calinski_harabasz_score(标准化后的数据集, 聚类标签)
    
  • 肘部法则:绘制簇数量与簇内总方差的曲线,找到曲线的“肘部”点(簇数量增加到该点后,方差下降速度显著放缓),该点对应的簇数即为最优选择。

内容的提问来源于stack exchange,提问作者Damaris Aylín Lara Bustillos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 05:43:11