什么是 轮廓系数(Silhouette Score)?

轮廓系数(Silhouette Score)是比较每个样本到本簇的平均距离与到最近其他簇的平均距离,用于评估聚类内部几何质量的指标。

快速了解

创建时间1987 年由 Peter J. Rousseeuw 提出
规范文档官方规范

工作原理

先查看逐样本与逐簇分布,再解释平均值

Rousseeuw 的原始论文把 Silhouette 设计为图形化诊断,而不只是一个标量。应检查每个簇的系数分布、宽度、负值尾部和最近竞争簇。全局均值很高时,小型扩散簇仍可能失败;对多次运行直接取均值也可能掩盖 Assignment 不稳定。

声明表示、距离和单例簇规则

特征缩放、Embedding 归一化,以及把欧氏距离替换为 Cosine 或预计算 Dissimilarity,都会改变分数。当前 scikit-learn 文档要求标签数量位于 2 到 n-1 之间,并支持显式距离函数。单例簇不存在簇内平均距离,常见实现会把该样本设为中性值 0,报告时必须说明。

把选择数据与确认数据分开

在同一数据上选择使轮廓系数最大的算法、特征管线或簇数,相当于针对该数据的几何结构优化。冻结选择后,应在留出数据或重采样上复算,报告不同随机种子的变化,并补充专家审查或下游效果。朴素两两距离计算可达到二次复杂度,因此采样近似也要固定设计并量化不确定性。

主要特点

  • 根据簇内紧致度与最近竞争簇分离度生成逐样本系数
  • 标准定义的取值范围为 -1 到 1
  • 要求至少两个簇且簇数小于样本数
  • 依赖特征表示、缩放方式和距离函数
  • 可通过轮廓图定位边界样本与疑似错误分配
  • 不能证明聚类稳定、语义正确或对下游任务有用

常见用途

  1. 在相同数据和表示上比较候选簇数
  2. 定位靠近竞争簇的边界样本
  3. 发现被全局平均掩盖的小型或扩散簇
  4. 检查不同随机种子和重采样下的聚类稳定性
  5. 辅助文档或向量聚类的人工审核

示例

loading...
Loading code...

常见问题

轮廓系数如何计算?

对每个样本分别计算它到本簇其他样本的平均距离 `a`,以及到最近其他簇的平均距离 `b`,再计算 `(b-a)/max(a,b)`。整体分数通常取样本均值,但还应检查逐簇分布和支持度。

轮廓系数为负数说明什么?

这表示在所选距离下,该样本平均而言更接近另一个簇。原因可能是分配错误、簇边界重叠、表示不合适,或真实结构本身是非凸形,不能直接把负值都当作标签错误。

轮廓系数能选出正确的簇数吗?

它可以在相同数据和几何定义下排序候选划分,但不能证明某个簇数在语义上正确。应把簇数视为模型选择,并使用重采样稳定性、领域审查和下游用途继续确认。

为什么特征缩放会改变轮廓系数?

轮廓系数完全建立在距离上。数值尺度较大的特征可能主导距离,归一化也会改变最近竞争簇。比较前必须冻结表示、缩放、缺失值策略和距离函数。

较高平均轮廓系数足以批准聚类上线吗?

不足。它只衡量一种几何下的紧致度与分离度。还应检查逐样本和逐簇结果、不同种子与样本的稳定性、离群点、稀有切片、专家判断,以及聚类是否改善预期下游任务。

相关术语

相关文章