Изменения

Перейти к: навигация, поиск

Оценка качества в задачах классификации

4854 байта добавлено, 20:30, 18 июня 2022
Обновление конспекта (Часть "Правки")
* '''FN''' — false negative: классификатор неверно утверждает, что объект не принадлежит к рассматриваемому классу.
Здесь про TP, TN, FP, FN и понятия, через них выражающиеся, мы говорим в рамках одного класса бинарной классификации. То есть, в такой системе подразумевается, что реальное количество объектов класса 0 (для бинарного случая 0/1) может выражаться как <math>\text{TP₀ + FN₀ = FP₁ + TN₁}</math>
'''Confusion matrix''' ('''матрица ошибок / несоответствий / потерь, CM''')
— квадратная матрица размера k × k, где <tex>CM_\text{CM}_{t,c}</tex> — число объектов класса <math>t</math>,
которые были квалифицированны как класс <math>c</math>, а <math>k</math> — число классов. Значения ячеек CM могут быть вычислены по формуле:
<tex>\text{CM}(y, \hat{y})_{t,c} =
\displaystyle\sum_{i = 1}^{n}[(y_i = t) ∧ (\hat{y_i} = c)]</tex>, где <tex>y_i</tex> - реальный класс объекта, а <tex>\hat{y_i}</tex> - предсказанный.
|}
В этом случае TP, TN, FP и FN считаются относительно некоторого класса <math>(i)</math> следующим образом:
: <tex>TP_i \text{TP}_i = T_i</tex>: <tex>FP_i \text{FP}_i = \sum\limits_{c \in Classes} F_\text{F}_{i,c}</tex>: <tex>FN_i \text{FN}_i = \sum\limits_{c \in Classes} F_\text{F}_{c,i}</tex>: <tex>TN_i \text{TN}_i = \text{All - TP_i TP}_i - FP_i \text{FP}_i - FN_i\text{FN}_i</tex>
= Простые оценки =
* '''Accuracy''' — (точность) показывает долю правильных классификаций. Несмотря на очевидность и простоту, является одной из самых малоинформативных оценок классификаторов.
: <tex>\text{Acc } = \dfrac{\text{TP + TN}}{\text{TP + TN + FP + FN}}</tex>
* '''Recall''' — (полнота, '''sensitivity''', '''TPR''' (true positive rate)) показывает отношение верно классифицированных объектов класса к общему числу элементов этого класса.
: <tex>\text{Recall } = \dfrac{\text{TP}}{\text{TP + FN}}</tex>
* '''Precision''' — (точность, перевод совпадает с accuracy)показывает долю верно классифицированных объектов среди всех объектов, которые к этому классу отнес классификатор.
: <tex>Prec \text{Precision} = \dfrac{\text{TP}}{\text{TP + FP}}</tex>
* '''Specificity''' — показывает отношение верных срабатываний классификатора к общему числу объектов за пределами класса. Иначе говоря, то, насколько часто классификатор правильно '''не''' относит объекты к классу.
: <tex>Spc \text{Specificity} = \dfrac{\text{TN}}{\text{FP + TN}}</tex>
* '''Fall-out''' — ('''FPR''' (false positive rate)) показывает долю неверных срабатываний классификатора к общему числу объектов за пределами класса. Иначе говоря то, насколько часто классификатор ошибается при отнесении того или иного объекта к классу.
: <tex>\text{FPR } = \dfrac{\text{FP}}{\text{FP + TN}}</tex>
Ввиду того, что такие оценки никак не учитывают изначальное распределение классов в выборке (что может существенно влиять на полученное значение), также существуют взвешенные варианты этих оценок (в терминах многоклассовой классификации):
* '''Precision'''
: <tex>Prec_W \text{Precision}_W = \dfrac{\sum\limits_{i = 1}^{N} \dfrac{T_i P_i}{C_i}}{\text{All}}</tex>
* '''Recall'''
: <tex>Recall_W \text{Recall}_W = \dfrac{\sum\limits_{i = 1}^{N} T_i}{\text{All}}</tex>
= Различные виды агрегации Precision и Recall =
[[Файл:EX1.png|thumb|145px|Линии уровня для среднего арифметического]]
: <texmath>A = \dfrac{1}{2} (\text{precision + recall})</texmath>
* Если precision = 0.05, recall = 1, то A = 0.525
[[Файл:EX2.png|thumb|145px|Линии уровня для минимума]]
: <tex>\text{M = min(precision, recall)}</tex>
* Если precision = 0.05, recall = 1, то M = 0.05
[[Файл:EX3.png|thumb|145px|Линии уровня для F-меры]]
: <tex>\text{F } = \dfrac{2 \cdot \text{precision } \cdot \text{recall}}{\text{precision + recall}}</tex>
* Если precision = 0.05, recall = 1, то F = 0.1.
* Если precision = 0.2, recall = 0.3, то F = 0.24.
Является наиболее точным усреднением, учитывает оба показателя.
 
