Перейти к основному содержимому

Специальные меры качества для бинарной классификации

В случае бинарной классификации y{+1,1}y\in\{+1,-1\} классы называются положительными (y=+1)(y=+1) и отрицательными (y=1)(y=-1). Положительным классом обычно обозначают более редкий целевой класс, а отрицательным - более частый неосновной. Например, при распознавании определённой болезни пациентов по симптомам, положительным классом будет наличие заболевания, а отрицательным - отсутствие. Матрица ошибок будет размера 2×22 \times 2 и каждый элемент этой матрицы имеет своё название:

y^=+1\hat{y}=+1y^=1\hat{y}=-1
y=+1y=+1TP (true positives)FN (false negatives)
y=1y=-1FP (false positives)TN (true negatives)

Второе слово в названии отвечает за прогноз, а первое - за его корректность. Например, ложно-положительные объекты (FP штук) - это объекты, ошибочно предсказанные как положительные, в то время как истинный класс был отрицательный. А ложно-отрицательные объекты (FN) были предсказаны как отрицательные, в то время как на самом деле они принадлежали положительному классу.

Как по значениям TP,TN,FP, FN вычислить точность и частоту ошибок классификации?
accuracy=TP+TNN=TP+TNTP+TN+FP+FN\text{accuracy}=\frac{TP+TN}{N}=\frac{TP+TN}{TP+TN+FP+FN}error rate=FP+FNN=FP+FNTP+TN+FP+FN\text{error rate}=\frac{FP+FN}{N}=\frac{FP+FN}{TP+TN+FP+FN}

Меры качества для несбалансированных классов

Точность и полнота

В случае несбалансированных классов (unbalanced classes), когда положительный класс встречается существенно реже, чем отрицательный, по этим мерам сложно судить об адекватности модели. Например, если положительный класс встречается в 1% случаев, а отрицательный - в оставшихся 99%, то константный прогноз, всегда назначающий отрицательный класс, будет показывать точность 99%, а частоту ошибок - всего 1%. Однако это никак не будет свидетельствовать об адекватности модели, поскольку она даже не пытается выделить положительный класс. Поэтому для таких ситуаций используются специальные меры качества - точность (precision, не путать с accuracy!) и полнота (recall):

precision=TPN^+=TPTP+FP\text{precision}=\frac{TP}{\hat{N}_+}=\frac{TP}{TP+FP} recall=TPN+=TPTP+FN\text{recall}=\frac{TP}{N_+}=\frac{TP}{TP+FN}

где мы использовали обозначения:

  • N+=TP+FNN_+=TP+FN - общее число положительный объектов.

  • N^+=TP+FP\hat{N}_+=TP+FP - общее число объектов, предсказанных как положительные.

Precision показывает долю верно-положительных объектов среди всех объектов, предсказанных как положительные. Например, при классификации болезни - это доля действительно больных пациентов среди всех предсказанных как больные. Precision важен, если мы хотим минимизировать число ложных срабатываний классификатора (предсказаний болезни для здоровых).

Recall показывает долю верно-положительных объектов среди всех объектов, в действительности принадлежащих положительному классу. В примере выше recall важен, если мы хотим обнаружить всех больных пациентов, пусть и с некоторой долей ложных срабатываний.

Таким образом, precision и recall преследуют во многом противоречивые цели.

F-мера

На практике важен и precision, и recall, поэтому считают их среднее гармоническое, называемое F-мерой (F-measure, F1F_1-score):

F1-score=1121Precision+121Recall=2Precision×RecallPrecision+RecallF_1\text{-score}=\frac{1}{\frac{1}{2}\frac{1}{\text{Precision}}+\frac{1}{2}\frac{1}{\text{Recall}}}=\frac{2\text{Precision}\times\text{Recall}}{\text{Precision}+\text{Recall}}

Преимущество F-меры по сравнению с обычным усреднением заключается в том, что F-мера будет штрафовать как низкие значения precision, так и низкие значения recall одновременно. В частности, она будет равна нулю если хотя бы один из показателей равен нулю.

Будет ли этому свойству удовлетворять среднее геометрическое?

Да, будет, поскольку зависит от произведения этих величин.

Обычное же усреднение будет давать 0.5 в случае плохо настроенной модели, когда

  • Precision \approx 1, Recall = 0 (когда только одного пациента, в болезни мы максимально уверены, считаем больным)

  • Precision \approx 0, Recall = 1 (когда назначаем больными всех пациентов без разбора)

Взвешенная F-мера

На практике точность и полнота имеют разное значение для конечной задачи. В идентификации болезни по симптомам важнее полнота (хотим отпустить минимальное число больных с диагнозом "здоров"), а в интернет-поиске важнее точность (хотим вернуть в поисковой выдаче только те страницы, которые действительно релевантны поисковому запросу, пусть и не все релевантные, поскольку их слишком много). Поэтому используется взвешенная F-мера (weighted F-measure, FβF_{\beta}-score):

Fβ-score=1β21+β21Precision+11+β21Recall=(1+β2)Precision×Recallβ2Precision+RecallF_\beta\text{-score}=\frac{1}{\frac{\beta^2}{1+\beta^2}\frac{1}{\text{Precision}}+\frac{1}{1+\beta^2}\frac{1}{\text{Recall}}}=(1+\beta^2)\frac{\text{Precision}\times\text{Recall}}{\beta^2\text{Precision}+\text{Recall}}

Более высокое значение β\beta будет повышать значение Precision и занижать вклад Recall в усреднение.

Использование мер качества в ранжировании

В качестве выхода классификатора часто требуется не выдать сами метки классов, а отсортировать объекты по степени уверенности модели в том, что они принадлежат положительному классу. Поскольку каждый бинарный классификатор представим в виде:

y^(x)=sign(g(x)),\hat{y}(\mathbf{x})=\text{sign}(g(\mathbf{x})),

то относительная дискриминантная функция g(x)g(\mathbf{x}) как раз и будет служить оценкой уверенности классификатора в положительном классе для объекта x\mathbf{x}.

Такая сортировка полезна, например, в задаче интернет-поиска, в которой страницы ранжируются по степени релевантности поисковому запросу. В задачах ранжирования информативно считать показатели precision@K (равную accuracy@K) recall@K, оценивающие соответствующие меры качества на K объектах, в принадлежности которых положительному классу (т.е. в их релевантности поисковому запросу) мы больше всего уверены. K берется равным числу объектов, которые пользователь видит в качестве результата на одной веб-странице.

Недостатком precision@K и recall@K является то, что эти меры никак не зависят от порядка следования корректных классификаций среди K представленных. А нам бы хотелось, чтобы релевантные объекты (положительного класса) шли именно в начале списка.

Average Precision

Если варьировать K, то получим зависимость точности от полноты (precision-recall curve), пример которой приведён ниже:

precision-recall-curve.png

Мы бы хотели получить выше precision при каждом уровне recall, поэтому чем выше этот график, тем качественнее работает классификатор. Агрегированной мерой качества классификации служит площадь под графиком зависимости точности от полноты, которая называется Average Precision (AP). Она поощряет ситуацию, когда при ранжировании объектов по степени принадлежности положительному классу в начале списка идут именно представители положительного класса.