Метрики классификации: Precision, Recall, F1

EasyPython
05:00
Лучше работает на десктопе
Applied DSметрикиPrecisionRecallF1Confusion Matrix

Реализуйте вычисление метрик бинарной классификации from scratch.

Задача основана на вопросах с собеседований в Яндекс и Газпромбанк.

Сигнатура

def classification_metrics(y_true: list[int], y_pred: list[int]) -> dict:

Верните dict:
- tp, fp, tn, fn: int
- precision: float (4 знака)
- recall: float (4 знака)
- f1: float (4 знака)
- accuracy: float (4 знака)

Примеры

classification_metrics([1,1,0,0,1,0,1,0], [1,0,0,1,1,0,0,0])
→ {"tp": 2, "fp": 1, "tn": 3, "fn": 2, "precision": 0.6667, "recall": 0.5, "f1": 0.5714, "accuracy": 0.625}

Примеры

Пример 1

Вход:
y_true = [1,1,0,0,1,0,1,0]
y_pred = [1,0,0,1,1,0,0,0]
Выход:{"tp":2,"fp":1,"tn":3,"fn":2,"precision":0.6667,"recall":0.5,"f1":0.5714,"accuracy":0.625}

Пример 2

Вход:
y_true = [1,1,1,1]
y_pred = [1,1,1,1]
Выход:{"tp":4,"fp":0,"tn":0,"fn":0,"precision":1,"recall":1,"f1":1,"accuracy":1}

Пример 3

Вход:
y_true = [0,0,0,1,1]
y_pred = [1,1,0,0,0]
Выход:{"tp":0,"fp":2,"tn":1,"fn":2,"precision":0,"recall":0,"f1":0,"accuracy":0.2}
Консоль
Нажмите Run или Ctrl+Enter для запуска