当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn v_measure_score用法及代码示例


本文简要介绍python语言中 sklearn.metrics.v_measure_score 的用法。

用法:

sklearn.metrics.v_measure_score(labels_true, labels_pred, *, beta=1.0)

V-measure 给定基本事实的集群标签。

此分数与 normalized_mutual_info_score 相同,带有用于平均的 'arithmetic' 选项。

V-measure 是同质性和完整性之间的调和平均值:

v = (1 + beta) * homogeneity * completeness
     / (beta * homogeneity + completeness)

该指标独立于标签的绝对值:类或集群标签值的排列不会以任何方式改变得分值。

此外,该指标是对称的:将 label_truelabel_pred 切换将返回相同的分数值。当不知道真实的基本事实时,这对于测量同一数据集上两个独立标签分配策略的一致性很有用。

在用户指南中阅读更多信息。

参数

labels_trueint 数组,形状 = [n_samples]

地面实况类标签用作参考

labels_pred形状类似数组 (n_samples,)

要评估的集群标签

beta浮点数,默认=1.0

归因于 homogeneitycompleteness 的权重比。如果 beta 大于 1,则 completeness 在计算中的权重更大。如果 beta 小于 1,则 homogeneity 的权重更大。

返回

v_measure浮点数

得分在 0.0 和 1.0 之间。 1.0 代表完美完整的标签

参考

1

Andrew Rosenberg 和 Julia Hirschberg,2007。V-Measure:基于条件熵的外部聚类评估度量

例子

完美的标签既同质又完整,因此得分为 1.0:

>>> from sklearn.metrics.cluster import v_measure_score
>>> v_measure_score([0, 0, 1, 1], [0, 0, 1, 1])
1.0
>>> v_measure_score([0, 0, 1, 1], [1, 1, 0, 0])
1.0

将所有类成员分配到相同集群的标签是完整的,不是同质的,因此受到惩罚:

>>> print("%.6f" % v_measure_score([0, 0, 1, 2], [0, 0, 1, 1]))
0.8...
>>> print("%.6f" % v_measure_score([0, 1, 2, 3], [0, 0, 1, 1]))
0.66...

具有来自同一类的成员的纯集群的标签是同质的,但 un-necessary 拆分会损害完整性,因此也会惩罚 V-measure:

>>> print("%.6f" % v_measure_score([0, 0, 1, 1], [0, 0, 1, 2]))
0.8...
>>> print("%.6f" % v_measure_score([0, 0, 1, 1], [0, 1, 2, 3]))
0.66...

如果类成员完全分布在不同的集群中,则分配是完全不完整的,因此 V-Measure 为空:

>>> print("%.6f" % v_measure_score([0, 0, 0, 0], [0, 1, 2, 3]))
0.0...

包含来自完全不同类别的样本的集群完全破坏了标签的同质性,因此:

>>> print("%.6f" % v_measure_score([0, 0, 1, 1], [0, 0, 0, 0]))
0.0...

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.metrics.v_measure_score。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。