博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
聚类质量评估指标
阅读量:7099 次
发布时间:2019-06-28

本文共 2261 字,大约阅读时间需要 7 分钟。

Adjusted Rand index 调整兰德系数

image

>>> from sklearn import metrics>>> labels_true = [0, 0, 0, 1, 1, 1]>>> labels_pred = [0, 0, 1, 1, 2, 2]>>> metrics.adjusted_rand_score(labels_true, labels_pred)  0.24

Mutual Information based scores 互信息

image

Two different normalized versions of this measure are available, Normalized Mutual Information(NMI) and Adjusted Mutual Information(AMI). NMI is often used in the literature while AMI was proposed more recently and is normalized against chance:

from sklearn import metrics labels_true = [0, 0, 0, 1, 1, 1]labels_pred = [0, 0, 1, 1, 2, 2] metrics.adjusted_mutual_info_score(labels_true, labels_pred)  0.22504

.

Homogeneity, completeness and V-measure

同质性homogeneity:每个群集只包含单个类的成员。

完整性completeness:给定类的所有成员都分配给同一个群集。

>>> from sklearn import metrics>>> labels_true = [0, 0, 0, 1, 1, 1]>>> labels_pred = [0, 0, 1, 1, 2, 2]>>> metrics.homogeneity_score(labels_true, labels_pred)  0.66...>>> metrics.completeness_score(labels_true, labels_pred) 0.42...

两者的调和平均V-measure:

>>> metrics.v_measure_score(labels_true, labels_pred)    0.51...

.

Fowlkes-Mallows scores

The Fowlkes-Mallows score FMI is defined as the geometric mean of the pairwise precision and recall:

image

>>> from sklearn import metrics>>> labels_true = [0, 0, 0, 1, 1, 1]>>> labels_pred = [0, 0, 1, 1, 2, 2]>>>>>> metrics.fowlkes_mallows_score(labels_true, labels_pred)  0.47140...

.

Silhouette Coefficient 轮廓系数

image

>>> import numpy as np>>> from sklearn.cluster import KMeans>>> kmeans_model = KMeans(n_clusters=3, random_state=1).fit(X)>>> labels = kmeans_model.labels_>>> metrics.silhouette_score(X, labels, metric='euclidean')...                                                      0.55...

.

Calinski-Harabaz Index

这个计算简单直接,得到的Calinski-Harabasz分数值ss越大则聚类效果越好。Calinski-Harabasz分数值ss的数学计算公式是(理论介绍来源于:用scikit-learn学习K-Means聚类):

image

 也就是说,类别内部数据的协方差越小越好,类别之间的协方差越大越好,这样的Calinski-Harabasz分数会高。

 在scikit-learn中, Calinski-Harabasz Index对应的方法是metrics.calinski_harabaz_score.
在真实的分群label不知道的情况下,可以作为评估模型的一个指标。
同时,数值越小可以理解为:组间协方差很小,组与组之间界限不明显。
与轮廓系数的对比,笔者觉得最大的优势:快!相差几百倍!毫秒级

>>> import numpy as np>>> from sklearn.cluster import KMeans>>> kmeans_model = KMeans(n_clusters=3, random_state=1).fit(X)>>> labels = kmeans_model.labels_>>> metrics.calinski_harabaz_score(X, labels)  560.39...

致敬原创:

转载地址:http://tteql.baihongyu.com/

你可能感兴趣的文章
2048游戏完整源代码揭秘和下载 (一)
查看>>
gitlab项目数据同步
查看>>
关于Service与Broadcast以及Notification的终于告一段落了
查看>>
VO,PO,POJO的定义和区别
查看>>
Python环境搭建
查看>>
瑞信CDP与HA集群
查看>>
RAID各级别的特性
查看>>
Python学习笔记__7.3章 多重继承
查看>>
爱创课堂每日一题七十天- 说说你对前端架构师的理解?
查看>>
兄弟连第7节课
查看>>
学习笔记(11月15日)
查看>>
JavaWeb21-HTML篇笔记
查看>>
Java之品优购部署_day03(3)
查看>>
前端与移动开发之vue-day4(2)
查看>>
phpcms筛选功能
查看>>
简练软考知识点整理-制定进度计划过程
查看>>
26 LAMP
查看>>
Oracle解决用户锁的问题
查看>>
深入了解Kafka基本原理
查看>>
springCloud分布式事务实战(六)编写第二个微服务
查看>>