Не все методы оценки модели одинаковы
В машинном обучении у нас есть различные метрики для оценки производительности модели, например точность, матрица неточностей, точность, отзыв, F1-оценка, лог-потери, AUC, распределение ошибок, MAD (медианное абсолютное распределение). Некоторые из них предназначены для классификации, а некоторые - для задачи регрессии. Давайте придерживаться метрик классификации в этой части, а метрики, относящиеся к регрессии, будут в другой части этой статьи.
Очень важно выбрать правильную метрику производительности, выбор метрики производительности в основном зависит от того, как точки данных распределяются в наборе данных, и от соответствующего отраслевого опыта, который играет жизненно важную роль. По мере продвижения в этой статье мы получаем более четкую картину.
В этой статье я буду использовать простую задачу классификации машинного обучения в качестве примера, чтобы объяснить большинство показателей производительности.
Транзакция по кредитной карте - здесь задача состоит в том, чтобы определить, является ли транзакция мошеннической. «0» или «отрицательный» означает, что транзакция является подлинной, «1» или «положительный» означает, что транзакция является мошенничеством.
Теперь давайте по очереди обсудим упомянутые выше показатели производительности.
Точность
Точность можно определить как отношение количества правильно классифицированных точек к общему количеству точек данных в тестовом наборе данных.
Точность - это наиболее фундаментальный подход к оценке модели, но в большинстве случаев он не работает и часто вводит в заблуждение относительно характеристик модели.
Давайте разберемся шаг за шагом, когда точность нужна, а когда нет.
Когда точность важна
Точность - хороший показатель производительности модели, когда набор данных сбалансирован или почти сбалансирован. Например, рассмотрим набор данных IRIS, в котором все три категории ириса, а именно сетоса, разноцветный, вирджиния, имеют 50 точек данных соответственно. Следовательно, если модель дает точность 95%, то мы можем сделать вывод, что модель способна правильно классифицировать все три категории или модель является беспристрастной.
Когда точность бесполезна
Случай I: Набор данных о дисбалансе
В сценарии реальной жизни большую часть времени мы сталкиваемся с проблемой набора данных дисбаланса, когда один из классов доминирует по сравнению с другими классами, то есть точка данных определенного класса присутствует в большинстве, а другие классы представлены в меньшинстве.
Рассмотрим пример:
Как показано на диаграмме, рассмотрим модель M1, которая независимо от того, какая точка данных является входной, возвращает метку класса как «красную», эта модель не более чем тупая модель, но она возвращает точность 90% по приведенным выше данным.
Следовательно, несмотря на очень хорошую точность, мы знаем, что наша модель ничего не узнает или это просто бесполезная модель.
С другой стороны, M2, которая дает точность в 80%, логически звучит лучше, чем M1. Но на основе точности как показателя производительности предпочтительнее модель M1, а не модель M2.
Случай II. Выбор подходящей модели среди моделей с аналогичной точностью.
Теперь модель A и модель B являются аналогичными моделями на основе точности, поскольку обе дают точность 95%, поэтому можно выбрать любую модель, но так ли это на самом деле, и ответ - «НЕТ».
И модель A, и модель B работают одинаково, но модель B более уверена в своем решении по сравнению с моделью A, поэтому у них меньше вероятность отказа модели B по сравнению с моделью A для будущих точек.
Поэтому нельзя рассчитать, насколько уверенно модель делает прогноз, только глядя на ее точность.
Матрица путаницы
Как называется работа, матрица путаницы выводит матрицу, которая дает представление о производительности модели по классам и очень полезна для визуализации, если модель не предвзята к классу. Другими словами, в ячейках матрицы путаницы (каждое поле) содержится количество правильно классифицированных и неправильно классифицированные баллы для каждого класса в организованном порядке.
Матрица неточностей в основном используется для задач двоичной классификации, но может быть легко расширена до мультиклассовой классификации, как показано на рисунке ниже.
Как показано на рисунке выше, мы встречаем одни и те же новые термины, и лучше подробно объяснить каждый, чтобы избежать путаницы.
- Истинно отрицательные (TN). Точки, когда и фактическая метка класса, и метка прогнозируемого класса равны 0 (ложь), попадают в категорию Истинно отрицательные.
Например: согласно нашему примеру с игрушкой, упомянутому выше, все транзакции, которые на самом деле являются подлинными, и модель, также спрогнозированная как подлинная, относятся к категории "Истинно отрицательный".
- Истинно положительные (TP): точки, когда и фактическая метка класса, и метка прогнозируемого класса равны 1 (Истина), относятся к категории Истинно положительный.
Например: все транзакции, которые на самом деле являются мошенничеством, и модели, которые также прогнозируются как мошенничество, считаются истинно положительными.
3. Ложные срабатывания (FP): Точки, когда фактическая метка класса точки данных равна 0 (Ложь), но модель предсказывает как 1 (Истина), попадают в ложное срабатывание. Ложь - это потому, что модель предсказала неверно, а положительный - потому что предсказанный класс был положительным.
Пример: все транзакции, которые являются подлинными, но модель прогнозирует как мошенничество, считаются ложноположительными.
4. Ложноотрицательные (FN): точки, когда фактическая метка класса точки данных равна 1 (Истина), но модель прогнозирует как 0 (Ложь), попадают в категорию ложноотрицательных. Ложь - это потому, что модель предсказала неверно, и отрицательное, потому что предсказанный класс был отрицательным.
Пример: все транзакции, которые являются мошенничеством, но модель считает подлинными, подпадают под ложное срабатывание.
Теперь самое интересное: мы можем оптимизировать нашу модель в соответствии с предметной областью, что невозможно, используя только точность, давайте разберемся, как это сделать.
Случай I. Сведение к минимуму ложных срабатываний
Рассмотрим пример обнаружения спама в электронной почте, поскольку наша задача - обнаруживать спам-электронную почту, все спам-сообщения помечены как 1, а важные сообщения - как 0. Мы сталкиваемся с двумя типами ошибок: эта проблема и для оптимизации модели мы должны уменьшить количество этих ошибок. , но какую ошибку мы должны уменьшить, зависит от проблемы, требований, давайте посмотрим, как.
Типы ошибок:
- Электронная почта является спамом, но модель определяет ее как важную. При этом типе ошибок модель прогнозирует, что электронное письмо является важным, но на самом деле оно является спамом.
- Электронная почта важна, но модель определяет как спам. При этом типе ошибок модель предсказывает электронное письмо как спам, но на самом деле это электронное письмо является важным письмом.
Если спам-ошибка классифицируется как важная, это проблема, но не такая большая, как важное электронное письмо, классифицированное как спам, поскольку это может быть очень важная информация, которую мы не можем получить только потому, что она классифицируется как спам на нашей машине. Следовательно, наша основная цель - уменьшить количество ошибок, когда модель определяет электронную почту как спам, но на самом деле это важная задача, сводящая к минимуму ложноположительные результаты.
Случай II: сведение к минимуму ложноотрицательных результатов
В примере обнаружения мошенничества с кредитными картами мы можем классифицировать ошибки, возникшие при прогнозировании, следующим образом:
- Транзакция, которая является мошенничеством, но модель определяет подлинность. При этом типе ошибки транзакция, соответствующая кредиту, является мошенничеством, но наша модель определяет ее как обычную транзакцию.
- Транзакция, которая является подлинной, но модель обнаруживает мошенничество. При этом типе ошибки транзакция, соответствующая кредиту, является нормальной транзакцией, но наша модель определяет ее как транзакцию мошенничества.
Очень легко понять, что наша основная цель должна сводиться к минимизации ошибки, при которой транзакции являются мошенничеством, но модель определяет подлинность, поскольку это может привести к огромным потерям для держателя кредитной карты, и компания-эмитент кредитной карты должна быть предупреждена до завершения транзакции и минимизировать такую ошибку, называемую минимизация ложноотрицательных результатов.
Когда полезна матрица путаницы:
- Он может рассчитать точность модели.
- Проверьте, не предвзято ли модель к определенному классу.
- Также можно лучше сравнивать разные модели, используя TP, FP, FN, TN и т. Д.
Когда матрица путаницы бесполезна:
- Невозможно сравнить модели, которые имеют аналогичную матрицу путаницы, но модель может вести себя по-разному для будущих точек (это я подробно объяснил в журнале потерь ниже в этой статье).
Это некоторые термины, которые относятся к матрице путаницы, давайте взглянем на них.
Соотношение истинных положительных данных: это отношение количества истинно положительных точек данных к общему количеству положительных точек данных.
Отношение истинно отрицательных данных: это отношение количества истинно отрицательных точек данных к общему количеству отрицательных точек данных.
Коэффициент ложноположительных результатов: это отношение количества ложноположительных точек данных к общему количеству отрицательных точек данных.
Коэффициент ложноотрицательных данных: это отношение количества ложноотрицательных точек данных к общему количеству отрицательных точек данных.
Чтобы определить оптимальную модель, модель с высоким TPR и TNR и низким FPR и FNR считается хорошей моделью.
Точность
Его можно определить как: «Из всех точек, которые модель спрогнозировала как положительные, количество точек фактически положительных, деленное на общее количество точек, предсказанных моделью как положительные».
Отзывать
Его можно определить как: «Из всех точек, которые модель спрогнозировала как положительные, количество точек фактически положительных, деленное на общее количество положительных точек».
F1-Score
Вместо того, чтобы использовать как точность, так и отзыв для поиска оптимальной модели, лучше найти любую оценку, которая представляет и точность, и отзыв.
Эта оценка называется оценкой F1 и может быть вычислена с использованием гармонического среднего значения точности и запоминания, но возникает вопрос, почему гармоническое среднее, а почему не арифметическое или геометрическое. Давайте разберемся с этим, прежде чем делать какие-либо выводы.
Мы можем выбрать любой из трех типов среднего, а именно AM, GM, HM, и обсуждение ниже в основном заключается в том, чтобы сделать правильный выбор среди них.
Мы знаем AM ≥ GM≥ HM:
Случай I: точность, отзывчивость и P ~ R.
В этом случае мы можем выбрать любое среднее значение в качестве F1-Score, поскольку оно не будет иметь большого значения, поскольку AM ~ GM ~ HM, как показано на рисунке.
Случай II: точность, возврат и низкие цены, и P ~ R.
В этом случае мы также можем выбрать любое среднее значение в качестве F1-Score, поскольку это не будет иметь большого значения, поскольку AM ~ GM ~ HM, как показано на рисунке.
Случай III: точность ›› Напоминание или наоборот
Этот случай важен и становится решающим, почему H.M. выбран в качестве формулы F1-Score. Здесь А. будет находиться между R и P, G.M. будет немного ближе к меньшему среди (P или R), но H.M. будет лежать ближе к меньшему номеру.
Мы хотим, чтобы F1-Score был таким, чтобы если какая-либо из двух точности или отзыва была намного меньше, чем F1-Score, это тоже указывало, и, следовательно, H.M. точности и запоминаемости, поскольку F1-Score - лучший выбор.
Подводя итоги:
F1-Score можно определить как гармоническое среднее значение точности и отзыва, где F 1 оценка достигает своего лучшего значения при 1 (идеальная точность и отзывчивость) и худшего при 0. . (Источник определения: википедия).
Прежде чем двигаться дальше, давайте разберемся с термином «оценка вероятности», который часто используется в будущих показателях.
Большая часть модели работает на основе вероятностного подхода для классификации точек данных. Пусть метка класса равна 0 и 1, следовательно, когда модель делает прогноз, если вероятность точки> 0,5, она классифицируется как 1, а если вероятность
Log-Loss
log-loss - наиболее популярная для специалистов по данным метрика производительности, которая используется для решения задач классификации и основана на оценках вероятности.
Потери можно определить как средний отрицательный логарифм вероятности правильных меток классов. (сейчас трудно понять, но не после обсуждения ниже).
Рассмотрим две вышеупомянутые модели (A и B), модели работают по вероятностному подходу, т.е. если 0 ‹prob (X)‹ 0,5 балла принадлежит классу Red (или '0'), и если 0,5 ‹prob (X)‹ 1, то точка принадлежит классу класс Green (или «1»).
Обе модели A и B имеют одинаковую точность, сформируют аналогичную матрицу путаницы, все другие показатели, такие как точность, отзыв, F1-оценка и т. Д., Будут одинаковыми, следовательно, ни одна из указанных выше метрик не может различить Модель 1 и Модель 2. Следовательно, можно выбрать больше можно использовать подходящую модель логарифма потерь, она может сравнивать две модели с точно такими же результатами.
В Модели 1 модель правильно классифицирует большинство точек, но в основном точки лежат близко к границе решения, что означает, что модель не очень уверена в принятии решений. Красная (или 0) отмеченная точка имеет вероятность немного меньше 0,5, а зеленая (или '1') отмеченная точка имеет вероятность немного больше 0,5.
С другой стороны, в модели 2 мы получаем точно такую же точность, но модель очень уверена в принятии решения, поскольку большинство точек находятся далеко от поверхности принятия решения. Точка с красной (или «0») меткой имеет вероятность, очень близкую к 0, а точка с зеленой (или «1») меткой имеет вероятность, очень близкую к 1.
Таким образом, мы можем сделать вывод, что даже если модели 1 и 2 имеют одинаковые значения производительности, такие как точность, точность, отзывчивость, оценка F1 и т. Д., То модель 2 намного лучше, чем модель 1.
Вычисление потери журнала
Рассмотрим приведенную выше таблицу, поскольку только прогноз x4 неверен обеими моделями, и обе модели предсказали все то же самое, мы заключаем, что точность для обеих составляет 83,33% согласно приведенным выше данным, лог-потери для модели 2 намного меньше, чем для модели 1 (помните журнал -потеря - это убыток, следовательно, чем меньше его значение, тем лучше модель).
Мы можем рассчитать его стоимость, используя приведенные ниже формулы, которые не требуют пояснений.
Если потеря журнала полезна:
- Сравнение модели с аналогичными значениями производительности, такими как точность, прецизионность, отзывчивость, оценка F1 и т. Д.
Когда потеря журнала бесполезна:
Хотя лог-потеря очень полезна, но это единственная причина, по которой специалисты по обработке данных не используют ее часто, потому что она кажется очень трудной для интерпретации, поскольку ее значение начинается с 0 и не имеет верхней границы. В этой ситуации трудно понять, насколько хорошо наша модель работает, как мы знаем, если мы получим точность в 90-е годы, чем наши модели работают нормально и т. Д. Но с потерями журнала все не так просто, например, если кто-то говорит, что моя модель имеет журнал- потеря 0,25, чем как интерпретировать, хороший результат или нет.
Что ж, об этом также можно позаботиться с небольшими усилиями, мы можем сформировать базовую модель, которая станет эталоном для визуализации производительности модели на основе ее оценки потерь журнала. (это всего лишь взлом, а не стандартный подход, но поверьте мне, он намного лучше многих стандартных подходов).
Установка контрольного показателя
Создайте случайную модель R, которая случайным образом пометит точки данных, поскольку это случайная модель, ее результат - худшая производительность, которую мы получаем, и это худшая модель, которую мы получаем. Вычислить потери журнала для модели R говорят, что потери журнала для R составляют 5,3, теперь это худший результат, который мы можем получить.
Теоретически мы можем сравнить 5,3 как точность 0% и 0 журнальных потерь как 100% точность.
Теперь, когда точность модели варьируется от 0 до 100, аналогично теперь логарифмические потери варьируются от 5,3 до 0.
Случай I: если у нашей модели потеря журнала ›5.3 (очень редкий случай)
Мы можем сделать вывод, что наша модель - самая тупая модель, которая работает даже хуже, чем случайная модель.
Случай II: если логарифмические потери нашей модели меньше 5,3
Мы можем сделать вывод, что наша модель в порядке, и мы должны ее значительно улучшить.
Случай III: если наша модель потеряла журнал ‹ACCOM 5.3.
Мы пришли к выводу, что наша модель работает феноменально, и мы сформировали хорошую модель.
ROC-AUC
Кривая ROC-AUC - это еще один вид метрики измерения производительности для моделей бинарной классификации, которую можно расширить до мультиклассовой классификации.
Говоря об интуиции, лежащей в основе кривой AUC-ROC, она в основном говорит о том, насколько модель способна разделяться на отдельные метки классов. AUC варьируется от 0 до 1, чем выше значение, тем лучше модель, способная разделить два класса.
Кривая Roc (или Рабочие характеристики приемника) строится с отношением TPR к FPR, где TPR находится на оси y, а FPR - на оси x, а площадь под этой кривой называется AUC ( Площадь под кривой).
Формы кривой How AUC-ROC
Рассмотрим таблицу выше, чтобы построить кривую AUC-ROC, их небольшой алгоритм позволяет понять алгоритм шаг за шагом:
- В соответствии с каждой точкой данных вычислите оценку вероятности.
- Расположите точки данных в порядке убывания оценки вероятности.
- Пусть threshold1 = prob. оценка 1, порог 2 = вероятность. оценка 2 и так далее.
- Добавьте в таблицу n столбцов, каждый столбец соответствует каждому порогу.
- Если проблема. оценка точки данных больше, чем пороговое значение столбца, тогда значение столбца равно 1, иначе 0 для этой точки данных.
- Вычислить TPR, FPR для каждого столбца, т.е. соответствующего каждому пороговому значению. (Например, TPR1, FPR1 для столбца с порогом 1, TPR2, FPR2 для столбца с порогом 2 и т. Д.).
- Мы получаем TPR1, TPR2,…, TPRn и FPR1, FPR2,…, FPRn из вышеуказанного вычисления.
- Постройте TPR по оси Y и FPR по оси X.
- Это формирует кривую ROC и площадь под ней, называемую AUC.
Случай I: 0,5 ‹AUC‹ 1
Если значение AUC для модели больше 0,5, это означает, что она может разделить два разных класса. Чем больше его значение, тем лучше отделимость.
Случай II: AUC = 0,5
Когда AUC составляет 0,5, мы можем сделать вывод, что наша модель вообще не способна классифицировать (или разделять) точки данных двух различных классов, или, другими словами, наша модель является просто случайной моделью.
Случай III: 0 ‹AUC‹ 0,5
Это указывает на то, что во время обучения модели что-то пошло не так. Например, если AUC составляет 0,25, это означает, что мы можем получить AUC, равную 0,75 с той же моделью, просто поменяв местами метки классов, то есть просто поменяв местами 0 и 1 в модели, и новый AUC будет равен 1-старому AUC.
Спасибо за прочтение.
Я надеюсь, что каждый получит хорошее представление о показателях производительности на основе классификации, это те же показатели производительности на основе регрессии, о которых я расскажу в следующей части этой статьи.