← Назад к вопросам

Какие знаешь метрики для задач классификации?

2.3 Middle🔥 251 комментариев
#Машинное обучение#Метрики и оценка моделей

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI30 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Метрики для задач классификации

В машинном обучении существует множество метрик для оценки качества моделей классификации. Выбор метрики зависит от специфики задачи, размера классов и целей бизнеса.

Основные метрики

Accuracy (Точность) — доля корректных предсказаний от всех предсказаний. Используется когда классы сбалансированы. Формула: (TP + TN) / (TP + TN + FP + FN).

Precision (Точность) — доля правильно предсказанных положительных примеров среди всех предсказанных как положительные. Важна когда стоимость ложного положительного результата высока. TP / (TP + FP).

Recall (Полнота) — доля правильно предсказанных положительных примеров среди всех действительно положительных. Критична когда нужно найти все положительные случаи. TP / (TP + FN).

F1-Score — гармоническое среднее Precision и Recall. 2 × (Precision × Recall) / (Precision + Recall). Используется при дисбалансе классов.

Продвинутые метрики

ROC-AUC — площадь под кривой ROC (True Positive Rate vs False Positive Rate). Показывает способность модели различать классы при любом пороге. Значение от 0 до 1.

Precision-Recall Curve — кривая зависимости Precision от Recall. Лучше ROC-AUC при сильном дисбалансе классов.

Cohen's Kappa — мера согласованности, учитывающая случайность. Лучше Accuracy для несбалансированных данных.

Confusion Matrix — матрица 2×2 (или N×N для мультиклассовой классификации), показывающая TP, TN, FP, FN. Основа для вычисления других метрик.

Практический выбор метрик

from sklearn.metrics import (
    accuracy_score, precision_score, recall_score, f1_score,
    roc_auc_score, confusion_matrix, classification_report
)

# Для сбалансированных данных
accuracy = accuracy_score(y_true, y_pred)

# Для несбалансированных данных
f1 = f1_score(y_true, y_pred, average='weighted')
roc_auc = roc_auc_score(y_true, y_pred_proba)

# Для мультиклассовой классификации
print(classification_report(y_true, y_pred))

Когда какую метрику использовать

  • Spam detection: Recall важен (не пропустить спам), Precision тоже (не забанить нормальные письма)
  • Медицинская диагностика: Recall критичен (не пропустить болезнь), может быть много ложных срабатываний
  • Кредитный скоринг: Precision важен (избежать убытков от выданных плохих кредитов)
  • Сбалансированные данные: Accuracy достаточна

Ключ — всегда понимать бизнес-контекст и стоимость ошибок разных типов.