Вернуться к истокам

Как мы можем сказать, что «эта модель хорошо обобщает», «этот алгоритм работает хорошо» или просто «это хороший»?

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

Вы спросите: только для классификации?

Что ж, в случае регрессии оценка более проста, поскольку обычно она включает только вычисление средней функции потерь, такой как среднеквадратическая ошибка (MSE). Эта метрика показывает, насколько хорошо кривая соответствует данным, и позволяет нам сравнивать производительность различных моделей регрессии.

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

  1. Вычислите матрицу путаницы
  2. Рассчитайте точность и полноту
  3. Посмотрите на точность или точность с учетом затрат.
  4. Оцените площадь под ROC-кривой.

Матрица путаницы

Матрица путаницы — это таблица, которая показывает количество правильных и неправильных прогнозов для каждого класса. Допустим, у нас есть алгоритм компьютерного зрения, который принимает в качестве входных данных спортивные изображения и предсказывает, что происходит. Например, у нас могут быть классы: баскетбол, бейсбол и футбол, и матрица путаницы будет выглядеть следующим образом:

В случае мультиклассовой классификации каждую категорию можно анализировать отдельно, но давайте рассматривать все примеры баскетбола как положительные, а другие категории как отрицательные (я могу быть предвзятым, поскольку это моя любимый вид спорта). Мы можем заметить, что из 14 баскетбольных примеров модель правильно классифицировала только 2. Другими словами, у нас есть только 2 истинно положительных результата (TP = 2) и 12 ложноотрицательных результатов (FN = 12). Модель дала 4 ложноположительных результата (FP = 4): 3 из них были на самом деле бейсболом, а 1 – футболом, а не баскетболом. И модель дала 21 (5 + 2 + 4 + 10) истинно отрицательный результат (TN = 21).

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

Модель имеет тенденцию ошибочно предсказывать бейсбол вместо баскетбола. Какой позор! В этом случае мы можем решить добавить в наш набор данных больше примеров баскетбольных изображений и переобучить модель.

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

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

Для нашего примера с баскетболом у нас есть 2 правильных прогноза (TP = 2) и 4 неправильных положительных прогноза (FP = 4). Таким образом, точность составляет 1/3.

Отзыв — это доля положительных примеров, которые алгоритм смог обнаружить, из всех положительных примеров в наборе данных:

В примере с баскетболом у нас есть 12 ложноотрицательных результатов, что дает нам коэффициент полноты всего 1/7.

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

Точность и точность с учетом затрат

Точность дает долю правильно классифицированных примеров из всех классифицированных примеров:

Точность — это показатель того, насколько хорошо алгоритм способен делать правильные прогнозы. Одним из недостатков использования этой метрики является то, что все ошибки считаются одинаковыми.

Иногда у нас есть классы, которые важнее других, и нам нужно по-другому наказывать за ошибки. Например, если у нас есть алгоритм, который классифицирует электронные письма как спам и не спам. Ложноотрицательный результат — это когда вы получаете спам-письмо в свой почтовый ящик, а ложноположительный — когда электронное письмо вашего друга попадает в папку со спамом. В этом случае я бы посчитал ложные срабатывания более раздражающими, чем ложноотрицательные.

Одним из способов решения этой проблемы является вычисление точности с учетом затрат путем взвешивания обоих типов ошибок (FP и FN) с двумя разными весами (C1 и C2).

Для нашего примера с электронной почтой мы можем установить C1 > C2, если мы хотим рассматривать модель, которая дает меньше ложных срабатываний, как более точную, чем другая модель, которая делает такое же количество ошибок, но с большим количеством ложных срабатываний.

Площадь под кривой ROC

Кривая рабочих характеристик приемника (ROC) — это визуальный способ оценки эффективности методов классификации. Этот метод возможен только для алгоритмов классификации, которые выводят уровень достоверности. Например, мы можем вычислить кривую ROC для нейронных сетей, логистической регрессии или деревьев решений.

Чтобы построить кривую ROC, нам нужны две метрики:

  • Коэффициент истинно положительных результатов (TPR) определяется (точно так же, как отзыв) как доля правильно предсказанных положительных примеров:

  • Частота ложноположительных результатов (FPR) определяется как доля ошибочно предсказанных отрицательных примеров:

Если мы возьмем пример классификатора логистической регрессии, который выводит уровень достоверности от 0 до 1. Мы можем выбрать порог, выше которого мы считаем прогноз положительным, например. 0,5.

Чтобы построить кривую ROC, мы должны дискретизировать интервал всех возможных порогов (например: [0, 0,1, 0,2, 0,3, 0,4, 0,5, 0,6, 0,7, 0,8, 0,9, 1]) и вычислить TPR и FPR для каждого уровень. Затем мы можем вычислить площадь под кривой (AUC), как показано на рисунке ниже:

Порог «1» не даст никаких положительных прогнозов (FPR=0 и TPR=0), а порог «0» принесет только положительные прогнозы (FPR=1 и TPR=1). Все, что посередине, зависит от модели.

Идеальный классификатор даст площадь под кривой 1, а случайный классификатор даст площадь 0,5 (как на графике справа). Чем больше AUC, тем лучше производительность, и хороший классификатор обычно можно найти, выбрав порог, который дает TPR, близкий к 1, и FPR, близкий к 0.

Заключительные слова

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

Тем не менее, из четырех рассмотренных нами методов область под ROC-кривой, вероятно, является наиболее эффективной. Кривая ROC охватывает более одного аспекта классификации (истинно положительные и ложноположительные результаты), и кривая относительно проста для понимания и визуально быстро анализируется.

Хотите узнать больше о работе и проектах Энтони? Следите за ним в Medium, LinkedIn и Twitter.

Нужен технический писатель? Отправьте запрос на https://amigocci.io.