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.

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.


Calculate metrics globally by considering each element of the label indicator matrix as a label.


Calculate metrics for each label, and find their unweighted mean. This does not take label imbalance into account.


Calculate metrics for each label, and find their average, weighted by support (the number of true instances for each label).


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.


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


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.


See also


Area under the precision-recall curve


Compute Receiver operating characteristic (ROC) curve



Wikipedia entry for the Receiver operating characteristic


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


Analyzing a portion of the ROC curve. McClish, 1989


>>> 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)