# 3: Какие показатели производительности используются в машинном обучении?

Добро пожаловать в раздел «Машинное обучение через визуальные эффекты». В этой серии я хочу, чтобы читатель быстро вспомнил и, что более важно, сохранил концепции с помощью простых визуальных подсказок, показанных в этой статье. Большое количество исследований показывает, что визуальные подсказки помогают нам лучше извлекать и запоминать информацию. Здесь концепции подробно не обсуждаются. Предполагается, что читатель уже знает концепцию, но хочет быстро ее повторить.

Цель метрики - оценить модель машинного обучения. В зависимости от приложения нам может потребоваться оценить различные характеристики результатов.

В этом посте вы увидите все известные показатели на странице с примерами для каждой и визуальной подсказкой, которую нужно вспомнить. Пример поможет вам вспомнить о важности метрики и описать сценарий, в котором она будет полезна. Визуальные подсказки помогут вам прояснить матрицу путаницы (которую, я полагаю, вы знаете) и не только.

Начнем с перечисления всех обычно используемых показателей классификации:

  1. Точность
  2. Точность
  3. Отзывать
  4. Специфика (Ого! Это скороговорка. Скажи 5 раз!)
  5. Оценка F1
  6. AUC ROC
  7. Логарифмическая потеря

Хорошо, давайте начнем с -

  1. Точность - отношение правильных прогнозов к общему количеству сделанных прогнозов. Подходит только при примерно равном количестве наблюдений в каждом классе.

Пример. Предположим, что существует набор изображений, содержащих примерно равное (не обязательно точно равное) количество кошек и собак. Мы хотим реализовать алгоритм для правильной классификации изображения. С другой стороны, если у нас есть база данных, в которой существует значительная разница между количеством положительных и отрицательных меток. Например, если у нас есть 95 изображений собак и всего 5 изображений кошек, алгоритм, который классифицирует все их как «собаки», будет иметь точность 95%, что очень вводит в заблуждение!

В идеале мы хотим, чтобы точность была как можно более высокой → 100%

2. Точность - сколько образцов отнесено к классу положительных (TP + FP), т. Е. «Прогнозируемое положительное», действительно принадлежат к положительному классу (TP).

Пример: повторение примера, упомянутого выше, если у нас есть 95 изображений собак и только 5 изображений кошек, алгоритм, который классифицирует все их как «кошки». Точность классификации кошек для этого алгоритма имеет TP = 5, FP = 95. Таким образом, точность (для классификации кошек) = 5 / (5 + 95) = 5%. Здесь показатель точности указывает на то, что с алгоритмом что-то не так.

Высокая точность означает, что, когда вы относите изображение к категории "кошка", вы обычно правы.

В идеале мы хотим, чтобы точность была как можно более высокой → 100% (для обоих классов или наименьшая для интересующего класса). Точность также называется положительной предсказуемостью.

3. Напомнить - из всех положительных (TP + FN) образцов, т. Е. «Действительно положительных», сколько было правильно отнесено к положительным (TP) .

Пример: повторение примера, упомянутого выше, если у нас есть 95 изображений собак и всего 5 изображений кошек, глупый алгоритм, который классифицирует все изображения как «кошки». Напомним, для классификации кошек для этого алгоритма TP = 5, FN = 0. Итак, напоминание (для классификации кошек) = 5 / (5) = 100%. Но точность такой модели составляет 5%.

Высокая запоминаемость означает, что вы можете идентифицировать большинство «кошек», указанных в наборе данных.

Из приведенного выше примера ясно, что Recall предназначен для захвата всех реальных изображений кошек в виде кошек. Напоминание также называется чувствительностью.

Я знаю, воспоминания и точность все еще сбивают с толку. Рассмотрим следующие два приложения:

а. Рассмотрим приложение для обнаружения вторжений, которое подает сигнал тревоги, если злоумышленник обнаруживается за дверью дома. В случае использования этого типа в идеале мы хотим, чтобы все вторжения были обнаружены, предположительно любой ценой. Это означает, что нам нужны ложные отрицательные результаты (FN) → 0, что означает, что нам нужен отзыв 100%. В этом приложении точность немного менее важна, поскольку мы можем терпеть несколько ложных срабатываний, которые не причинят вреда. Предположим, что в наборе данных из 100 примеров есть 5 случаев вторжения и 95 случаев отсутствия вторжений. Если мы воспользуемся алгоритмом, который классифицирует все 100 случаев как вторжения, мы добьемся 100% отзыва, но ужасной точности = 5 / (5 + 95) = 5%. Столь низкая точность тоже нежелательна. Допускается несколько ложных срабатываний, но в данном случае их 95, что слишком много. Поэтому в таких приложениях мы стараемся добиться очень высокого уровня отзыва, но без слишком плохой точности.

