Оценка качества в задачах классификации — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
м (Различные виды агрегации Precision и Recall: Добавила графики линий уровня)
(F₁ score: Обновление конспекта (Часть 4?) Подробнее про F-меры (6 видов))
Строка 145: Строка 145:
  
  
= F₁ score =
+
= F score =
Для общей оценки качества классификатора часто используют F₁ меру — среднее гармоническое между precision и recall:
+
 
 +
Для общей оценки качества классификатора часто используют F₁-меру — среднее гармоническое между precision и recall:
 
: <tex>F_1 = \left ( \dfrac{Prec^{-1} + Recall^{-1}}{2} \right )^{-1} = 2 \cdot \dfrac{Prec \cdot Recall}{Prec + Recall}</tex>
 
: <tex>F_1 = \left ( \dfrac{Prec^{-1} + Recall^{-1}}{2} \right )^{-1} = 2 \cdot \dfrac{Prec \cdot Recall}{Prec + Recall}</tex>
  
F₁ мера так же может быть обобщена до F<sub>β</sub>:
+
Если брать среднее '''геометрическое''' вместо гармонического, то получится
 +
Индекс Фоулкса–Мэллова (Fowlkes–Mallows index). Менее строгая мера.
 +
: <math> FM = \sqrt{ \dfrac{TP}{TP+FP} \cdot \dfrac{TP}{TP+FN} }</math>
 +
 
 +
Среднее гармоническое '''взвешенное''' F<sub>β</sub> (F<sub>1</sub>-мера - частный случай F<sub>β</sub>-меры для β = 1).
 +
F<sub>β</sub> измеряет эффективность классификатора учитывая recall в β раз более важным чем precision:
 
: <tex>F_β = (1 + β^2) \dfrac{Prec \cdot Recall}{β^2 \cdot Prec + Recall}</tex>
 
: <tex>F_β = (1 + β^2) \dfrac{Prec \cdot Recall}{β^2 \cdot Prec + Recall}</tex>
  
F<sub>β</sub> измеряет эффективность классификатора учитывая recall в β раз более важным чем precision.
+
'''F-мера для многоклассовой классификации'''
 +
[[Файл:F_scores.png|thumb|400px|Принцип усреднения различных F-мер для нескольких классов]]
 +
[[Файл:F_scores_сomputing.png|thumb|left|150px|Вычисление TP, FP, FN для многоклассовой классификации]]
 +
 
 +
Для вычисления F-меры (и других) метрик в рамках многоклассовой классификации используется подход "один против всех": каждый класс ровно один раз становится «положительным»,
 +
а остальные — отрицательным (пример вычисления изображён на матрице).
 +
 
 +
Таким образом, в зависимости от этапа вычисления, на котором производится усреднение, можно вычислить micro-average, macro-average и average F-меры (логика вычисления изображена на схеме справа).
 +
Микро- и макро-:
 +
: <tex>F = 2 * \dfrac{\text{precision * recall}}{\text{precision + recall}}</tex>,
 +
 
 +
где для micro-average precision и recall вычислены из усреднённых TP, FP, FN;
 +
 
 +
для micro-average precision и recall вычислены из усреднённых precision<sub>i</sub>, recall<sub>i</sub>;
  
Для многоклассовой классификации с учётом изначального распределения по классам имеет смысл рассматривать микро- и макро- F меру:
+
Усреднённая:
: <tex>micro F_β = \sum\limits_{c \in Classes} \dfrac{P_c F_β(c)}{All}</tex>
+
: <tex>F = \frac{1}{N} \sum_{i=0}^{N} {F_1score_i}</tex>,
: <tex>macro F_β = (1 + β^2) \dfrac{Prec_W \cdot Recall_W}{β^2 \cdot Prec_W + Recall_W}</tex>
+
где <math>i</math> - индекс класса, а <math>N</math> - количество классов.

Версия 17:46, 17 июня 2022

Общие понятия

  • TP — true positive: классификатор верно отнёс объект к рассматриваемому классу.
  • TN — true negative: классификатор верно утверждает, что объект не принадлежит к рассматриваемому классу.
  • FP — false positive: классификатор неверно отнёс объект к рассматриваемому классу.
  • FN — false negative: классификатор неверно утверждает, что объект не принадлежит к рассматриваемому классу.

Здесь про TP, TN, FP, FN и понятия, через них выражающиеся, мы говорим в рамках одного класса бинарной классификации. То есть, в такой системе подразумевается, что реальное количество объектов класса 0 (для бинарного случая 0/1) может выражаться как [math]TP₀ + FN₀ = FP₁ + TN₁[/math]