= F score =
 
Для общей оценки качества классификатора часто используют F₁-меру. Оригинально она вычисляется для позитивного класса случая бинарной классификации, обобщается с помощью приниципа "один против всех" (описан подробнее ниже, для многоклассовой классификации). F₁-мера — среднее гармоническое между precision и recall:
: <tex>\text{F}_1 = \left ( \dfrac{\text{precision}^{-1} + \text{recall}^{-1}}{2} \right )^{-1} = 2 \cdot \dfrac{\text{precision} \cdot \text{recall}}{\text{precision + recall}}</tex>
 
Если брать среднее '''геометрическое''' вместо гармонического, то получится
Индекс Фоулкса–Мэллова (Fowlkes–Mallows index). Менее строгая мера.
: <math> \text{FM} = \sqrt{ \dfrac{\text{TP}}{\text{TP + FP}} \cdot \dfrac{\text{TP}}{\text{TP + FN}} }</math>
 
Среднее гармоническое '''взвешенное''' F<sub>β</sub> (F<sub>1</sub>-мера - частный случай F<sub>β</sub>-меры для β = 1).
F<sub>β</sub> измеряет эффективность классификатора учитывая recall в β раз более важным чем precision:
: <tex>\text{F}_β = (1 + β^2) \dfrac{\text{Precision} \cdot \text{Recall}}{β^2 \cdot \text{Precision + Recall}}</tex>
 
