聚类评价指标-同质性、完全性和v测度

 评估聚类算法的性能并不像计算错误数量或监督分类算法的精度和召回率那么简单。特别是任何评价指标不应考虑集群的绝对值的标签,而是如果这个集群定义分离的数据类似于一些地标准数据类或满足一些假设,根据某种相似性度量,这样成员属于同一类相似度大于不同的类的成员
Homogeneity, completeness and V-measure

这些指标都是使用条件熵分析来定义一些直观的度量.
在 Rosenberg and Hirschberg (2007)为任何集群分配定义以下两个理想的目标

Homogeneity:每个集群只包含单个类的成员
completeness:给定类的所有成员都被分配到同一个集群

image.png

实例

>>> 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...

>>> metrics.v_measure_score(labels_true, labels_pred)
0.51...
#beta默认值为1.0,但如果beta值小于1:
>>> metrics.v_measure_score(labels_true, labels_pred, beta=0.6)
0.54...
>>> metrics.v_measure_score(labels_true, labels_pred, beta=1.8)
0.48...

#这三个值可以一起计算
>>> metrics.homogeneity_completeness_v_measure(labels_true, labels_pred)
(0.66..., 0.42..., 0.51...)
>>> labels_pred = [0, 0, 0, 1, 2, 2]
>>> metrics.homogeneity_completeness_v_measure(labels_true, labels_pred)
(1.0, 0.68..., 0.81...)

note
v_measure_score是对称的:它可以用来评估同一个数据集上两个独立赋值的一致性。

注意
1 界限分数:0.0是最糟糕的,1.0是一个完美的分数。
2 直观的解释:v值不好的聚类可以从同质性和完整性方面进行定性分析,以便更好地了解作业中出现的“类型”错误。
3 可用于比较k-means等假设各向同性斑点形状的聚类算法与谱聚类算法的结果,谱聚类算法可以找到具有“折叠”形状的聚类。
4前面介绍的度量标准没有对随机标记进行规范化:这意味着,根据样本数量、集群和ground truth类,完全随机标记并不总是产生相同的同质性、完整性和v-measure值。特别地,随机标记不会产生零分,尤其是当集群的数量很大时。

来源:sklearn官网
地址:https://scikit-learn.org/stable/modules/clustering.html#clustering-evaluation

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容