sklearn.metrics.roc_auc_score

sklearn.metrics.roc_auc_score(y_true, y_score, average='macro', sample_weight=None, max_fpr=None, multi_class='raise', labels=None)[source]

Compute Area Under the Receiver Operating Characteristic Curve (ROC AUC) from prediction scores.

Note: this implementation is restricted to the binary classification task or multilabel classification task in label indicator format.

Read more in the User Guide.

Parameters
y_truearray, shape = [n_samples] or [n_samples, n_classes]

True binary labels or binary label indicators. The multiclass case expects shape = [n_samples] and labels with values in range(n_classes).

y_scorearray, shape = [n_samples] or [n_samples, n_classes]

Target scores, can either be probability estimates of the positive class, confidence values, or non-thresholded measure of decisions (as returned by “decision_function” on some classifiers). For binary y_true, y_score is supposed to be the score of the class with greater label. The multiclass case expects shape = [n_samples, n_classes] where the scores correspond to probability estimates.

averagestring, [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: Note: multiclass ROC AUC currently only handles the ‘macro’ and ‘weighted’ averages.

'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.

sample_weightarray-like of shape = [n_samples], optional

Sample weights.

max_fprfloat > 0 and <= 1, optional

If not None, the standardized partial AUC [3] over the range [0, max_fpr] is returned. For the multiclass case, max_fpr, should be either equal to None or 1.0 as AUC ROC partial computation currently is not supported for multiclass.

multi_classstring, ‘ovr’ or ‘ovo’, optional(default=’raise’)

Determines the type of multiclass configuration to use. multi_class must be provided when y_true is multiclass.

'ovr':

Calculate metrics for the multiclass case using the one-vs-rest approach.

'ovo':

Calculate metrics for the multiclass case using the one-vs-one approach.

labelsarray, shape = [n_classes] or None, optional (default=None)

List of labels to index y_score used for multiclass. If None, the lexicon order of y_true is used to index y_score.

Returns
aucfloat

See also

average_precision_score

Area under the precision-recall curve

roc_curve

Compute Receiver operating characteristic (ROC) curve

References

1

Wikipedia entry for the Receiver operating characteristic

2

Fawcett T. An introduction to ROC analysis[J]. Pattern Recognition Letters, 2006, 27(8):861-874.

3

Analyzing a portion of the ROC curve. McClish, 1989

Examples

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