Оценка качества в задачах классификации — различия между версиями
(→ROC кривая: ссылка на англовики заменена на существующую статьи на русской вики) |
Melmon (обсуждение | вклад) (Обновление конспекта (Часть 1): Добавлена информация про Precison-recall кривую, кое-где исправлены опечатки и формулировки.) |
||
Строка 1: | Строка 1: | ||
= Общие понятия = | = Общие понятия = | ||
− | * '''TP''' — true positive | + | * '''TP''' — true positive: классификатор верно отнёс объект к рассматриваемому классу. |
− | * '''TN''' — true negative | + | * '''TN''' — true negative: классификатор верно утверждает, что объект не принадлежит к рассматриваемому классу. |
− | * '''FP''' — false positive | + | * '''FP''' — false positive: классификатор неверно отнёс объект к рассматриваемому классу. |
− | * '''FN''' — false negative | + | * '''FN''' — false negative: классификатор неверно утверждает, что объект не принадлежит к рассматриваемому классу. |
'''Confusion matrix''' ('''матрица несоответствий''') наглядно показывает суть этих показателей: | '''Confusion matrix''' ('''матрица несоответствий''') наглядно показывает суть этих показателей: | ||
Строка 44: | Строка 44: | ||
| style="color: #22aa22;" | T₃ | | style="color: #22aa22;" | T₃ | ||
|} | |} | ||
− | В этом случае TP, TN, FP и FN считаются относительно некоторого класса (i) следующим образом: | + | В этом случае TP, TN, FP и FN считаются относительно некоторого класса <math>(i)</math> следующим образом: |
: <tex>TP_i = T_i</tex> | : <tex>TP_i = T_i</tex> | ||
: <tex>FP_i = \sum\limits_{c \in Classes} F_{i,c}</tex> | : <tex>FP_i = \sum\limits_{c \in Classes} F_{i,c}</tex> | ||
Строка 51: | Строка 51: | ||
= Простые оценки = | = Простые оценки = | ||
− | * '''Accuracy''' (точность) | + | * '''Accuracy''' — (точность) показывает долю правильных классификаций. Несмотря на очевидность и простоту, является одной из самых малоинформативных оценок классификаторов. |
: <tex>Acc = \dfrac{TP + TN}{TP + TN + FP + FN}</tex> | : <tex>Acc = \dfrac{TP + TN}{TP + TN + FP + FN}</tex> | ||
− | * '''Recall''' (полнота | + | * '''Recall''' — (полнота, '''sensitivity''', '''TPR''' (true positive rate)) показывает отношение верно классифицированных объектов класса к общему числу элементов этого класса. |
: <tex>Recall = \dfrac{TP}{TP + FN}</tex> | : <tex>Recall = \dfrac{TP}{TP + FN}</tex> | ||
− | * '''Precision''' ( | + | * '''Precision''' — (точность, перевод совпадает с accuracy)показывает долю верно классифицированных объектов среди всех объектов, которые к этому классу отнес классификатор. |
: <tex>Prec = \dfrac{TP}{TP + FP}</tex> | : <tex>Prec = \dfrac{TP}{TP + FP}</tex> | ||
− | * '''Specificity''' | + | * '''Specificity''' — показывает отношение верных срабатываний классификатора к общему числу объектов за пределами класса. Иначе говоря, то, насколько часто классификатор правильно '''не''' относит объекты к классу. |
: <tex>Spc = \dfrac{TN}{FP + TN}</tex> | : <tex>Spc = \dfrac{TN}{FP + TN}</tex> | ||
− | * '''Fall-out''' | + | * '''Fall-out''' — ('''FPR''' (false positive rate)) показывает долю неверных срабатываний классификатора к общему числу объектов за пределами класса. Иначе говоря то, насколько часто классификатор ошибается при отнесении того или иного объекта к классу. |
: <tex>FPR = \dfrac{FP}{FP + TN}</tex> | : <tex>FPR = \dfrac{FP}{FP + TN}</tex> | ||
− | + | Ввиду того, что такие оценки никак не учитывают изначальное распределение классов в выборке (что может существенно влиять на полученное значение), также существуют взвешенные варианты этих оценок (в терминах многоклассовой классификации): | |
* '''Precision''' | * '''Precision''' | ||
: <tex>Prec_W = \dfrac{\sum\limits_{i = 1}^{N} \dfrac{T_i P_i}{C_i}}{All}</tex> | : <tex>Prec_W = \dfrac{\sum\limits_{i = 1}^{N} \dfrac{T_i P_i}{C_i}}{All}</tex> | ||
Строка 71: | Строка 71: | ||
[[Файл:ROC.png|thumb|300px|ROC кривая; оранжевым показан идеальный алгоритм, фиолетовым — типичный, а синим — худший]] | [[Файл:ROC.png|thumb|300px|ROC кривая; оранжевым показан идеальный алгоритм, фиолетовым — типичный, а синим — худший]] | ||
− | Для наглядной оценки качества алгоритма применяется [https://ru.wikipedia.org/wiki/ROC-кривая ROC кривая]. Кривая строится на плоскости, определённой | + | Для наглядной оценки качества алгоритма применяется [https://ru.wikipedia.org/wiki/ROC-кривая ROC кривая]. Кривая строится на плоскости, определённой '''TPR''' (по оси ординат) и '''FPR''' (по оси абсцисс). |
− | + | Алгоритм построения кривой: | |
# Запустить классификатор на тестовой выборке | # Запустить классификатор на тестовой выборке | ||
# Отсортировать результаты по уверенности классификатора в принадлежности объекта к классу | # Отсортировать результаты по уверенности классификатора в принадлежности объекта к классу | ||
Строка 83: | Строка 83: | ||
# Построить кривую по точкам | # Построить кривую по точкам | ||
− | Таким образом число точек не превосходит число объектов, | + | Таким образом: |
− | Для численной | + | число точек не превосходит число объектов |
+ | идеальному алгоритму соответствует ROC-кривая, проходящая через точку <math>(0;1)</math> | ||
+ | худшему алгоритму (например, монетке) соответствует прямая TPR = FPR. | ||
+ | |||
+ | Для численной оценки алгоритма по ROC-кривой используется значение площади под ней ('''AUC''', area under curve). Идеальный алгоритм имеет AUC, равный 1, худший — 0,5. | ||
+ | |||
+ | = Precision-Recall кривая = | ||
+ | [[Файл:PR_curve.png|thumb|400px|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₁ score = |
Версия 17:43, 14 июня 2022
Общие понятия
- TP — true positive: классификатор верно отнёс объект к рассматриваемому классу.
- TN — true negative: классификатор верно утверждает, что объект не принадлежит к рассматриваемому классу.
- FP — false positive: классификатор неверно отнёс объект к рассматриваемому классу.
- FN — false negative: классификатор неверно утверждает, что объект не принадлежит к рассматриваемому классу.
Confusion matrix (матрица несоответствий) наглядно показывает суть этих показателей:
Принадлежит классу (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 считаются относительно некоторого класса
следующим образом:Простые оценки
- Accuracy — (точность) показывает долю правильных классификаций. Несмотря на очевидность и простоту, является одной из самых малоинформативных оценок классификаторов.
- Recall — (полнота, sensitivity, TPR (true positive rate)) показывает отношение верно классифицированных объектов класса к общему числу элементов этого класса.
- Precision — (точность, перевод совпадает с accuracy)показывает долю верно классифицированных объектов среди всех объектов, которые к этому классу отнес классификатор.
- Specificity — показывает отношение верных срабатываний классификатора к общему числу объектов за пределами класса. Иначе говоря, то, насколько часто классификатор правильно не относит объекты к классу.
- Fall-out — (FPR (false positive rate)) показывает долю неверных срабатываний классификатора к общему числу объектов за пределами класса. Иначе говоря то, насколько часто классификатор ошибается при отнесении того или иного объекта к классу.
Ввиду того, что такие оценки никак не учитывают изначальное распределение классов в выборке (что может существенно влиять на полученное значение), также существуют взвешенные варианты этих оценок (в терминах многоклассовой классификации):
- Precision
- Recall
ROC кривая
Для наглядной оценки качества алгоритма применяется ROC кривая. Кривая строится на плоскости, определённой TPR (по оси ординат) и FPR (по оси абсцисс).
Алгоритм построения кривой:
- Запустить классификатор на тестовой выборке
- Отсортировать результаты по уверенности классификатора в принадлежности объекта к классу
- Пока не кончились элементы:
- Взять объект с максимальной уверенностью
- Сравнить метку с реальной
- Пересчитать TPR и FPR на взятых объектах
- Поставить точку, если обе характеристики не NaN / ±∞
- Построить кривую по точкам
Таким образом: число точек не превосходит число объектов идеальному алгоритму соответствует ROC-кривая, проходящая через точку
худшему алгоритму (например, монетке) соответствует прямая TPR = FPR.Для численной оценки алгоритма по ROC-кривой используется значение площади под ней (AUC, area under curve). Идеальный алгоритм имеет AUC, равный 1, худший — 0,5.
Precision-Recall кривая
Обоснование: Чувствительность к соотношению классов.
Рассмотрим задачу выделения математических статей из множества научных статей. Допустим, что всего имеется 1.000.100 статей, из которых лишь 100 относятся к математике. Если нам удастся построить алгоритм
, идеально решающий задачу, то его TPR будет равен единице, а FPR — нулю. Рассмотрим теперь "плохой" алгоритм, дающий положительный ответ на 95 математических и 50.000 нематематических статьях. Такой алгоритм совершенно бесполезен, но при этом имеет TPR = 0.95 и FPR = 0.05, что крайне близко к показателям идеального алгоритма. Таким образом, если положительный класс существенно меньше по размеру, то AUC-ROC может давать неадекватную оценку качества работы алгоритма, поскольку измеряет долю неверно принятых объектов относительно общего числа отрицательных. Так, алгоритм , помещающий 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:
F₁ мера так же может быть обобщена до Fβ:
Fβ измеряет эффективность классификатора учитывая recall в β раз более важным чем precision.
Для многоклассовой классификации с учётом изначального распределения по классам имеет смысл рассматривать микро- и макро- F меру: