轮廓系数(Silhouette Coefficient)是一种常用的评估聚类分析效果的指标
,它能够帮助我们确定数据点是否被正确地分配到了相应的簇
(cluster)中。轮廓系数同时考虑了簇内部的紧凑性和簇间的分离性
,因此是一个综合性的评价标准。
轮廓系数的计算公式:
S ( i ) = b ( i ) − a ( i ) max { a ( i ) , b ( i ) } S(i) = \frac{b(i) - a(i)}{\max\{a(i), b(i)\}} S(i)=max{a(i),b(i)}b(i)−a(i)
s ( i ) = { 1 − a ( i ) b ( i ) , a ( i ) < b ( i ) 0 , a ( i ) = b ( i ) b ( i ) a ( i ) − 1 , a ( i ) > b ( i ) s(i) = \begin{cases} 1-\frac{\mathrm{a(i)}}{\mathrm{b(i)}},& a(i)<b(i)\\ 0,& a(i)=b(i)\\ \frac{\mathrm{b(i)}}{\mathrm{a(i)}}-1,& a(i)>b(i) \end{cases} s(i)=⎩ ⎨ ⎧1−b(i)a(i),0,a(i)b(i)−1,a(i)<b(i)a(i)=b(i)a(i)>b(i)
其中:
-
S
(
i
)
S(i)
S(i) 是第
i
i
i 个数据点的
轮廓系数。
-
a
(
i
)
a(i)
a(i) 表示第
i
i
i 个
数据点与其所属簇中其他数据点的平均距离
,反映簇的紧凑性
(Cohesion)。这通常被称为“内聚度”。
-
b
(
i
)
b(i)
b(i) 表示第
i
i
i 个
数据点与非所属簇中最近簇的数据点的平均距离
,反映簇间的分离性
(Separation)。这通常被称为“分离度”。
详细解释:
-
a ( i ) a(i) a(i): 这是样本点 i i i
到同一簇中所有其他样本点的距离之和 除以 这些样本点的数量
。它衡量了点 i i i 在其簇内的“舒适度”,数值越小
表明 i i i 与簇内的其他点越接近,簇越紧凑
。 -
b ( i ) b(i) b(i): 这是样本点 i i i
到最近的其他簇中所有样本点的平均距离
。它衡量了点 i i i 与最邻近的其他簇的距离,数值越大表明 i i i 与其它簇中的点相距较远,簇间的分离度越高
。 -
max { a ( i ) , b ( i ) } \max\{a(i), b(i)\} max{a(i),b(i)}: 这是 a ( i ) a(i) a(i) 和 b ( i ) b(i) b(i) 中较大的值,作为分母确保轮廓系数的值域在 [-1, 1] 之间。当 b ( i ) > a ( i ) b(i) > a(i) b(i)>a(i),表示样本点更接近于自己的簇,轮廓系数倾向于
正数
;反之,如果 a ( i ) > b ( i ) a(i) > b(i) a(i)>b(i),则表示样本点可能被错误分类,轮廓系数倾向于负数
。
轮廓系数的取值范围和解释:
- 当轮廓系数接近 1 时,这意味着
b
(
i
)
b(i)
b(i) 远大于
a
(
i
)
a(i)
a(i),即数据点
i
i
i 在其所属
簇内紧密,与其他簇分离良好。
- 当轮廓系数接近 0 时,这意味着
a
(
i
)
a(i)
a(i) 接近于
b
(
i
)
b(i)
b(i),数据点
i
i
i 在簇边界,或
簇内点间距离与簇间距离相当。
- 当轮廓系数接近 -1 时,这意味着
a
(
i
)
a(i)
a(i) 远大于
b
(
i
)
b(i)
b(i),数据点
i
i
i
可能被错误地分配给了错误的簇。
为了评估整个聚类的效果,通常会计算所有数据点轮廓系数的平均值,这个平均值就作为整个聚类分析的轮廓系数
。较高的平均轮廓系数意味着聚类效果较好。