'''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>\text{F} = 2 \cdot \dfrac{\text{precision} \cdot \text{recall}}{\text{precision + recall}}</tex>,
 
где для micro-average precision и recall вычислены из усреднённых TP, FP, FN;
 
для micro-average precision и recall вычислены из усреднённых precision<sub>i</sub>, recall<sub>i</sub>;
 
Усреднённая:
: <tex>\text{F} = \dfrac{1}{N} \sum_{i=0}^{N} {\text{F}_1score_i}</tex>,
где <math>i</math> - индекс класса, а <math>N</math> - количество классов.
= ROC кривая =
Для наглядной оценки качества алгоритма применяется [https://ru.wikipedia.org/wiki/ROC-кривая ROC кривая]. Кривая строится на плоскости, определённой '''TPR''' (по оси ординат) и '''FPR''' (по оси абсцисс).
 
Для построении графика используется мягкая классификация: вместо того, чтобы чётко отнести объект к классу, классификатор возвращает вероятности принадлежности объекта к различным классам.
Алгоритм построения кривой:
Для численной оценки алгоритма по ROC-кривой используется значение площади под ней ('''AUC''', area under curve). Идеальный алгоритм имеет AUC, равный 1, худший — 0,5.
= PrecisionС другой стороны, для построения ROC-Recall кривая =[[Файл:PR_curveкривой не обязательно пересчитывать TPR и FPR.png|thumb|400px|PR кривая]]
Существует '''Обоснование: Чувствительность к соотношению классов.альтернативный алгоритм построения ROC-кривой''' .[[Файл:ROC_Algo_Alt_Ex1.png|thumb|left|210px|График Accuracy для идеальной классификации]] [[Файл:ROC_Ex1.png|thumb|right|170px|ROC-кривая для идеальной классификации]] [[Файл:ROC_Algo_Alt_Ex2.png|thumb|left|210px|График Accuracy для неидеальной классификации]][[Файл:ROC_Ex2.png|thumb|right|170px|ROC-кривая для неидеальной классификации]]
Рассмотрим задачу выделения математических статей из множества научных статей. ДопустимНапомню, что всего имеется 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) кривая.''' Избавиться от указанной проблемы с несбалансированными классами можнографики accuracy, перейдя от ROCцветом указан реальный класс объекта: красный -кривой к PRположительный, синий -кривойотрицательный). Она определяется аналогично ROC-кривой, только Отсортируем наши объекты по осям откладываются не FPR и TPRвозрастанию уверенности классификатора в принадлежности объекта к положительному классу. Допустим, а полнота что объекты находятся на равном (по оси абсцисс) и точность (по оси ординатединичном)расстоянии друг от друга. Критерием качества семейства алгоритмов выступает '''площадь под PR-кривой''' (англ. '''Area Under the Curve — AUC-PR''')
Начнём перебирать "границу раздела": если граница в нуле - мы решаем относить все объекты к положительному классу, тогда accuracy = 1/2.
Последовательно сдвигаем границу по единичке вправо:
* если реальный класс объекта, оказавшегося теперь по другую сторону границы - отрицательный, то accuracy увеличивается, так как мы "угадали" класс объекта, решив относить объекты левее границы к отрицательному классу;
* если же реальный класс объекта - положительный, accuracy уменьшается (по той же логике)
= F score =Таким образом, на графиках слева, видно, что:* на графике идеальной классификации точность в 100% достигается, неидеальной - нет;* площадь под графиком accuracy идеального классификатора больше, чем аналогичная площадь для неидеального.
Для общей оценки качества классификатора часто используют F₁Заметим, что, повернув график на 45 градусов, мы получим ROC-меру — среднее гармоническое между precision и recall:: <tex>F_1 = \left кривые для соответствующих классификаторов ( \dfrac{Prec^{графикам accuracy слева соответствуют ROC-1} + Recall^{-1}}{2} \right кривые справа)^{-1} = 2 \cdot \dfrac{Prec \cdot Recall}{Prec + Recall}</tex>.
Если брать среднее '''геометрическое''' вместо гармоническогоТаким образом, то получитсяальтернативный алгоритм построения ROC-кривой без пересчета TPR и FPR выглядит так:# сортируем объекты по уверенности классификатора в их принадлежности к положительному классуИндекс Фоулкса–Мэллова # начинаем в точке (Fowlkes–Mallows index0, 0). Менее строгая мера. # последовательно продолжаем кривую вверх: <math> FM = \sqrt{ \dfrac{TP}{TP+FP} \cdot \dfrac{TP}{TP+FN} }</math>#* для каждого "отрицательного" объекта вверх#* для каждого "положительного" - вправо.
Среднее гармоническое '''взвешенное''' F<sub>β</sub> (F<sub>1</sub>= Precision-мера - частный случай F<sub>β</sub>-меры для β Recall кривая = 1). F<sub>β</sub> измеряет эффективность классификатора учитывая recall в β раз более важным чем precision[[Файл:: <tex>F_β = (1 + β^2) \dfrac{Prec \cdot Recall}{β^2 \cdot Prec + Recall}</tex>PR_curve.png|thumb|400px|PR кривая]]
'''F-мера для многоклассовой классификацииОбоснование: Чувствительность к соотношению классов.'''[[Файл:F_scores.png|thumb|400px|Принцип усреднения различных F-мер для нескольких классов]][[Файл:F_scores_сomputing.png|thumb|left|150px|Вычисление TP, FP, FN для многоклассовой классификации]]
Для вычисления F-меры Рассмотрим задачу выделения математических статей из множества научных статей. Допустим, что всего имеется 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.
Таким образом, в зависимости от этапа вычисления, на котором производится усреднение, можно вычислить micro'''Precison-average, macro-average и average F-меры recall (логика вычисления изображена на схеме справаPR)кривая.Микро- и макро-:: <tex>F = 2 * \dfrac{\text{precision * recall}}{\text{precision + recall}}</tex>, '''
где для microИзбавиться от указанной проблемы с несбалансированными классами можно, перейдя от ROC-кривой к PR-кривой. Она определяется аналогично ROC-average precision и recall вычислены из усреднённых TPкривой, FP, FN; для micro-average precision только по осям откладываются не FPR и recall вычислены из усреднённых precision<sub>i</sub>, recall<sub>i</sub>; Усреднённая:: <tex>F = \frac{1}{N} \sum_{i=0}^{N} {F_1score_i}</tex>,где <math>i</math> - индекс классаTPR, а <math>N</math> полнота (по оси абсцисс) и точность (по оси ординат). Критерием качества семейства алгоритмов выступает '''площадь под PR- количество классовкривой''' (англ.'''Area Under the Curve — AUC-PR''')
18
правок

Навигация