Обязательно

Confusion Matrix, Precision, Recall, F1

Разбираемся в базовых метриках классификации — без них ни один собес не пройти.

Время изучения: 45 мин

Зачем нужны метрики классификации

Когда вы построили модель бинарной классификации, нужно понять — хорошая она или нет. 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=TPTP+FP\text{Precision} = \frac{TP}{TP + FP}

Precision (точность) показывает, какая доля объектов, предсказанных как положительные, действительно является положительными. Высокий precision — мало ложных тревог.

Вопрос, на который отвечает precision: «Из всех объектов, которые модель пометила как положительные, сколько из них действительно таковы?»

Когда precision критична

Спам-фильтр: если precision низкая — важные письма попадают в спам. Рекомендации: если precision низкая — пользователь видит нерелевантные товары и уходит.

Recall (Sensitivity)

Recall=TPTP+FN\text{Recall} = \frac{TP}{TP + FN}

Recall (полнота) показывает, какую долю реальных положительных объектов модель смогла обнаружить. Высокий recall — мало пропущенных положительных примеров.

Вопрос: «Из всех объектов, которые действительно являются положительными, сколько из них нашла модель?»

Когда recall критична

Медицина: если recall низкий — рак не диагностируется. Цена ложно-отрицательного результата — жизнь. Антифрод: пропущенная мошенническая транзакция — прямые убытки.

F1-Score

F1=2PrecisionRecallPrecision+RecallF_1 = 2 \cdot \frac{\text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}}

F1-score — гармоническое среднее precision и recall. Если одна из метрик низкая — F1 тоже будет низким. Высокий F1 требует хорошего качества по обоим критериям одновременно.

Гармоническое среднее строже арифметического — оно «штрафует» за большую разницу между precision и recall. Поэтому модель с precision=0.9 и recall=0.1 получит F1≈0.18, а не 0.5.

Accuracy

Accuracy=TP+TNTP+TN+FP+FN\text{Accuracy} = \frac{TP + TN}{TP + TN + FP + FN}

Accuracy — доля правильных предсказаний среди всех объектов. Простая и интуитивная метрика, но на несбалансированных данных она обманывает.

Ловушка accuracy

Если мошенников 1%, модель «всегда предсказываю не-мошенник» даёт accuracy 99%. Звучит круто, но бесполезно.

ROC-AUC

AUC=01TPR(FPR)d(FPR)\text{AUC} = \int_0^1 TPR(FPR) \, d(FPR)

ROC-кривая строится по True Positive Rate (= Recall) против False Positive Rate при разных порогах. AUC суммирует качество одним числом: 1.0 = идеально, 0.5 = случайное угадывание.

AUC показывает, насколько хорошо модель различает классы при любом пороге. Это делает его удобным для сравнения моделей, когда порог ещё не выбран.

PR-кривая

AP=n(RnRn1)Pn\text{AP} = \sum_n (R_n - R_{n-1}) \cdot P_n

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)

Интерактивный тренажёр

Двигайте порог классификации и наблюдайте, как меняются метрики в реальном времени. Попробуйте разные сценарии: сбалансированные данные, сильный дисбаланс, медицинскую диагностику.

Загрузка интерактивного виджета...