AUC-ROC from Scratch

MediumAlgo
10:00
Лучше работает на десктопе
DSMetricsAUC-ROC

Вычислите AUC-ROC (Area Under the Receiver Operating Characteristic Curve) с нуля, используя трапецоидальный метод.

Формулы

- TPR (True Positive Rate) = TP / P
- FPR (False Positive Rate) = FP / N
- AUC = Σ (FPR[i] - FPR[i-1]) × (TPR[i] + TPR[i-1]) / 2

Верните AUC-ROC, округлённый до 4 знаков.

Сигнатура

def auc_roc(y_true: list[int], y_scores: list[float]) -> float:

Примеры

auc_roc([1, 1, 0, 0], [0.9, 0.8, 0.3, 0.1]) → 1.0
auc_roc([1, 0, 1, 0], [0.9, 0.8, 0.2, 0.1]) → 0.75

Constraints

- 2 ≤ n ≤ 10⁴
- y_true ∈ {0, 1}
- 0 ≤ score ≤ 1
- Хотя бы один 0 и один 1 в y_true

Примеры

Пример 1

Вход:
y_true = [1,1,0,0]
y_scores = [0.9,0.8,0.3,0.1]
Выход:1

Пример 2

Вход:
y_true = [1,0,1,0]
y_scores = [0.9,0.8,0.2,0.1]
Выход:0.75

Пример 3

Вход:
y_true = [0,0,1,1]
y_scores = [0.9,0.8,0.3,0.1]
Выход:0
Консоль
Нажмите Run или Ctrl+Enter для запуска