Какие метрики знаешь для дисбаланса классов
**В задачах с дисбалансом классов (когда один класс встречается гораздо чаще другого, например, в задачах оттока, мошенничества, дефолтов), стандартные метрики вроде 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=2⋅Precision⋅RecallPrecision+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=TP⋅TN−FP⋅FN(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=−1N∑i=1N\[yi⋅log(pi)+(1−yi)⋅log(1−pi)\]\\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, где β — параметр, определяющий приоритет:
Fβ=(1+β2)⋅Precision⋅Recall(β2⋅Precision)+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.
В задачах с дисбалансом важно не просто выбирать подходящую метрику, но и понимать пороговое значение, при котором модель начинает действовать. Это позволяет не просто получить красивую метрику, но и адаптировать модель под реальные бизнес-задачи.