Какие метрики бинарной классификации вы знаете? Плюсы и минусы каждой.
Answer from AI
sobes.tech AI
Что хотят услышать интервьюеры:
Нужно показать, что для бинарной классификации недостаточно одной accuracy, особенно при дисбалансе классов. Важно уметь выбирать метрику под бизнес-цель: что критичнее — пропустить положительный класс или ошибочно его предсказать. Хороший ответ обычно включает confusion matrix, precision, recall, F1, ROC-AUC и PR-AUC.
Определение:
Метрики бинарной классификации оценивают качество модели, которая относит объект к одному из двух классов. Они считаются на основе матрицы ошибок: TP, FP, TN, FN.
Основные метрики и их смысл:
- Accuracy — доля всех верных предсказаний.
- Плюсы: проста и понятна.
- Минусы: плохо работает при дисбалансе классов; может быть высокой даже у бесполезной модели.
- Precision — из всех предсказанных положительных сколько действительно положительные.
- Плюсы: важна, когда дорогие ложноположительные ошибки.
- Минусы: не учитывает пропуски положительного класса.
- Recall — из всех реальных положительных сколько найдено моделью.
- Плюсы: важна, когда дорогие ложноотрицательные ошибки.
- Минусы: не учитывает количество ложных срабатываний.
- F1-score — гармоническое среднее precision и recall.
- Плюсы: полезна при дисбалансе классов, если важен баланс между precision и recall.
- Минусы: скрывает, за счёт чего достигнут результат; не показывает TN.
- Specificity — из всех реальных отрицательных сколько правильно распознано.
- Плюсы: полезна, когда важно не ошибаться на отрицательном классе.
- Минусы: обычно реже используется в общем ML-пайплайне.
- ROC-AUC — качество ранжирования между классами при разных порогах.
- Плюсы: не зависит от выбранного порога, удобна для сравнения моделей.
- Минусы: может выглядеть хорошо даже при сильном дисбалансе; не всегда отражает качество на редком положительном классе.
- PR-AUC — площадь под precision-recall кривой.
- Плюсы: лучше показывает качество на редком положительном классе.
- Минусы: менее интуитивна, чем accuracy; зависит от распределения классов.
- LogLoss — штрафует за уверенность в неправильном ответе.
- Плюсы: учитывает вероятности, а не только класс.
- Минусы: менее интерпретируема для бизнеса; чувствительна к плохо калиброванным вероятностям.
Пример использования:
Допустим, модель определяет, есть ли у клиента риск оттока.
Если важно не пропустить «уходящих» клиентов, то приоритет у recall.
Если дорого ошибочно предлагать удержание тем, кто и так не уйдёт, то важнее precision.
Если классы сильно несбалансированы, accuracy может ввести в заблуждение, поэтому лучше смотреть F1, PR-AUC и матрицу ошибок.
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, roc_auc_score, average_precision_score
y_true = [1, 0, 1, 1, 0, 0, 1]
y_pred = [1, 0, 0, 1, 0, 1, 1]
y_proba = [0.9, 0.2, 0.4, 0.8, 0.1, 0.7, 0.85]
print("Accuracy:", accuracy_score(y_true, y_pred))
print("Precision:", precision_score(y_true, y_pred))
print("Recall:", recall_score(y_true, y_pred))
print("F1:", f1_score(y_true, y_pred))
print("ROC-AUC:", roc_auc_score(y_true, y_proba))
print("PR-AUC:", average_precision_score(y_true, y_proba))
Пояснение кода:
Код показывает, как посчитать основные метрики для бинарной классификации.
y_true— истинные метки классов.y_pred— предсказанные классы после выбора порога.y_proba— вероятности положительного класса, нужны для ROC-AUC и PR-AUC.accuracy_scoreсчитает долю правильных ответов среди всех объектов.precision_scoreпоказывает, насколько «чисты» положительные предсказания.recall_scoreпоказывает, сколько реальных положительных объектов модель нашла.f1_scoreобъединяет precision и recall в одну метрику.roc_auc_scoreоценивает, насколько хорошо модель ранжирует положительные объекты выше отрицательных.average_precision_scoreприближённо оценивает площадь под PR-кривой и особенно полезна при редком положительном классе.
Ключевые моменты:
- Accuracy подходит только когда классы более-менее сбалансированы и цена ошибок одинакова.
- Precision важнее, когда нужно минимизировать ложноположительные срабатывания.
- Recall важнее, когда критично не пропускать положительный класс.
- F1 удобна как компромисс при дисбалансе, но не заменяет анализ матрицы ошибок.
- ROC-AUC хороша для сравнения моделей, но при сильном дисбалансе лучше дополнительно смотреть PR-AUC.
- Выбор метрики всегда зависит от бизнес-стоимости FP и FN, а не только от математического качества модели.