б. Рассмотрим такое устройство, как Amazon Alexa. Такое устройство срабатывает по голосовой команде «Алекса». В этом случае мы не хотим, чтобы устройство время от времени срабатывало при фоновой речи. Это означает, что мы хотим, чтобы ложные срабатывания (FP) были → 0. Здесь мы хотим, чтобы точность была очень высокой, чтобы устройство не запускалось случайным образом. В этом случае допустимо наличие некоторых ложных отрицаний (FN), то есть устройство не отвечает вам, когда вы говорите «Alexa», т.е. мы пытаемся добиться очень высокой точности, но не помним, что она слишком высока. плохой.

4. Специфичность - из всех отрицательных (TN + FP) образцов, т. Е. «Действительно отрицательных», сколько было правильно отнесено к отрицательным (TN) .

Это полная противоположность воспоминаниям. Просто поменяйте местами Положительный ↔️ Отрицательный.

5. Оценка F1 - среднее гармоническое точность и отзывчивость. Это единый счет, который представляет как точность, так и отзывчивость.

Так почему же среднее гармоническое, а не среднее арифметическое? Потому что он больше наказывает крайние ценности.

Как объяснялось здесь, рассмотрим тривиальный метод (например, всегда возвращающий класс A). Есть бесконечное количество элементов данных класса B и единственный элемент класса A:

Precision: 0.0
Recall:    1.0

Если взять среднее арифметическое, результат будет правильным на 50%. Несмотря на то, что это худший возможный результат! Но с гармоническим средним значением F1-оценка равна 0.

Arithmetic mean: 0.5
Harmonic mean:   0.0

Другими словами, чтобы иметь высокий показатель F1-Score, вам необходимо иметь и высокую точность и отзывчивость.

6. AUC-ROC (Площадь под кривой - рабочая кривая приемника)

Кривая ROC (кривая рабочих характеристик приемника) - это график, показывающий эффективность модели классификации при всех порогах классификации. Оси для ROC - TP R (T rue P positive Rate) и FP R (F alse P ositive Rate).

Кривая говорит нам о том, насколько хорошо модель может различать два класса. Лучшие модели могут точно различить эти два вида. В то время как плохая модель будет иметь трудности с различением между ними.

В идеале мы хотим, чтобы AUC ROC был → 1.0.

Ключевым моментом, на который следует обратить внимание, является то, что площадь под кривой (AUC) является максимальной, когда две кривые распределения (каждого класса) находятся дальше всего с небольшим перекрытием.

Вот хорошая статья, подробно объясняющая AUC-ROC.

7. Logloss - Log Loss количественно определяет точность классификатора, штрафуя за ложные классификации. Математически логическая потеря определяется как -

Log Loss не имеет верхней границы и существует в диапазоне [0, ∞). Значение Log Loss, близкое к 0, указывает на более высокую точность, тогда как, если Log Loss отличается от 0, это указывает на более низкую точность. Операция журнала является естественной основой.

Logloss легче понять для сценария с двумя классами (то есть M = 2). Формула сводится к -

Здесь предположим, что N = 4 (т.е. у нас есть только 4 точки данных) следующим образом:

Datapoint 1: фактический результат y = 1; прогнозируемая вероятность p = 0,3

logloss (1) = - (1 * log (0,3) + (1–1) * log (1–0,3)) = 1,2039

Datapoint 2: фактический результат y = 1; прогнозируемая вероятность p = 0,5

logloss (2) = - (1 * log (0,5) + (1–1) * log (1–0,5)) = 0,6931

Datapoint 3: фактический результат y = 0; прогнозируемая вероятность (1-p) = 0,99; потому что p - это вероятность предсказания y = 1

logloss (3) = - (1 * log (1-0,99) + (1–0) * log (0,99)) = 0,01

Datapoint 4: фактический результат y = 1; прогнозируемая вероятность p = 1

logloss (4) = - (1 * log (1) + (1–1) * log (1–0)) = 0,0

Общая потеря логарифма = [лог-потеря (1) + лог-потеря (2) + лог-потеря (3) + лог-потеря (4)] / 4 = 0,4780.

Спасибо за внимание. Всегда открыт для предложений и комментариев. Вы можете прокомментировать, как бы вы запомнили любой из этих показателей.