Какие метрики знаешь для дисбаланса классов


**В задачах с дисбалансом классов (когда один класс встречается гораздо чаще другого, например, в задачах оттока, мошенничества, дефолтов), стандартные метрики вроде accuracy (точности) становятся бесполезными. Например, если 95% объектов — класс 0, модель, всегда предсказывающая 0, даст 95% accuracy, но совершенно не решает задачу.

Поэтому используются специальные метрики, которые лучше отражают поведение модели при наличии редкого класса. Ниже представлены ключевые метрики, их формулы и особенности.

🔹 Базовые метрики, чувствительные к дисбалансу

1. Precision (точность)

Доля истинных положительных среди всех предсказанных положительных:

Precision=TPTP+FP\\text{Precision} = \\frac{TP}{TP + FP}
  • Показывает, насколько достоверны положительные предсказания.

  • Важна, когда ложноположительные опасны (например, спам-фильтры, где нельзя терять хорошие письма).

2. Recall (полнота)

Доля истинных положительных, которые модель нашла:

Recall=TPTP+FN\\text{Recall} = \\frac{TP}{TP + FN}
  • Отвечает на вопрос: "Сколько из всех настоящих положительных модель действительно предсказала?"

  • Важна, когда важно не упустить ни одного случая (например, диагностика рака, детекция мошенничества).

3. F1-score

Гармоническое среднее Precision и Recall:

F1=2PrecisionRecallPrecision+RecallF1 = 2 \\cdot \\frac{\\text{Precision} \\cdot \\text{Recall}}{\\text{Precision} + \\text{Recall}}
  • Учитывает и точность, и полноту.

  • Хорош для обобщённой оценки при дисбалансе, особенно если классы асимметричны.

🔹 Метрики, основанные на вероятностях и ранжировании

4. ROC AUC (Area Under Receiver Operating Characteristic Curve)

  • Построение ROC-кривой: откладываются значения TPR (Recall) против FPR при различных порогах.

  • AUC (площадь под кривой):

    • 1.0 — идеальная модель;

    • 0.5 — случайная модель;

    • < 0.5 — хуже случайной.

TPR=TPTP+FN,FPR=FPFP+TN\\text{TPR} = \\frac{TP}{TP + FN}, \\quad \\text{FPR} = \\frac{FP}{FP + TN}
  • ROC AUC устойчива к дисбалансу классов, потому что нормализует на размер каждого класса.

5. PR AUC (Area Under Precision-Recall Curve)

  • Строится график: Precision vs. Recall.

  • Особенно полезна, когда положительный класс редкий.

  • Более чувствительна к дисбалансу, чем ROC AUC.

  • PR AUC особенно важна, если нужно оценить модель по способности обнаруживать редкий класс.

🔹 Метрики на уровне топ-N (для задач ранжирования)

6. Precision@K / Recall@K

  • Precision@K: точность среди топ-K объектов с наибольшей вероятностью положительного класса.

  • Recall@K: доля всех положительных, найденных в топ-K.

Используется в задачах, где можно воздействовать только на ограниченное количество объектов (например, удержание 10 000 клиентов из миллиона).

🔹 Метрики, специфичные для бизнес-задач

7. Lift / Gain

  • Lift@K: насколько лучше модель ранжирует, чем случайное распределение.

  • Вычисляется как отношение откликов в выбранной группе (например, топ-5%) к среднему отклику по всей популяции.

Lift@K=Precision@KBase rate\\text{Lift@K} = \\frac{\\text{Precision@K}}{\\text{Base rate}}
  • Применяется в маркетинге и удержании.

8. Qini-кривая и Qini-коэффициент

  • Используется в uplift-моделировании, но также может оценивать, насколько хорошо модель находит тех, на кого стоит воздействовать.

🔹 Матрица ошибок (confusion matrix)

Для оценки любых метрик важно понимать базовые величины:

Actual Positive Actual Negative
Predicted Positive True Positive (TP) False Positive (FP)
--- --- ---
Predicted Negative False Negative (FN) True Negative (TN)
--- --- ---

🔹 Matthews Correlation Coefficient (MCC)

Устойчивая метрика к дисбалансу. Учитывает все элементы confusion matrix:

MCC=TPTNFPFN(TP+FP)(TP+FN)(TN+FP)(TN+FN)\\text{MCC} = \\frac{TP \\cdot TN - FP \\cdot FN}{\\sqrt{(TP+FP)(TP+FN)(TN+FP)(TN+FN)}}
  • Значение от -1 до 1:

    • 1 — идеальная модель;

    • 0 — случайные предсказания;

    • -1 — противоположные предсказания.

Используется в биоинформатике и задачах с сильным дисбалансом.

🔹 Balanced Accuracy

Среднее арифметическое между recall'ами по каждому классу:

Balanced Accuracy=12(TPTP+FN+TNTN+FP)\\text{Balanced Accuracy} = \\frac{1}{2} \\left( \\frac{TP}{TP + FN} + \\frac{TN}{TN + FP} \\right)
  • В отличие от обычной accuracy, даёт равный вес каждому классу.

🔹 Cohen's Kappa

Показывает, насколько предсказания лучше случайных, с учётом несбалансированности:

κ=po−pe1−pe\kappa = \frac{p_o - p_e}{1 - p_e}

  • pop_o — доля совпадений;

  • pep_e — ожидаемая доля совпадений при случайном распределении.

🔹 Logarithmic Loss (LogLoss, cross-entropy)

LogLoss=1Ni=1N\[yilog(pi)+(1yi)log(1pi)\]\\text{LogLoss} = -\\frac{1}{N} \\sum_{i=1}^N \\left\[ y_i \\cdot \\log(p_i) + (1 - y_i) \\cdot \\log(1 - p_i) \\right\]
  • Наказывает за уверенные, но ошибочные предсказания;

  • Чем меньше, тем лучше;

  • Используется, когда требуется вероятностный output модели.

🔹 Fβ-score

Модифицированная версия F1, где β — параметр, определяющий приоритет:

=(1+β2)PrecisionRecall(β2Precision)+RecallF_\\beta = (1 + \\beta^2) \\cdot \\frac{\\text{Precision} \\cdot \\text{Recall}}{(\\beta^2 \\cdot \\text{Precision}) + \\text{Recall}}
  • Если β > 1: приоритет Recall (важно не упустить);

  • Если β < 1: приоритет Precision (важно не ошибиться).

🔹 Ключевые принципы выбора метрик

  • Если задача — найти максимум положительных объектов среди ограниченных ресурсов → Precision@K, Recall@K, Lift.

  • Если важно не упустить ни одного случая → Recall, F2.

  • Если важно избежать ложных тревог → Precision.

  • Если нужно сбалансировать обе стороны → F1, AUC-PR.

  • Если нужен обобщённый балл с учётом всех классов → MCC, Balanced Accuracy.

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