Confusion matrix (матрица ошибок / несоответствий / потерь, CM) — квадратная матрица размера k × k, где [math]CM_{t,c}[/math] — число объектов класса [math]t[/math], которые были квалифицированны как класс [math]c[/math], а [math]k[/math] — число классов. Значения ячеек CM могут быть вычислены по формуле: [math]CM(y, \hat{y})_{t,c} = \displaystyle\sum_{i = 1}^{n}[(y_i = t) ∧ (\hat{y_i} = c)][/math], где [math]y_i[/math] - реальный класс объекта, а [math]\hat{y_i}[/math] - предсказанный.

Для бинарного случая:

Принадлежит классу (P) Не принадлежит классу (N)
Предсказана принадлежность классу TP FP
Предсказано отсутствие принадлежности к классу FN TN

Для многоклассовой классификации матрица несоответствий строится по тому же принципу:

Предсказанный класс Класс 1 (C₁) Класс 2 (C₂) Класс 3 (C₃)
1 (P₁) T₁ F₁₂ F₁₃
2 (P₂) F₂₁ T₂ F₂₃
3 (P₃) F₃₁ F₃₂ T₃

В этом случае TP, TN, FP и FN считаются относительно некоторого класса [math](i)[/math] следующим образом:

[math]TP_i = T_i[/math]
[math]FP_i = \sum\limits_{c \in Classes} F_{i,c}[/math]
[math]FN_i = \sum\limits_{c \in Classes} F_{c,i}[/math]
[math]TN_i = All - TP_i - FP_i - FN_i[/math]

Простые оценки

  • Accuracy — (точность) показывает долю правильных классификаций. Несмотря на очевидность и простоту, является одной из самых малоинформативных оценок классификаторов.
[math]Acc = \dfrac{TP + TN}{TP + TN + FP + FN}[/math]
  • Recall — (полнота, sensitivity, TPR (true positive rate)) показывает отношение верно классифицированных объектов класса к общему числу элементов этого класса.
[math]Recall = \dfrac{TP}{TP + FN}[/math]
  • Precision — (точность, перевод совпадает с accuracy)показывает долю верно классифицированных объектов среди всех объектов, которые к этому классу отнес классификатор.
[math]Prec = \dfrac{TP}{TP + FP}[/math]
  • Specificity — показывает отношение верных срабатываний классификатора к общему числу объектов за пределами класса. Иначе говоря, то, насколько часто классификатор правильно не относит объекты к классу.
[math]Spc = \dfrac{TN}{FP + TN}[/math]
  • Fall-out — (FPR (false positive rate)) показывает долю неверных срабатываний классификатора к общему числу объектов за пределами класса. Иначе говоря то, насколько часто классификатор ошибается при отнесении того или иного объекта к классу.
[math]FPR = \dfrac{FP}{FP + TN}[/math]

Ввиду того, что такие оценки никак не учитывают изначальное распределение классов в выборке (что может существенно влиять на полученное значение), также существуют взвешенные варианты этих оценок (в терминах многоклассовой классификации):

  • Precision
[math]Prec_W = \dfrac{\sum\limits_{i = 1}^{N} \dfrac{T_i P_i}{C_i}}{All}[/math]
  • Recall
[math]Recall_W = \dfrac{\sum\limits_{i = 1}^{N} T_i}{All}[/math]

Различные виды агрегации Precision и Recall

Арифметическое среднее:

Линии уровня для среднего арифметического
[math]A = \dfrac{1}{2} (precision + recall)[/math]
  • Если precision = 0.05, recall = 1, то A = 0.525
  • Если precision = 0.525, recall = 0.525, то A = 0.525.
  • Первый классификатор — константный, не имеет смысла.
  • Второй классификатор показывает неплохое качество.

Таким образом, взятие среднего арифметического не является показательным.

Минимум:

Линии уровня для минимума
[math]M = min(precision, recall)[/math]
  • Если precision = 0.05, recall = 1, то M = 0.05
  • Если precision = 0.525, recall = 0.525, то M = 0.525.

То есть, довольно неплохо отражает качество классификатора, не завышая его.

  • Если precision = 0.2, recall = 1, то M = 0.2.
  • Если precision = 0.2, recall = 0.3, то M = 0.2.

Но не отличает классификаторы с разными неминимальными показателями.

Гармоническое среднее, или F-мера:

Линии уровня для F-меры
[math]F = \dfrac{2 ∗ precision ∗ recall}{precision + recall}[/math]
  • Если precision = 0.05, recall = 1, то F = 0.1.
  • Если precision = 0.525, recall = 0.525, то F = 0.525.
  • Если precision = 0.2, recall = 1, то F = 0.33.
  • Если precision = 0.2, recall = 0.3, то F = 0.24.

