sklearn.metrics
.average_precision_score¶

sklearn.metrics.
average_precision_score
(y_true, y_score, average='macro', pos_label=1, sample_weight=None)¶ Compute average precision (AP) from prediction scores
AP summarizes a precisionrecall curve as the weighted mean of precisions achieved at each threshold, with the increase in recall from the previous threshold used as the weight:
\[\text{AP} = \sum_n (R_n  R_{n1}) P_n\]where \(P_n\) and \(R_n\) are the precision and recall at the nth threshold [R78]. This implementation is not interpolated and is different from computing the area under the precisionrecall curve with the trapezoidal rule, which uses linear interpolation and can be too optimistic.
Note: this implementation is restricted to the binary classification task or multilabel classification task.
Read more in the User Guide.
Parameters: y_true : array, shape = [n_samples] or [n_samples, n_classes]
True binary labels or binary label indicators.
y_score : array, shape = [n_samples] or [n_samples, n_classes]
Target scores, can either be probability estimates of the positive class, confidence values, or nonthresholded measure of decisions (as returned by “decision_function” on some classifiers).
average : string, [None, ‘micro’, ‘macro’ (default), ‘samples’, ‘weighted’]
If
None
, the scores for each class are returned. Otherwise, this determines the type of averaging performed on the data:'micro'
:Calculate metrics globally by considering each element of the label indicator matrix as a label.
'macro'
:Calculate metrics for each label, and find their unweighted mean. This does not take label imbalance into account.
'weighted'
:Calculate metrics for each label, and find their average, weighted by support (the number of true instances for each label).
'samples'
:Calculate metrics for each instance, and find their average.
Will be ignored when
y_true
is binary.pos_label : int or str (default=1)
The label of the positive class. Only applied to binary
y_true
. For multilabelindicatory_true
,pos_label
is fixed to 1.sample_weight : arraylike of shape = [n_samples], optional
Sample weights.
Returns: average_precision : float
See also
roc_auc_score
 Compute the area under the ROC curve
precision_recall_curve
 Compute precisionrecall pairs for different probability thresholds
Notes
Changed in version 0.19: Instead of linearly interpolating between operating points, precisions are weighted by the change in recall since the last operating point.
References
[R78] (1, 2) Wikipedia entry for the Average precision Examples
>>> 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) # doctest: +ELLIPSIS 0.83...