聚类个数的选择:轮廓系数(计算公式和原理)

轮廓系数是评估聚类效果的指标,取值范围为[-1,1],越接近1表示聚类效果越好。

在聚类时可用于聚类个数的选择。通过遍历簇数,计算对应轮廓系数,选择轮廓系数最大时对应的聚类模型。

  • Kmeans聚类:对于初始的中心个数进行遍历,寻找使得轮廓系数最大的聚类模型。
  • 层次聚类:每一层合并时计算一次轮廓系数,直到所有样本合并为一簇,选择轮廓系数最大时对应的簇数对聚类结果进行剪枝。

轮廓系数计算方法

  • 单一样本 i i i的轮廓系数: 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)

    其中
    a ( i ) a(i) a(i): i i i所属簇内其它样本的平均距离,若簇内仅 i i i一个样本,则令 s ( i ) = 0 s(i)=0 s(i)=0
    i ∈ A , a ( i ) = a v e r a g e j ∈ A , j ≠ i ( d i s t ( i , j ) ) i \in A,a(i)=average_{j \in A,j \neq i}(dist(i,j)) iA,a(i)=averagejA,j=i(dist(i,j))

    b ( i ) b(i) b(i): i i i与其它簇的样本平均距离的最小值
    i ∈ A , C ≠ A , d i s t ( i , C ) = a v e r a g e j ∈ C ( d i s t ( i , j ) ) i \in A,C \neq A,dist(i,C)=average_{j \in C}(dist(i,j)) iA,C=A,dist(i,C)=averagejC(dist(i,j))
    b ( i ) = m i n C ≠ A d i s t ( i , C ) b(i)=min_{C \neq A} dist(i,C) b(i)=minC=Adist(i,C)

  • 聚类总体的轮廓系数:所有样本轮廓系数的平均值
    S = 1 N ∑ i = 1 N s ( i ) S=\frac{1}{N}\sum_{i=1}^Ns(i) S=N1i=1Ns(i)

  • 6
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值