Является наиболее точным усреднением, учитывает оба показателя.

ROC кривая

ROC кривая; оранжевым показан идеальный алгоритм, фиолетовым — типичный, а синим — худший

Для наглядной оценки качества алгоритма применяется ROC кривая. Кривая строится на плоскости, определённой TPR (по оси ординат) и FPR (по оси абсцисс).

Алгоритм построения кривой:

  1. Запустить классификатор на тестовой выборке
  2. Отсортировать результаты по уверенности классификатора в принадлежности объекта к классу
  3. Пока не кончились элементы:
    1. Взять объект с максимальной уверенностью
    2. Сравнить метку с реальной
    3. Пересчитать TPR и FPR на взятых объектах
    4. Поставить точку, если обе характеристики не NaN / ±∞
  4. Построить кривую по точкам

Таким образом: число точек не превосходит число объектов идеальному алгоритму соответствует ROC-кривая, проходящая через точку [math](0;1)[/math] худшему алгоритму (например, монетке) соответствует прямая TPR = FPR.

Для численной оценки алгоритма по ROC-кривой используется значение площади под ней (AUC, area under curve). Идеальный алгоритм имеет AUC, равный 1, худший — 0,5.

Precision-Recall кривая

PR кривая

Обоснование: Чувствительность к соотношению классов.

Рассмотрим задачу выделения математических статей из множества научных статей. Допустим, что всего имеется 1.000.100 статей, из которых лишь 100 относятся к математике. Если нам удастся построить алгоритм [math]a(x)[/math], идеально решающий задачу, то его TPR будет равен единице, а FPR — нулю. Рассмотрим теперь "плохой" алгоритм, дающий положительный ответ на 95 математических и 50.000 нематематических статьях. Такой алгоритм совершенно бесполезен, но при этом имеет TPR = 0.95 и FPR = 0.05, что крайне близко к показателям идеального алгоритма. Таким образом, если положительный класс существенно меньше по размеру, то AUC-ROC может давать неадекватную оценку качества работы алгоритма, поскольку измеряет долю неверно принятых объектов относительно общего числа отрицательных. Так, алгоритм [math]b(x)[/math], помещающий 100 релевантных документов на позиции с 50.001-й по 50.101-ю, будет иметь AUC-ROC 0.95.

Precison-recall (PR) кривая. Избавиться от указанной проблемы с несбалансированными классами можно, перейдя от ROC-кривой к PR-кривой. Она определяется аналогично ROC-кривой, только по осям откладываются не FPR и TPR, а полнота (по оси абсцисс) и точность (по оси ординат). Критерием качества семейства алгоритмов выступает площадь под PR-кривой (англ. Area Under the Curve — AUC-PR)


F score

Для общей оценки качества классификатора часто используют F₁-меру — среднее гармоническое между precision и recall:

[math]F_1 = \left ( \dfrac{Prec^{-1} + Recall^{-1}}{2} \right )^{-1} = 2 \cdot \dfrac{Prec \cdot Recall}{Prec + Recall}[/math]

Если брать среднее геометрическое вместо гармонического, то получится Индекс Фоулкса–Мэллова (Fowlkes–Mallows index). Менее строгая мера.

[math] FM = \sqrt{ \dfrac{TP}{TP+FP} \cdot \dfrac{TP}{TP+FN} }[/math]

Среднее гармоническое взвешенное Fβ (F1-мера - частный случай Fβ-меры для β = 1). Fβ измеряет эффективность классификатора учитывая recall в β раз более важным чем precision:

[math]F_β = (1 + β^2) \dfrac{Prec \cdot Recall}{β^2 \cdot Prec + Recall}[/math]

F-мера для многоклассовой классификации

Принцип усреднения различных F-мер для нескольких классов
Вычисление TP, FP, FN для многоклассовой классификации

Для вычисления F-меры (и других) метрик в рамках многоклассовой классификации используется подход "один против всех": каждый класс ровно один раз становится «положительным», а остальные — отрицательным (пример вычисления изображён на матрице).

Таким образом, в зависимости от этапа вычисления, на котором производится усреднение, можно вычислить micro-average, macro-average и average F-меры (логика вычисления изображена на схеме справа). Микро- и макро-:

[math]F = 2 * \dfrac{\text{precision * recall}}{\text{precision + recall}}[/math],

где для micro-average precision и recall вычислены из усреднённых TP, FP, FN;

для micro-average precision и recall вычислены из усреднённых precisioni, recalli;

Усреднённая:

[math]F = \frac{1}{N} \sum_{i=0}^{N} {F_1score_i}[/math],

где [math]i[/math] - индекс класса, а [math]N[/math] - количество классов.