Какие метрики используются для оценки классификатора текста?
Оценка качества классификатора текста — ключевой этап при построении, тестировании и внедрении моделей в задачах NLP. Выбор метрик зависит от специфики задачи: бинарная или многоклассовая классификация, сбалансированные или несбалансированные классы, наличие soft-прогнозов и бизнес-требований. Метрики позволяют понять, насколько модель выполняет свою функцию, помогает выбирать между разными моделями и настраивать гиперпараметры.
1. Accuracy (точность классификации)
Определение:
Accuracy=Число верных предсказанийОбщее число примеров\text{Accuracy} = \frac{\text{Число верных предсказаний}}{\text{Общее число примеров}}
Это доля правильно классифицированных объектов. Хорошо работает при сбалансированных классах, но может вводить в заблуждение при дисбалансе.
Пример:
Если в 1000 письмах только 10 — спам, и модель всегда предсказывает «не спам», accuracy будет 99%, хотя модель бесполезна.
2. Precision (точность) и Recall (полнота)
Precision (точность):
Precision=TPTP + FP\\text{Precision} = \\frac{\\text{TP}}{\\text{TP + FP}}
Показывает, какую долю из предсказанных положительных классов модель действительно предсказала верно.
Recall (полнота):
Recall=TPTP + FN\\text{Recall} = \\frac{\\text{TP}}{\\text{TP + FN}}
Показывает, какую долю объектов нужного класса модель действительно нашла.
-
TP — true positives (истинно положительные),
-
FP — false positives (ложно положительные),
-
FN — false negatives (ложно отрицательные).
Применимость:
-
Precision важен, когда цена ложного срабатывания высока (например, классификация писем как спам).
-
Recall важен, когда важно не упустить важные случаи (например, детекция болезней в медицине).
3. F1-Score
Определение:
F1=2⋅Precision⋅RecallPrecision + Recall\\text{F1} = 2 \\cdot \\frac{\\text{Precision} \\cdot \\text{Recall}}{\\text{Precision + Recall}}
F1 — гармоническое среднее precision и recall. Используется, когда нужен баланс между полнотой и точностью, особенно в задачах с несбалансированными классами.
4. Confusion Matrix (матрица ошибок)
Матрица ошибок показывает, как классификатор путает классы. Строится в виде таблицы, где строки — реальные классы, столбцы — предсказанные. Применяется как при бинарной, так и при многоклассовой классификации.
Предсказано: Положит. | Предсказано: Отрицат. | |
---|---|---|
Реально: Положит. | True Positive (TP) | False Negative (FN) |
--- | --- | --- |
Реально: Отрицат. | False Positive (FP) | True Negative (TN) |
--- | --- | --- |
Для многоклассовой классификации расширяется на n×nn \times n, где nn — число классов.
5. ROC-AUC (Receiver Operating Characteristic - Area Under Curve)
-
График ROC отражает соотношение между True Positive Rate (TPR) и False Positive Rate (FPR).
-
AUC (площадь под ROC-кривой) отражает способность модели отделять положительные примеры от отрицательных.
TPR=TPTP + FN,FPR=FPFP + TN\\text{TPR} = \\frac{\\text{TP}}{\\text{TP + FN}}, \\quad \\text{FPR} = \\frac{\\text{FP}}{\\text{FP + TN}}
Интерпретация:
-
AUC = 1 → идеальный классификатор.
-
AUC = 0.5 → случайный выбор.
-
AUC < 0.5 → модель хуже случайной.
AUC полезен, если модель возвращает вероятности (soft prediction), и мы хотим оценить производительность при разных порогах.
6. PR AUC (Precision-Recall AUC)
Альтернатива ROC-AUC, особенно при сильно несбалансированных данных. ROC может вводить в заблуждение, если классы очень дисбалансированы, тогда PR AUC показывает, насколько хорошо модель справляется с обнаружением редкого класса.
7. Log Loss (Logarithmic Loss)
Применяется для моделей, возвращающих вероятности. Чем ближе предсказанные вероятности к истинным меткам, тем меньше log loss.
LogLoss=−1N∑i=1N∑j=1Myijlog(pij)\\text{LogLoss} = -\\frac{1}{N} \\sum_{i=1}^{N} \\sum_{j=1}^{M} y_{ij} \\log(p_{ij})
-
yijy_{ij} — бинарный индикатор принадлежности i-го примера классу j.
-
pijp_{ij} — предсказанная вероятность этого события.
Log Loss чувствителен к переуверенным неправильным предсказаниям.
8. Top-K Accuracy
Для задач многоклассовой классификации (особенно в задачах с большим числом классов, как в классификации новостей, товаров или intent’ов), используется Top-k accuracy, которая измеряет, входит ли правильный класс в топ-k вероятных предсказаний.
-
Top-1: обычная accuracy.
-
Top-3: правильный класс входит в тройку лучших по вероятности.
9. Macro / Micro / Weighted метрики
В многоклассовых задачах рассчитывают precision, recall, f1 для каждого класса, затем усредняют:
-
Macro average — усреднение по всем классам без учета их частоты.
-
Micro average — усреднение с учетом всех TP, FP, FN (по сути, общая точность).
-
Weighted average — среднее с весами по числу объектов каждого класса.
Когда применять:
-
Macro: если важны все классы одинаково, независимо от частоты.
-
Micro: если классы несбалансированы и интересует общая производительность.
-
Weighted: компромисс между двумя подходами.
10. Matthews Correlation Coefficient (MCC)
Особенно полезен при сильной несбалансированности:
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 (идеальная классификация).
Примеры с Python (scikit-learn)
from sklearn.metrics import classification_report, confusion_matrix, accuracy_score, roc_auc_score
y_true = \['spam', 'ham', 'spam', 'spam', 'ham'\]
y_pred = \['spam', 'spam', 'spam', 'ham', 'ham'\]
print(confusion_matrix(y_true, y_pred))
print(classification_report(y_true, y_pred))
print("Accuracy:", accuracy_score(y_true, y_pred))
Выбор метрик в зависимости от задачи
Задача | Рекомендуемые метрики |
---|---|
Бинарная классификация, сбалансированные классы | Accuracy, F1, ROC AUC |
--- | --- |
Бинарная, дисбаланс классов | Precision, Recall, F1, PR AUC |
--- | --- |
Многоклассовая классификация | Macro / Weighted F1, Confusion matrix |
--- | --- |
Многоуровневая классификация (multi-label) | hamming loss, macro F1 |
--- | --- |
Вероятностные модели | Log Loss, ROC AUC |
--- | --- |
Таким образом, метрики классификации в NLP подбираются в зависимости от задачи, структуры данных, бизнес-приоритетов и формата выходов модели (классы или вероятности). Выбор правильной метрики критически важен для реальной оценки полезности модели.