Confusion Matrix, Precision, Recall, F1
Разбираемся в базовых метриках классификации — без них ни один собес не пройти.
Зачем нужны метрики классификации
Когда вы построили модель бинарной классификации, нужно понять — хорошая она или нет. Accuracy не всегда достаточно (а на несбалансированных данных — бесполезна). Поэтому существует целый набор метрик: Precision, Recall, F1, ROC-AUC и другие.
Это must-know тема
Метрики классификации спрашивают на каждом собеседовании по ML. Не просто формулы — важно понимать, когда какую метрику использовать и почему.
Confusion Matrix
Confusion matrix — основа понимания любого бинарного классификатора. Каждый ответ модели попадает в одну из четырёх ячеек: предсказанный класс (positive или negative) скрещивается с истинным классом.
- True Positive (TP): модель предсказала «положительный», объект действительно положительный
- False Positive (FP): модель предсказала «положительный», но объект отрицательный — ложная тревога
- False Negative (FN): модель предсказала «отрицательный», но объект положительный — пропуск
- True Negative (TN): модель предсказала «отрицательный», объект действительно отрицательный
Пример: тест на COVID
TP — болен, тест положительный. FP — здоров, тест положительный (ложная тревога). FN — болен, тест отрицательный (пропуск). TN — здоров, тест отрицательный.
Precision
Precision (точность) показывает, какая доля объектов, предсказанных как положительные, действительно является положительными. Высокий precision — мало ложных тревог.
Вопрос, на который отвечает precision: «Из всех объектов, которые модель пометила как положительные, сколько из них действительно таковы?»
Когда precision критична
Спам-фильтр: если precision низкая — важные письма попадают в спам. Рекомендации: если precision низкая — пользователь видит нерелевантные товары и уходит.
Recall (Sensitivity)
Recall (полнота) показывает, какую долю реальных положительных объектов модель смогла обнаружить. Высокий recall — мало пропущенных положительных примеров.
Вопрос: «Из всех объектов, которые действительно являются положительными, сколько из них нашла модель?»
Когда recall критична
Медицина: если recall низкий — рак не диагностируется. Цена ложно-отрицательного результата — жизнь. Антифрод: пропущенная мошенническая транзакция — прямые убытки.
F1-Score
F1-score — гармоническое среднее precision и recall. Если одна из метрик низкая — F1 тоже будет низким. Высокий F1 требует хорошего качества по обоим критериям одновременно.
Гармоническое среднее строже арифметического — оно «штрафует» за большую разницу между precision и recall. Поэтому модель с precision=0.9 и recall=0.1 получит F1≈0.18, а не 0.5.
Accuracy
Accuracy — доля правильных предсказаний среди всех объектов. Простая и интуитивная метрика, но на несбалансированных данных она обманывает.
Ловушка accuracy
Если мошенников 1%, модель «всегда предсказываю не-мошенник» даёт accuracy 99%. Звучит круто, но бесполезно.
ROC-AUC
ROC-кривая строится по True Positive Rate (= Recall) против False Positive Rate при разных порогах. AUC суммирует качество одним числом: 1.0 = идеально, 0.5 = случайное угадывание.
AUC показывает, насколько хорошо модель различает классы при любом пороге. Это делает его удобным для сравнения моделей, когда порог ещё не выбран.
PR-кривая
PR-кривая строит зависимость precision от recall при разных порогах. Average Precision (AP) — площадь под ней. На сильно несбалансированных данных PR-кривая информативнее ROC.
ROC vs PR
ROC может выглядеть оптимистично при сильном дисбалансе (много TN маскируют проблемы). PR фокусируется на положительном классе — честнее показывает качество.
Как выбрать метрику
- Сбалансированные данные + простота → Accuracy
- Ложные тревоги дорогие → Precision
- Пропуски дорогие → Recall
- Нужен баланс → F1-score
- Сравнение моделей без порога → ROC-AUC
- Сильный дисбаланс → PR-AUC (Average Precision)
Интерактивный тренажёр
Двигайте порог классификации и наблюдайте, как меняются метрики в реальном времени. Попробуйте разные сценарии: сбалансированные данные, сильный дисбаланс, медицинскую диагностику.
Загрузка интерактивного виджета...
Материалы
Официальная документация по метрикам классификации в sklearn
Бесплатный курс от Google по основам классификации
StatQuest — наглядное объяснение ROC-кривой и AUC
Разбор Precision, Recall, F1, ROC-AUC с примерами