1、调整兰德系数
sklearn.metrics.adjusted_rand_score
数学公式
Rand index(兰德系数):
1、a:应该在一类,最后聚到一类的数量;
2、b:不应该在一类 ,最后聚类结果也没把他们聚在一起的数量;
3、数量是指配对,在数据集中任意选两个样本点就是一个配对;
4、RI 有一个缺点,就是惩罚力度不够,换句话说,大家普遍得分比较高,没什么区分度,于是有了 ARI;
Adjusted Rand index(调整兰德系数):
优缺点
优点:
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:
是从 U 中随机选取的对象属于类 的概率;
是从 V 中随机选取的对象属于类 的概率;
是随机选择的对象属于两个类 和 的概率;
normalized_mutual_info_score:
U 的熵:
V 的熵:
adjusted_mutual_info_score:
优缺点
优点:
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(同质性):每个簇只包含一个类的成员;
completeness(完整性):给定类的所有成员都分配给同一个簇;
其中,
n 代表样本总数, 和 代表分别属于 c 类和簇 k 的样本数,最后 代表分配给簇 k 的类 c 的样本数;
H(K|C) 和 H(K) 以类似方式定义;
v_measure:同质性和完整性的调和平均;
优缺点
优点:
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
数学公式
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 系数:
a:样本与同一类别中所有其他点之间的平均距离;
b:样本与 下一个距离最近的簇 中的所有其他点之间的平均距离;
一组样本的 Silhouette 系数是每个样本的 Silhouette 系数的平均值;
优缺点
优点:
1、对于不正确的聚类分数为 -1 ,对于高密度的聚类分数为 +1,零点附近的分数表示 overlapping clusters(重叠的聚类);
2、当簇密集且分离较好时,分数更高,这与簇的标准概念有关;
缺点:
1、凸的簇的 Silhouette 系数通常比其他类型的簇更高,例如通过 DBSCAN 获得的基于密度的簇;
6、Calinski-Harabaz 指数
sklearn.metrics.calinski_harabaz_score
数学公式
N 为样本总数,k 为簇的数量, 为类别之间的协方差矩阵, 为类别内部数据的协方差矩阵。也就是说,类别内部数据的协方差越小越好,类别之间的协方差越大越好,这样的Calinski-Harabasz分数会高;
优缺点
优点:
1、当簇密集且分离较好时,分数更高;
2、得分计算很快;
缺点:
1、凸的簇的 Silhouette 系数通常比其他类型的簇更高,例如通过 DBSCAN 获得的基于密度的簇;
7、总结
综上所述,只有 Silhouette Coefficient(轮廓系数)和 Calinski-Harabaz 指数不需要真实的聚类标签,这两个度量指标更推荐 Calinski-Harabaz 指数;