среда, 29 августа 2018 г.

Классификация: точность и отзыв

Точность (Precision)

Точность пытается ответить на следующий вопрос:

Какая порция позитиных результатов была на самом деле правильной?

Точность определяется следующим образом:

Precision = TP / (TP + FP)

Следует отметить, что модель, которая не выдает ложно положительных результатов имеет точность равную 1.0.

Попробуем рассчитать точность для модели из предыдущего поста, которая анализирует опухоли:

  • Истинно положительные (TP): 1
  • Ложно положительные (FP): 1
  • Ложно отрицательные (FN): 8
  • Истинно отрицательные (TN): 90

Precision = TP / (TP + FP) = 1 / (1 + 1) = 0.5

Наша модель имеет точность 0.5 - другими словами, когда она прогнозирует, что опухоль злокачественная, это на самом деле верно только в 50% случаев.

Отзыв (Recall)

Отзыв пытается ответить на следующий вопрос:

Какая порция на самом деле позитивных примеров была определена правильно?

Математически, отзыв определяется следующим образом:

Recall = TP / (TP + FN)

Следует отметить, что модель, которая не выдает ложно отрицательных результатов имеет отзыв равный 1.0.

Попробуем рассчитать отзыв для модели, которая анализирует опухоли:

  • Истинно положительные (TP): 1
  • Ложно положительные (FP): 1
  • Ложно отрицательные (FN): 8
  • Истинно отрицательные (TN): 90

Recall= TP / (TP + FN) = 1 / (1 + 8) = 0.11

Наша модель имеет отзыв 0.11 - другими словами, она верно определяет только 11% всех злокачественных опухолей.

Точность и отзыв: перетягивание каната

Чтобы полностью оценить эффективность модели необходимо проверить и точность, и отзыв. К сожалению, точность и отзыв часто конфликтуют. Так при улучшении точности обычно уменьшается отзыв и наоборот. Это можно увидеть на следующем графике, который показывает 30 прогнозов, сделанных моделью классификации писем. Те что справа от классификационного порога - классифицированы как "спам", те что слева - классифицированы как "не спам".

Классифицирование электронных писем как "спам" или "не спам"

Попробуем рассчитать точность и отзыв, основываясь на результатах предыдущего графика:

  • Истинно положительные (TP): 8
  • Ложно положительные (FP): 2
  • Ложно отрицательные (FN): 3
  • Истинно отрицательные (TN): 17

Точность измеряет процент писем, отмеченных как спам, которые были правильно классифицированы - то есть, процент точек справа от линии порога, окрашенные зеленым цветом на предыдущем графике:

Precision = TP / (TP+FP) = 8 / (8+2) = 0.8

Отзыв измеряет процент на самом деле спам-писем, которые были правильно классифицированы - то есть, процент зеленых точек справа от линии порога на предыдущем графике:

Recall = TP / (TP+FN) = 8 / (8+3) = 0.73

Следующий график показывает эффект от увеличения классификационного порога:

Увеличенный классификационный порог

Количество ложно положительных результатов уменьшилось, но ложно отрицательных возросло. Как результат, точность увеличилась, а отзыв уменьшился:

  • Истинно положительные (TP): 7
  • Ложно положительные (FP): 1
  • Ложно отрицательные (FN): 4
  • Истинно отрицательные (TN): 18

Precision = TP / (TP+FP) = 7 / (7+2) = 0.88
Recall = TP / (TP+FN) = 7 / (7+4) = 0.64

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

Уменьшенный классификационный порог

Количество ложно положительных результатов возросло, а ложно отрицательных уменьшилось. Как результат, точность уменьшилась, а отзыв увеличился:

  • Истинно положительные (TP): 9
  • Ложно положительные (FP): 3
  • Ложно отрицательные (FN): 2
  • Истинно отрицательные (TN): 16

Precision = TP / (TP+FP) = 9 / (9+3) = 0.75
Recall = TP / (TP+FN) = 9 / (9+2) = 0.82

Были разработаны различные метрики, основывающиеся одновременно на точности и отзыве. Например, F1 счет.