scikit-learn之聚类性能度量

本文详细介绍了多种聚类评估指标,包括兰德系数及其调整版本、基于互信息的度量、同质性、完整性、V-measure、Fowlkes-Mallows scores、轮廓系数和Calinski-Harabaz指数等,并探讨了它们各自的优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、调整兰德系数

sklearn.metrics.adjusted_rand_score

数学公式

Rand index(兰德系数): RI=a+bCnsamples2 R I = a + b C 2 n s a m p l e s
1、a:应该在一类,最后聚到一类的数量;
2、b:不应该在一类 ,最后聚类结果也没把他们聚在一起的数量;
3、数量是指配对,在数据集中任意选两个样本点就是一个配对;
4、RI 有一个缺点,就是惩罚力度不够,换句话说,大家普遍得分比较高,没什么区分度,于是有了 ARI;

Adjusted Rand index(调整兰德系数): ARI=RIE[RI]]]max(RI)E[RI]] A R I = R I − E [ R I ] ] ] m a x ( R I ) − E [ R I ] ]

优缺点

优点:
1、对于随机的标签分配,ARI 趋近于 0(而 RI 就不能保证获得接近 0 的值,特别是如果簇的数量与采样数量具有相同的数量级);
2、ARI 的取值范围是 [-1,1],负值代表两列聚类标签相对独立,正值代表两列聚类标签很相似,1 代表两列聚类标签完全相同;
3、对于簇的结构没有作出任何假设,例如,可以用于比较 K-Means(假定 isotropic blob shapes) 与 谱聚类(可以找到具有 “folded” shapes 的聚类)的结果;
缺点:
1、由于需要正确聚类标签,在实践中几乎不可用,但是可以用来在无监督的环境下,比较各种聚类算法结果的一致性(adjusted_rand_score 是对称的);

2、基于互信息的度量

sklearn.metrics.mutual_info_score
sklearn.metrics.adjusted_mutual_info_score
sklearn.metrics.normalized_mutual_info_score

数学公式

假设两列标签分配(数据集中有 N 个对象),U 和 V;

mutual_info_score: MI(U,V)=|U|i=1|V|j=1P(i,j)log(P(i,j)P(i)P(j)) M I ( U , V ) = ∑ i = 1 | U | ∑ j = 1 | V | P ( i , j ) l o g ( P ( i , j ) P ( i ) P ′ ( j ) )

P(i)=|Ui|N P ( i ) = | U i | N 是从 U 中随机选取的对象属于类 Ui U i 的概率;

P(j)=|Vj|N P ′ ( j ) = | V j | N 是从 V 中随机选取的对象属于类 Vi V i 的概率;

P(i,j)=|UiVj|N P ( i , j ) = | U i ⋂ V j | N 是随机选择的对象属于两个类 Ui U i Vj V j 的概率;

normalized_mutual_info_score: NMI(U,V)=MI(U,V)H(U)H(V) N M I ( U , V ) = M I ( U , V ) H ( U ) H ( V )

U 的熵: H(U)=|U|i=1P(i)log(P(i)) H ( U ) = − ∑ i = 1 | U | P ( i ) l o g ( P ( i ) )

V 的熵: H(V)=|V|i=1P(j)log(P(j)) H ( V ) = − ∑ i = 1 | V | P ′ ( j ) l o g ( P ′ ( j ) )

adjusted_mutual_info_score: AMI=MIE[MI]]max(H(U),H(V))E[MI]] A M I = M I − E [ M I ] ] m a x ( H ( U ) , H ( V ) ) − E [ M I ] ]

优缺点

优点:
1、对于随机的标签分配,AMI 趋近于 0(而 MI 就不能保证获得接近 0 的值);
2、MI 和 NMI 的取值范围是 [0,1],接近 0 的值代表两列聚类标签相对独立,接近 1 的值代表两列聚类标签具有一致性,0 代表两列聚类标签完全独立,1 代表两列聚类标签完全相同(AMI 的取值范围为 [-1,1]);
3、基于互信息的度量方式对于簇的结构没有作出任何假设,例如,可以用于比较 K-Means(假定 isotropic blob shapes) 与 谱聚类(可以找到具有 “folded” shapes 的聚类)的结果;
缺点:
1、基于互信息的度量方式,由于需要正确聚类标签,在实践中几乎不可用,但是可以用来在无监督的环境下,比较各种聚类算法结果的一致性(基于互信息的三种度量方式是对称的);

3、同质性、完整性、V-measure

sklearn.metrics.homogeneity_score
sklearn.metrics.completeness_score
sklearn.metrics.v_measure_score
sklearn.metrics.homogeneity_completeness_v_measure

数学公式

K 代表簇,C 代表类;

homogeneity(同质性):每个簇只包含一个类的成员;
h=1H(C|K)H(C) h = 1 − H ( C | K ) H ( C )

completeness(完整性):给定类的所有成员都分配给同一个簇;
c=1H(K|C)H(K) c = 1 − H ( K | C ) H ( K )

