In [1]:
from sklearn.metrics import roc_auc_score
import numpy as np

In [2]:
y_true = np.array([0, 0, 0, 0, 1, 1, 1, 1])
y_score = np.array([0.2, 0.3, 0.6, 0.8, 0.4, 0.5, 0.7, 0.9])

In [3]:
print(roc_auc_score(y_true, y_score))


0.6875

In [4]:
y_true_perfect = np.array([0, 0, 0, 0, 1, 1, 1, 1])
y_score_perfect = np.array([0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8])

In [5]:
print(roc_auc_score(y_true_perfect, y_score_perfect))


1.0

In [6]:
np.random.seed(0)
y_true_random = np.array([0] * 5000 + [1] * 5000)
y_score_random = np.random.rand(10000)

In [7]:
print(roc_auc_score(y_true_random, y_score_random))


0.49895535999999996

In [8]:
y_score_inv = 1 - y_score
print(y_score_inv)


[0.8 0.7 0.4 0.2 0.6 0.5 0.3 0.1]

In [9]:
print(roc_auc_score(y_true, y_score_inv))


0.3125

In [10]:
y_score_perfect_inv = 1 - y_score_perfect
print(y_score_perfect_inv)


[0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2]

In [11]:
print(roc_auc_score(y_true_perfect, y_score_perfect_inv))


0.0