聚类评价指标(轮廓系数 Silhouette coefficient)

本文深入探讨了聚类算法结果的评价方法,重点介绍了轮廓系数(Silhouette)这一内部有效性指标。轮廓系数衡量了样本与其所在聚类的紧密度及与其他聚类的分离度,其值范围在-1到1之间,值越大表示聚类效果越好。文章详细解释了轮廓系数的计算过程,并通过实例展示了如何使用sklearn包进行轮廓系数的计算。

聚类评价指标

最近在做聚类的项目,聚类得到结果后我们需要知道聚类的好坏,用哪个算法效果比较好。肯定要选择那个最好评价的算法。今天我们就不谈算法只谈算法结果的评价。
我也从网上看了很多的别人写的东西,总之是五花八门的。那下面我们言归正传。
聚类算法是机器学习算法中的一种无监督算法。那么在生活中我们大多数做项目的话其实数据集都是为标定的。我看到许多人有写到通过有label的样本,计算它的混淆矩阵。这不乏是一种办法,那么今天说的方法其实是一种内部方法,就是说通过聚类后的结果label来计算的一种评价指标。
内部有效性指标呢设计的时候从三个方面来看聚类的有效性:

  1. 度量各个聚类的分离程度,理论上,类分离程度越大,结果越好。
  2. 度量每个类内的内在紧致性,紧致性越大,聚类效果越好。
  3. 度量各个类表示的复杂度,在可行的类表示中选择简单的。

Silhouette

首先,我们先看评价指标的其中一个指标 :轮廓系数。
Silhouette 遵循类紧致性。Silhouette值用来描述一个目标对于目标所在簇与其他簇之间的相似性。其范围是从-1~+1,这个值越大表明目标与自己所在簇之间的匹配关系度越高,与其他簇的匹配关系度越低。如果这个值越高,那么聚类结果越好,如果是很小或是负值,那么可能是分簇太多或是太少造成的。
Silhouette是通过一些距离矩阵来计算的。

Silhouette的定义

假设数据集我们已经通过聚类算法分成了很多类。对于目标iiii∈Cii\in C_iiCi,得到
a(i)=1∣Ci−1∣∑j∈Ci,i≠jd(i,j)a(i) = \frac{1}{\left | C_i -1 \right|}\sum_{j\in C_i,i\neq j}d(i,j)a(i)=Ci11jCi,i=jd(i,j)表示i与同簇之间其他目标的平均距离。
这里的d(i,j)d(i,j)d(i,j)是目标i和j在簇CiC_i

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值