gpt4 book ai didi

python - 基于示例的 f-score 小于 Sklearn 中的精度和召回率

转载 作者:行者123 更新时间:2023-11-28 22:47:28 29 4
gpt4 key购买 nike

我正在进行多标签分类,评估由 precision_recall_fscore_supportaverage = 'samples' 完成:

predict = array(([1,1,0,0], [1,0,0,1], [1,1,1,1]))
expect = array(([1,1,1,1], [1,1,1,0], [1,0,0,0]))
smp_report = precision_recall_fscore_support(expect, predict, average = 'samples')
f_report = f1_score(expect, predict, average = 'samples')

本例中一共有三个实例,二进制值代表对应的四个类的存在。

然后 smp_reportf_report 分别给我 (0.58333333333333337, 0.61111111111111105, 0.48888888888888893, None)0.488888888889

f-score 不等于 2*smp_report[0]*smp_report[1]/(smp_report[0]+smp_report[1]) 的调和平均值准确率和召回率。

谁能告诉我 Sklearn 是如何实现这个的?我使用的版本是 0.15.0。

最佳答案

Scikit-learn 首先计算列表集中每个项目的精度、召回率和谐波 F-measure ([1,1,0,0], [1,0,0,1], [1,1,1,1])。然后它计算这些精度值的平均值、那些召回值的平均值和那些 f-measures 的平均值,并返回这些平均值。这些是您在上面报告的 P、R 和 F 值。

计算列表中单个项目的精度、召回率和 f-measure 值很有帮助。要计算列表中第三项的 P、R 和 F 值,您可以运行:

import numpy as np
from sklearn import metrics

predict = np.array([[1,1,1,1]])
expect = np.array([[1,0,0,0]])
smp_report = metrics.precision_recall_fscore_support(expect, predict, beta=1, average = 'samples')
f_report = metrics.f1_score(expect, predict, average = 'samples')

print f_report, smp_report

运行此代码会得到 0.4 (0.25, 1.0, 0.40000000000000002)。括号内的值表示分类的精度、召回率和 f-measure(按此顺序)。如您所见,f 度量精度和召回率之间的调和平均值:

2 * [(.25 * 1) / (.25 + 1) ] = .4

通过将您的前两个列表交换到上面的代码中,您可以计算数据集中三个项目中每一个的精度、召回率和谐波 f 度量:

第一项值:

0.666666666667 (1.0, 0.5, 0.66666666666666663)

第二项值

0.4 (0.5, 0.33333333333333331, 0.40000000000000002)

第三项值

0.4 (0.25, 1.0, 0.40000000000000002)

然后 SK 计算这些精度值的平均精度,即: 1 + .5 + .25/3 = .5833333333333333),这些召回值中的平均召回率,(.5 + .333 + 1/3 = 0.61111111111111105),以及这些 f-measures (.666 + .4 + .4/3 = 0.48888888888888893) 中的平均 f-measure,并返回这些平均值。这些是您在上面报告的值。 SK 正在计算每个分类事件的调和平均值——它只是返回这些调和平均值的平均值。

关于python - 基于示例的 f-score 小于 Sklearn 中的精度和召回率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26200718/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com