轮廓系数先平均哪一层:五个点算出两种总分,单例簇也不能记满分
用轮廓系数挑聚类数量时,很容易把一句“簇内近、簇间远”实现成另一套指标。有人用最近一个外部点,有人用簇中心,还有人先给每个簇算平均再平均一次。这些数值都可能看起来合理,却不再是同一种轮廓系数。用五个一维点逐项计算,能清楚看见平均发生在哪一层。
AI生成的概念示意图:高亮点分别连接自己的簇和另一个簇,旁边独立圆点提示单例边界;岛屿、线长和位置并非正文坐标图。
先明确两个平均距离
数据为0、2、3、10、11,使用普通一维欧氏距离,即两数之差的绝对值。当前分组A={0,2,3},B={10,11}。对一个非单例点i,a是它到同簇其他点的平均距离,不包括它自己;对每个其他簇分别算平均距离,再取最小者为b。
单点轮廓系数定义为s=(b-a)/max(a,b)。a比b小很多时,分数接近1;a与b接近时,分数接近0;如果点平均而言离另一个簇更近,则可能出现负分。它比较的是相对距离结构,没有使用真实类别标签。
先算点3。它到同簇的0和2距离分别为3与1,所以a=(3+1)/2=2。到另一簇的10和11距离分别为7与8,所以b=(7+8)/2=7.5。于是s=(7.5-2)/7.5=11/15,约0.733333。
最近的簇,不是最近的一个点
如果把点3到最近外部点10的距离7直接当成b,就会得到(7-2)/7=5/7,约0.714286。这个数值并非舍入误差,它改变了簇间距离的定义。其他簇有很多点时,一个孤立靠近的点与整簇平均接近,更不能混为一谈。
簇内平均也有类似陷阱。若把点3到自身的零距离一起平均,就会用(3+1+0)/3=4/3作为a,分数被人为抬高。距离矩阵对角线为零,是为了正确表达自己到自己,并不意味着计算簇内均值时该把自己放进分母。
多于两个簇时,b需要先对每个外部簇独立求均值,再在这些均值之间取最小。把所有外部点混在一起求一个平均,会让大簇的点数决定权重,忽略“最相邻的另一个簇”这个定义。
把剩下四个点也算完
点0的a为(2+3)/2=2.5,b为(10+11)/2=10.5,得到s=16/21,约0.761905。点2的a为(2+1)/2=1.5,b为(8+9)/2=8.5,得到s=14/17,约0.823529。
点10只剩一个同簇伙伴11,所以a=1。它到A的距离为10、8、7,平均b=25/3,得到s=22/25=0.88。点11同样a=1,外部平均为(11+9+8)/3=28/3,得到s=25/28,约0.892857。
五个单点分数按原顺序为0.761905、0.823529、0.733333、0.880000、0.892857。保留分数的原始精度再取算术平均,整体轮廓系数约为0.818325。中间显示六位小数只为阅读,计算时没有先做舍入。
簇平均再平均,权重已经变了
A簇三个点的平均分约为0.772923,B簇两个点的平均分约为0.886429。若把这两个簇平均值直接平均,会得到约0.829676,高于逐样本平均的0.818325。两者的差别来自权重:后者每个样本一票,前者每个簇一票。
按簇均权并非不能用于某个明确目标,但应另行命名和报告。若想通过簇均值重建标准样本平均,就要按簇大小3和2加权,再除以总样本数5。数据极不均衡时,两种汇总方式的差距可能更大,不能把它归因于两个库精度不同。
这也说明全局均值需要配合逐簇分布。一大批高分样本可以掩盖少数负分点,单个总数无法指出哪些记录更像邻簇。实际诊断应保留样本ID、当前簇、a、b、最邻近的其他簇与s,方便回到具体记录核对。
把10与11拆成两个单例簇
现在改成A={0,2,3}、B={10}、C={11}。对A的各点,最近外部簇都是B,所以b分别为10、8、7;对应s为0.75、0.8125、5/7。10和11没有任何同簇其他点,簇内平均距离本来没有普通定义。
标准轮廓分析的常用约定把单例簇点的s设为0,而不是先把a填成0再套公式拿到1。后一种实现会无条件奖励把记录拆成单独一簇。本例按零分约定,五点平均约为0.455357,明显低于原来的两簇结果。
本地scikit-learn 1.8.0与逐点实现得到了相同结果。它要求簇数量至少为2且小于样本数量;全部样本在同一簇或每点各成一簇,不属于可直接计算整体轮廓系数的普通情形。测试时应检查异常或返回约定,不要偷偷把无定义情形换成完美得分。
统一放大可以抵消,平方距离不会
把全部坐标乘100,a和b同时乘100,比例中的因子相消,所以每个分数保持不变。这个性质适合做回归测试,但前提是对所有距离施加同一正比例缩放。只放大某一个特征轴,会改变多维空间里的相对距离,不能保证不变。
若把距离改为平方欧氏距离,点3的a变成(9+1)/2=5,b变成(49+64)/2=56.5,于是s约为0.911504,已经远高于原来的0.733333。平方是非线性变换,即使点的近远次序未变,先求平均再算比例的结果仍会改变。
因此跨模型比较时需要固定表示、距离函数、样本集合与抽样方案。先把数据投影成二维再算分数,评估的是投影后的几何,不自动等价于原始嵌入的结构。一个漂亮二维图与一个高轮廓分,也不能相互替代成为类别真实存在的证明。
怎样把指标用在具体选择上
可以让AI先输出本例五行中间量,再对照库函数,最后增加单例、重复坐标和多簇样本。如果使用预计算距离矩阵,应核对对称性、非负性与零对角线,并确认矩阵顺序与标签顺序完全一致。这比直接拿一个大数据总分找差异更有效。
轮廓系数偏好在所选距离下紧密且分离的组,但业务上合理的簇可能呈细长、弯曲或不同密度形状。用它比较候选聚类数量时,应同时检查稳定性、代表样本和业务可解释性。本文只能帮助算对这一指标,不能把五点例子的最佳分组直接升级为所有任务的选择规则。
如果通过随机抽样降低成对距离的计算成本,需要写清抽样到底用于选取被评价的点,还是也改变了每个簇的参照成员。两种流程可能得到不同的a和b。小簇在抽样后变成单例甚至消失时,评分条件也会变化,因此比较不同参数时最好复用同一套可追踪抽样协议。
高分并不说明样本数量已经充分。本文只有五点,任何一个点移动都可能明显改变结果。真实选择还应查看重新采样或不同训练批次下的稳定性,避免把一次偶然清晰的几何布局当成持久规律。
资料核对日期:2026年10月3日。本文为原创教学样例,已用独立枚举或分数运算与本地scikit-learn 1.8.0交叉核验,未进行真实模型训练或业务效果测试。
参考资料
scikit-learn:silhouette_samples
Rousseeuw:Silhouettes,第2节单点轮廓定义


