Какие метрики используются для оценки классификатора текста?

Оценка качества классификатора текста — ключевой этап при построении, тестировании и внедрении моделей в задачах 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=2PrecisionRecallPrecision + 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=1Ni=1Nj=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=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 (идеальная классификация).

Примеры с 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 подбираются в зависимости от задачи, структуры данных, бизнес-приоритетов и формата выходов модели (классы или вероятности). Выбор правильной метрики критически важен для реальной оценки полезности модели.