【发布时间】:2019-02-14 10:26:34
【问题描述】:
根据here中平均精度(AP)分数的定义,AP是根据精度和跨阈值的召回增量来计算的。
average_precision_score函数中,必选参数如下:
y_true:二进制标签指标中的真正二进制标签。
y_score:目标分数,可以是正类的概率估计、置信度值或决策的非阈值度量(由某些分类器上的“decision_function”返回)。
据我了解,y_true 是每条记录所属的基本事实类别的列表。 y_score 是每条记录对应的预测类别列表。同样,对于二元分类任务,y_true = [1,0,0,1,1] 和 y_score = [0,0,0,1,0]是可行的参数,对于记录 1,ground truth 类别为正 (1),但预测类别为负 (0)。
我们尝试使用不同的阈值进行分类任务。因此,我们为每个阈值获得不同的 y_score 列表。在这种情况下,当我应用 average_precision_score 函数时,我将获得每个阈值的 AP 值。不是定义所暗示的跨阈值的单个值。在 sklearn 函数中无论如何都没有“阈值”参数。
请问我对sklearn中average_precision_score函数的理解是否正确?如果有,与定义相矛盾的原因是什么?
【问题讨论】:
标签: python machine-learning scikit-learn