其中,
H(C|K)=|C|c=1|K|k=1nc,knlog(nc,knk) H ( C | K ) = − ∑ c = 1 | C | ∑ k = 1 | K | n c , k n ⋅ l o g ( n c , k n k )

H(C)=|C|c=1ncnlog(ncn) H ( C ) = − ∑ c = 1 | C | n c n ⋅ l o g ( n c n )

n 代表样本总数, nc n c nk n k 代表分别属于 c 类和簇 k 的样本数,最后 nc,k n c , k 代表分配给簇 k 的类 c 的样本数;

H(K|C) 和 H(K) 以类似方式定义;

v_measure:同质性和完整性的调和平均;
v=2hch+c v = 2 ⋅ h ⋅ c h + c

优缺点

优点:
1、分数是有界的,0.0 是最坏的, 1.0 是一个完美的分数;
2、具有不良 v-measure 的聚类可以在同质性和完整性方面进行定性分析,以更好地感知到聚类的错误类型;
3、对于簇的结构没有作出任何假设,例如,可以用于比较 K-Means(假定 isotropic blob shapes) 与 谱聚类(可以找到具有 “folded” shapes 的聚类)的结果;
缺点:
1、随着样本数量、簇的数量以及标定过的真实标签的不同,完全随机的标签并不总是产生相同数值的同质性、完整性和 v-measure(随机标记不会产生零分,特别是当簇的数量大时);
当样本数量超过 1000,簇的数量小于 10 时,可以忽略上述缺点,但对于较小的样本数量或者较大数量的簇,还是建议使用调整过的度量标准,比如 Adjusted Rand Index (ARI);
2、基于互信息的度量方式,由于需要正确聚类标签,在实践中几乎不可用;

4、Fowlkes-Mallows scores

sklearn.metrics.fowlkes_mallows_score

数学公式

FMI=TP(TP+FP)(TP+FN) F M I = T P ( T P + F P ) ( T P + F N )
TP 是 True Positive(真正例)的数量,即真实标签和预测标签中属于相同簇的点对数;
FP 是 False Positive(假正例)的数量, 即在真实标签中属于同一簇,而在预测标签中不属于同一簇的点对数;
FN 是 False Negative(假负例) 的数量,即在预测标签中属于同一簇,而在真实标签中不属于同一簇的点对数;

优缺点

优点:
1、对于 n_clusters 和 n_samples 的任何值,随机标签分配 FMI 得分接近于 0.0;
2、FMI 的取值范围是 [0,1],接近 0 的值代表两列聚类标签相对独立,接近 1 的值代表两列聚类标签具有一致性,0 代表两列聚类标签完全独立,1 代表两列聚类标签完全相同;
3、对于簇的结构没有作出任何假设,例如,可以用于比较 K-Means(假定 isotropic blob shapes) 与 谱聚类(可以找到具有 “folded” shapes 的聚类)的结果;
缺点:
1、由于需要正确聚类标签,在实践中几乎不可用;

5、轮廓系数

sklearn.metrics.silhouette_score

数学公式

单个样本的 Silhouette 系数: s=bamax(a,b) s = b − a m a x ( a , b )
a:样本与同一类别中所有其他点之间的平均距离;
b:样本与 下一个距离最近的簇 中的所有其他点之间的平均距离;
一组样本的 Silhouette 系数是每个样本的 Silhouette 系数的平均值;

优缺点

优点:
1、对于不正确的聚类分数为 -1 ,对于高密度的聚类分数为 +1,零点附近的分数表示 overlapping clusters(重叠的聚类);
2、当簇密集且分离较好时,分数更高,这与簇的标准概念有关;
缺点:
1、凸的簇的 Silhouette 系数通常比其他类型的簇更高,例如通过 DBSCAN 获得的基于密度的簇;

6、Calinski-Harabaz 指数

sklearn.metrics.calinski_harabaz_score

数学公式

s(k)=Tr(Bk)Tr(Wk)×Nkk1 s ( k ) = T r ( B k ) T r ( W k ) × N − k k − 1

Wk=kq=1xCq(xcq)(xcq) W k = ∑ q = 1 k ∑ x ∈ C q ( x − c q ) ( x − c q ) ⊤

Bk=qnq(cqc)(cqc) B k = ∑ q n q ( c q − c ) ( c q − c ) ⊤

N 为样本总数,k 为簇的数量, Bk B k 为类别之间的协方差矩阵, Wk W k 为类别内部数据的协方差矩阵。也就是说,类别内部数据的协方差越小越好,类别之间的协方差越大越好,这样的Calinski-Harabasz分数会高;

优缺点

优点:
1、当簇密集且分离较好时,分数更高;
2、得分计算很快;
缺点:
1、凸的簇的 Silhouette 系数通常比其他类型的簇更高,例如通过 DBSCAN 获得的基于密度的簇;

7、总结

综上所述,只有 Silhouette Coefficient(轮廓系数)和 Calinski-Harabaz 指数不需要真实的聚类标签,这两个度量指标更推荐 Calinski-Harabaz 指数;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值