聚类算法4-模型评估(SSE、“肘”部法、SC系数和CH系数)

1 误差平方和(SSE)

误差平方和的值越小越好

在k-means中的应用:

公式各部分内容(k=2):

举例:
下图中数据-0.2, 0.4, -0.8, 1.3, -0.7, 均为真实值和预测值的差

总结:

  • SSE图最终的结果,对图松散度的衡量.(eg: SSE(左图)<SSE(右图))

  • SSE随着聚类迭代,其值会越来越小,直到最后趋于稳定:

  • 如果质心的初始值选择不好,SSE只会达到一个不怎么好的局部最优解.

2 “肘”方法 (Elbow method) — K值确定

下降率突然变缓时即认为是最佳的k值。

(1)对于n个点的数据集,迭代计算k from 1 to n,每次聚类完成后计算每个点到其所属的簇中心的距离的平方和

(2)平方和是会逐渐变小的,直到k==n时平方和为0,因为每个点都是它所在的簇中心本身。

(3)在这个平方和变化过程中,会出现一个拐点也即“肘”点,下降率突然变缓时即认为是最佳的k值

在决定什么时候停止训练时,肘形判据同样有效,数据通常有更多的噪音,在增加分类无法带来更多回报时,我们停止增加类别。

3 轮廓系数法(Silhouette Coefficient)

取值为[-1, 1],其值越大越好

结合了聚类的凝聚度(Cohesion)和分离度(Separation),用于评估聚类的效果:

目的:
内部距离最小化,外部距离最大化

案例:
下图是500个样本含有2个feature的数据分布情况,我们对它进行SC系数效果衡量:

n_clusters = 2The average silhouette_score is : 0.7049787496083262
n_clusters = 3 The average silhouette_score is : 0.5882004012129721
n_clusters = 4 The average silhouette_score is : 0.6505186632729437
n_clusters = 5 The average silhouette_score is : 0.56376469026194
n_clusters = 6 The average silhouette_score is : 0.4504666294372765

n_clusters 分别为 2,3,4,5,6时,SC系数如下,是介于[-1,1]之间的度量指标:
从平均SC系数结果来看,K取3,5,6是不好的,那么2和4呢?
k=2的情况:

k=4的情况:

结论:

  • n_clusters = 2时,第0簇的宽度远宽于第1簇;
  • n_clusters = 4时,所聚的簇宽度相差不大,因此选择K=4,作为最终聚类个数。

4 CH系数(Calinski-Harabasz Index)

分数s高则聚类效果越好

CH需要达到的目的:用尽量少的类别聚类尽量多的样本,同时获得较好的聚类效果。

  • tr为矩阵的迹, Bk为类别之间的协方差矩阵,Wk为类别内部数据的协方差矩阵;m为训练集样本数,k为类别数。
  • 类别内部数据的协方差越小越好,类别之间的协方差越大越好
posted @   Trouvaille_fighting  阅读(7133)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示

目录导航