机器学习:聚类算法的模型评估指标:轮廓系数

聚类算法的评估不同于分类和回归,没有直接的正确答案。轮廓系数是衡量聚类效果的常用指标,它同时考虑了簇内差异和簇间差异。在K-Means中,轮廓系数值越接近1表示聚类效果越好,为负值则表示不合适。该系数不受特征数量和数据维度影响,但可能在非凸形簇上过高评价聚类质量。
摘要由CSDN通过智能技术生成

不同于分类模型和回归,聚类算法的模型评估不是一件简单的事。
在分类中,有直接结果(标签)的输出,并且分类的结果有正误之分,所以使用预测的准确度,混淆矩阵,ROC曲线等指标来进行评估。但无论如何评估,都是在”模型找到正确答案“的能力。而回归中,由于要拟合数据,我们有MSE均方误差,有损失函数来衡量模型的拟合程度。但这些衡量指标都不适用于聚类。

如何衡量聚类算法的效果

聚类模型的结果不是某种标签输出,并且聚类的结果是不确定的,其优劣由业务需求或者算法需求来决定,并且没有永远的正确答案。如何衡量聚类的效果呢?
K-Means的目标是确保“簇内差异小,簇外差异大”,可以通过衡量簇内差异来衡量聚类的效果。
SSE是用距离来衡量簇内差异的指标,因此,是否可以用SSE来作为聚类的衡量指标呢?SSE越小模型越好嘛。
可以,但是这个指标的缺点和局限太大。
首先,它不是有界的。我们只知道,SSE越小越好,是0最好,但不知道,一个较小的SSE究竟有没有达到模型的极限,能否继续提高。
第二,它的计算太容易受到特征数目的影响,数据维度很大的时候,SSE的计算量会陷入维度诅咒之中,计算量会爆炸,不适合用来一次次评估模型。
第三,它会受到超参数K的影响,随着K越大,SSE注定会越来越小,但这并不代表模型的效果越来越好了。
第四,SSE对数据的分布有假设,它假设数据满足凸分布(即数据在二维平面图像上看起来是一个凸函数的样子),并且它假设数据是各向同性的(isotropic),即是说数据的属性在不同方向上代表着相同的含义。但是现实中的数据往往不是这样。所以使用Inertia作为评估指标,会让聚类算法在一些细长簇,环形簇,或者不规则形状的流形时表现不佳:
在这里插入图片描述
那我们可以使用什么指标呢?聚类没有标签,即不知道真实答案的预测算法,我们必须完全依赖评价簇内的稠密程度(簇内差异小)和簇间的离散程度(簇外差异大)来评估聚类的效果。其中,轮廓系数是最常用的聚类算法的评价指标。它是对每个样本来定义的,它能够同时衡量:
1)样本与其自身所在的簇中的其他样本的相似度a,等于样本与同一簇中所有其他点之间的平均距离;
2)样本与其他簇中的样本的相似度b,等于样本与下一个最近的簇中的所有点之间的平均距离;
根据聚类的要求 ”簇内差异小,簇外差异大“,我们希望b永远大于a,并且大得越多越好。
单个样本的轮廓系数计算为:
s = b − a m

  • 10
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值