Python机器学习——聚类的有效性指标

聚类有效性指标(Cluster Validity Index,CVI)用于度量聚类的效果。很显然,希望彼此相似的样本在一个簇,彼此不相似的样本尽量在不同的簇。也就是说:同一簇的样本彼此之间相似,不同簇之间的样本尽可能不同。

  聚类的性能指标分为两类:

  • 外部指标:该指标由聚类结果和某个参考模型进行比较而获得;
  • 内部指标:该指标由本身的聚类结果而得到,不利用任何参考模型;

 

外部指标


  给定数据集D=x⃗ 1,x⃗ 2,...,x⃗ ND=x→1,x→2,...,x→N。假设某个参考模型给出的簇划分为C∗C∗={C∗1C1∗,C∗2C2∗,…,C∗k′′Ck"∗},其簇标记向量为λ⃗ ∗λ→∗。若聚类算法给出的簇划分为C=C={C1,C2,...,CKC1,C2,...,CK},其簇标记向量为λ⃗ λ→。定义: 

a=|SS|,SS=[(x⃗ i,x⃗ j)|λi=λj,λ∗i=λ∗j,i<j]a=|SS|,SS=[(x→i,x→j)|λi=λj,λi∗=λj∗,i<j]

b=|SD|,SD=[(x⃗ i,x⃗ j)|λi=λj,λ∗i≠λ∗j,i<j]b=|SD|,SD=[(x→i,x→j)|λi=λj,λi∗≠λj∗,i<j]

c=|DS|,DS=[(x⃗ i,x⃗ j)|λi≠λj,λ∗i=λ∗j,i<j]c=|DS|,DS=[(x→i,x→j)|λi≠λj,λi∗=λj∗,i<j]

d=|DD|,DD=[(x⃗ i,x⃗ j)|λi≠λj,λ∗i≠λ∗j,i<j]d=|DD|,DD=[(x→i,x→j)|λi≠λj,λi∗≠λj∗,i<j]

  其中,|.|表示集合元素的个数,各集合的意义如下:

 

  • SSSS:包含了同时隶属于CC和C∗C∗的样本对;
  • SDSD:包含了隶属于CC,但是不隶属于C∗C∗的样本对;
  • DSDS:包含了不隶属于CC,但是隶属于C∗C∗的样本对;
  • DDDD:包含了既不隶属于CC,又不隶属于C∗C∗的样本对;

  由于每个样本对仅属于一个集合,因此有:

a+b+c+d=N(N−1)2a+b+c+d=N(N−1)2

  使用上述定义式,可以有下面这些外部指标:

 

  • Jaccard系数(Jaccard Cofficient,JC):

    JC=aa+b+cJC=aa+b+c

    它刻画了所有属于同一类的样本对(要么在CC中属于同一类,要么在C∗C∗中属于同一类),同时在C,C∗C,C∗中属于同一类的样本量的比值。

     

  • FM指数(Fowlkes and Mallows Index,FMI):

    FMI=aa+b⋅aa+c−−−−−−−−−−−√FMI=aa+b⋅aa+c

    它刻画的是:在CC中属于同一类的样本对中,同时属于C∗C∗的样本对的比例为p1p1,在C∗C∗中属于同一类的样本对中,同时属于CC的样本对的比例为p2p2,FMI就是p1p1和p2p2的几何平均。

     

  • Rand指数(Rand Index,RI)

    RI=2(a+d)N(N−1)RI=2(a+d)N(N−1)

    它刻画的是同时隶属C,C∗C,C∗的样本对与同时不隶属于C,C∗C,C∗的样本对之和占所有样本对的比例。
  • ARI指数(Adjusted Rand Index,ARI):

    ARI=RI−E[RI]max(RI)−E[RI]ARI=RI−E[RI]max(RI)−E[RI]

    使用RI时有个问题,就是对于随机聚类,RI不保证接近0(可能还很大)。而ARI指数就可以利用随机聚类情况下的RIE[RI]来解决这个问题.

  这些外部指标性能度量的结果都在[0,1]之间,这些值越大,说明聚类的性能越好

 

内部指标


  给定数据集D=D={x⃗ 1,x⃗ 1,...,x⃗ Nx→1,x→1,...,x→N}。若聚类给出的簇划分为C=C={C1,C2,...,CKC1,C2,...,CK},定义

avg(Ck)=2|Ck|(|Ck−1|)∑x⃗ i,x⃗ j∈Ck,i≠jdistance(x⃗ i,x⃗ j),k=1,2,...,Kavg(Ck)=2|Ck|(|Ck−1|)∑x→i,x→j∈Ck,i≠jdistance(x→i,x→j),k=1,2,...,K

diam(Ck)=maxx⃗ i,x⃗ j∈Ck,i≠jdistance(x⃗ i,x⃗ j),k=1,2,...,Kdiam(Ck)=maxx→i,x→j∈Ck,i≠jdistance(x→i,x→j),k=1,2,...,K

dmin(Ck,Cl)=minx⃗ i∈Ck,x⃗ j∈Cldistance(x⃗ i,x⃗ j),k=1,2,...,K;k≠ldmin(Ck,Cl)=minx→i∈Ck,x→j∈Cldistance(x→i,x→j),k=1,2,...,K;k≠l

dcen(Ck,Cl)=distance(μ⃗ k,μ⃗ l),k=1,2,...,K;k≠ldcen(Ck,Cl)=distance(μ→k,μ→l),k=1,2,...,K;k≠l

 

  其中,distance(x⃗ i,x⃗ j)distance(x→i,x→j)表示两点x⃗ i,x⃗ jx→i,x→j之间的距离;μ⃗ kμ→k表示簇CkCk的中心点,μ⃗ lμ→l表示簇ClCl的中心点;distance(μ⃗ k,μ⃗ l)distance(μ→k,μ→l)表示簇Ck,ClCk,Cl的中心点之间的距离。上述定义的意义如下:

  • avg(Ck)avg(Ck):簇CkCk中每对样本之间的平均距离;
  • diam(Ck)diam(Ck):簇CkCk中距离最远的两个点的距离;
  • dmin(Ck,Cl)dmin(Ck,Cl):簇C)k,ClC)k,Cl之间最近的距离;
  • dcen(Ck,Cl)dcen(Ck,Cl):簇Ck,ClCk,Cl中心点之间的距离;

  使用上述定义式,可有以下的内部指标。

  • DB指数(Davies-Bouldin Index ,DBI):

    DBI=1K∑k=1Kmaxk≠l(avg(Ck)+avg(Cl)dcen(Ck,Cl))DBI=1K∑k=1Kmaxk≠l(avg(Ck)+avg(Cl)dcen(Ck,Cl))

    它刻画的是:给定两个簇,每个簇样本之间平均值之和比上两个簇的中心点之间的距离作为度量。然后考察该度量对所有簇的平均值。显然DBIDBI越小越好。如果每个簇样本之间的平均值越小(即簇内样本距离都很近),则DBIDBI越小;如果簇间中心点的距离越大(即簇样本距离互相都很远),则DBIDBI越小。
  • Dunn指数(Dunn Index,DI):

    DI=mink≠ldmin(Ck,Cl)maxidiam(Ci)DI=mink≠ldmin(Ck,Cl)maxidiam(Ci)

    它刻画的是任意两个簇之间最近的距离的最小值,除以任意一个簇内距离最远的两个点的距离的最大值。显然DIDI越大越好。如果任意两个簇之间最近的距离的最小值越大(即簇间样本距离相互都很远),则DIDI越大;如果任意一个簇内距离最远的两个点的距离的最大值越小(即簇内样本距离都很近),则DIDI越大。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值