scikit-learn之聚类性能度量

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoleiniu1314/article/details/80054243

1、调整兰德系数

sklearn.metrics.adjusted_rand_score

数学公式

Rand index(兰德系数): 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(调整兰德系数): 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: 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 ) = | U i | N 是从 U 中随机选取的对象属于类 U i 的概率;

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

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

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

扫描二维码关注公众号,回复: 5506653 查看本文章

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

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

adjusted_mutual_info_score: 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 = 1 H ( C | K ) H ( C )

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

其中,
H ( C | K ) = c = 1 | C | k = 1 | K | n c , k n l o g ( n c , k n k )

H ( C ) = c = 1 | C | n c n l o g ( n c n )

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

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

v_measure:同质性和完整性的调和平均;
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

数学公式

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 = 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 ) = T r ( B k ) T r ( W k ) × N k k 1

W k = q = 1 k x C q ( x c q ) ( x c q )

B k = q n q ( c q c ) ( c q c )

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

优缺点

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

7、总结

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

猜你喜欢

转载自blog.csdn.net/xiaoleiniu1314/article/details/80054243