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


Python sklearn average_precision_score用法及代码示例


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

用法:

sklearn.metrics.average_precision_score(y_true, y_score, *, average='macro', pos_label=1, sample_weight=None)

根据预测分数计算平均精度 (AP)。

AP 将precision-recall 曲线总结为在每个阈值处实现的精度的加权平均值,将前一个阈值的召回率增加用作权重:

其中 是第 n 个阈值的精度和召回率 [1]。此实现不进行插值,与使用梯形规则计算precision-recall曲线下面积不同,梯形规则使用线性插值,可能过于乐观。

注意:此实现仅限于二进制分类任务或多标签分类任务。

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

参数

y_truendarray 形状 (n_samples,) 或 (n_samples, n_classes)

真正的二进制标签或二进制标签指示符。

y_scorendarray 形状 (n_samples,) 或 (n_samples, n_classes)

目标分数,可以是正类的概率估计、置信度值或决策的非阈值度量(在某些分类器上由 decision_function 返回)。

average{‘micro’, ‘samples’, ‘weighted’, ‘macro’} 或无,默认='宏'

如果 None ,则返回每个类的分数。否则,这将确定对数据执行的平均类型:

'micro'

通过将标签指标矩阵的每个元素视为标签来全局计算指标。

'macro'

计算每个标签的指标,并找到它们的未加权平均值。这没有考虑标签不平衡。

'weighted'

计算每个标签的指标,并找到它们的平均值,按支持度加权(每个标签的真实实例数)。

'samples'

计算每个实例的指标,并找到它们的平均值。

y_true 为二进制时将被忽略。

pos_labelint 或str,默认=1

正类的标签。仅适用于二进制 y_true 。对于 multilabel-indicator y_truepos_label 固定为 1。

sample_weight形状类似数组 (n_samples,),默认=None

样本权重。

返回

average_precision浮点数

注意

参考

1

平均精度的维基百科条目

例子

>>> import numpy as np
>>> from sklearn.metrics import average_precision_score
>>> y_true = np.array([0, 0, 1, 1])
>>> y_scores = np.array([0.1, 0.4, 0.35, 0.8])
>>> average_precision_score(y_true, y_scores)
0.83...

相关用法


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