Автор | АНИРУДДХА БХАНДАРИ Компилировать|ВКонтакте Источник | Аналитика Видья
Кривая AUC-ROC
Вы создали свою модель машинного обучения — что дальше? Вам нужно оценить его и проверить, насколько он хорош (или насколько плох), чтобы вы могли решить, внедрять его или нет. На этом этапе можно ввести кривую AUC-ROC.
Название может быть немного преувеличенным, но оно просто говорит о том, что мы вычисляем «Площадь под кривой» (AUC) «Оператора характеристики приемника» (ROC).
Не волнуйтесь, мы подробнее рассмотрим, что означают эти термины, и все будет проще простого!
Теперь, просто зная кривую AUC-ROC, мы можем визуализировать производительность классификатора машинного обучения. Хотя он подходит только для задач бинарной классификации, в конце мы увидим, как его можно расширить для оценки задач классификации с несколькими классами.
Мы также обсудим такие темы, как чувствительность и специфичность, поскольку они являются ключевыми темами для кривых AUC-ROC.
содержание
-
Что такое чувствительность и специфичность?
-
предсказанная вероятность
-
Что такое кривая AUC-ROC?
-
Как работает кривая AUC-ROC?
-
АУК-РПЦ на Python
-
AUC-ROC для мультиклассовой классификации
Что такое чувствительность и специфичность?
Матрица путаницы:
Из матрицы путаницы мы можем вывести некоторые важные метрики, которые не обсуждались в предыдущих статьях. Давайте поговорим о них здесь.
Чувствительность/истинная частота случаев/скорость отзыва
Чувствительность говорит нам, какая часть положительных примеров правильно классифицирована.
Простой пример — определение доли реальных пациентов, которых модель правильно обнаружила.
ложноотрицательный показатель
Ложноотрицательный показатель (FNR) говорит нам, какая доля положительных примеров неправильно классифицирована классификатором.
Желательны более высокий TPR и более низкий FNR, потому что мы хотим правильно классифицировать положительный класс.
специфичность / истинная отрицательная скорость
Специфика говорит нам, какая часть классов контрпримеров правильно классифицирована.
В случае чувствительности под специфичностью понимается определение доли здоровых людей, правильно идентифицированных моделью.
ложноположительный показатель
FPR сообщает нам, какие отрицательные классы были неправильно классифицированы классификатором.
Желательны более высокий TNR и более низкий FPR, потому что мы хотим правильно классифицировать отрицательные классы.
В этих показателях,ЧувствительныйиспецифичностьВероятно, самое важное, позже мы увидим, как использовать их для построения показателей оценки.
Но перед этим давайте посмотрим, почему предсказание вероятностей лучше, чем непосредственное предсказание целевого класса.
предсказанная вероятность
Модели классификации машинного обучения могут напрямую предсказывать фактический класс точки данных или предсказывать вероятность того, что она принадлежит другому классу.
Последнее дает нам больше контроля за результатами. Мы можем определить наши собственные пороги для интерпретации результатов классификатора. Это более осторожно!
Установка различных порогов классификации для точек данных может непреднамеренно изменить чувствительность и специфичность модели.
Один из порогов может давать лучшие результаты, чем другие, в зависимости от того, преследуем ли мы цель уменьшить количество ложноотрицательных или ложноположительных результатов.
См. таблицу ниже:
Метрика меняется по мере изменения порога. Мы можем генерировать различные матрицы путаницы и сравнивать различные метрики, обсуждавшиеся в предыдущем разделе.
Но делать это неразумно. Вместо этого мы можем построить график между этими показателями, чтобы мы могли легко увидеть, какой порог дает нам лучший результат.
Кривая AUC-ROC просто решает эту проблему!
Что такое кривая AUC-ROC?
Кривая ROC представляет собой индекс оценки для задач бинарной классификации. Это кривая вероятности, которая отображает TPR в зависимости от FPR при разных пороговых значениях, по существу отделяя «сигнал» от «шума».
Площадь под кривой (AUC) является мерой способности классификатора различать и используется в качестве сводки ROC-кривой.
Чем выше AUC, тем лучше модель различает положительные и отрицательные классы.
Когда AUC=1, классификатор может правильно различать все положительные и отрицательные точки класса. Однако если AUC равен 0, то классификатор будет предсказывать все отрицательные значения как положительные, а все положительные — как отрицательные.
Когда 0,5 Когда AUC=0,5, классификатор не может различать положительные и отрицательные баллы класса. Это означает, что классификатор либо предсказывает случайный класс для всех точек данных, либо предсказывает постоянный класс. Следовательно, чем выше значение AUC классификатора, тем лучше его способность различать положительные и отрицательные классы. На кривой ROC более высокие значения по оси X указывают на то, что количество ложных срабатываний выше, чем количество истинных отрицаний. Чем выше значение оси Y, тем больше количество истинных примеров, чем количество ложноотрицательных примеров. Следовательно, выбор порога зависит от способности балансировать между ложноположительными и ложноотрицательными. Давайте копнем немного глубже и поймем форму кривой ROC при разных пороговых значениях, а также изменения специфичности и чувствительности. Мы можем попытаться понять этот график, создав матрицу путаницы для каждой точки, соответствующей порогу, и обсудить производительность классификатора: Точка А – это место, где чувствительность самая высокая, а специфичность самая низкая. Это означает, что все баллы положительного класса классифицируются правильно, а все баллы отрицательного класса классифицируются неправильно. На самом деле, любая точка на синей линии соответствует реальной доле заболеваемости, равной ложной пропорции. Все точки на этой линии соответствуют случаям, когда доля правильно классифицированных точек, принадлежащих к положительному классу, больше, чем доля ошибочно классифицированных точек, принадлежащих к отрицательному классу. Хотя точка B имеет такую же чувствительность, как и точка A, она имеет более высокую специфичность. Это означает, что количество ложноотрицательных точек ниже предыдущего порога. Это указывает на то, что этот порог лучше предыдущего. Между точкой C и точкой D чувствительность точки C выше, чем у точки D при той же специфичности. Это означает, что для того же количества ошибочно классифицированных отрицательных баллов классификатор предсказывает большее количество положительных баллов. Следовательно, порог точки C лучше, чем у точки D. Теперь, в зависимости от того, сколько неправильных баллов классификации мы хотим допустить для классификатора, мы будем выбирать между точкой B и точкой C, чтобы предсказать, сможете ли вы победить меня в PUBG. «Ложная надежда опаснее страха» — Дж. Р. Р. Толкин. Точка E – это место, где специфичность самая высокая. То есть модель не классифицирует ложных срабатываний. Модель правильно классифицирует все отрицательные моменты! Если бы наша задача заключалась в том, чтобы предоставить пользователям идеальные рекомендации по песням, мы бы выбрали это. Следуя этой логике, можете ли вы угадать, где совершенный классификатор соответствует точке на графике? правильно! Он будет находиться в верхнем левом углу графика ROC, что соответствует координатам (0, 1) в декартовой плоскости. Здесь и чувствительность, и специфичность будут самыми высокими, и классификатор правильно классифицирует все положительные и отрицательные баллы класса. Теперь либо мы можем вручную проверить чувствительность и специфичность каждого порога, либо позволить sklearn сделать всю работу за нас. Мы выбираем sklearn Давайте создадим произвольные данные, используя метод sklearn make_classification: Я проверю производительность двух классификаторов на этом наборе данных: У Sklearn есть очень эффективный метод roc_curve(), который вычисляет roc классификатора за секунды! Он возвращает FPR, TPR и порог: Оценка AUC может быть рассчитана с использованием метода roc_auc_score() sklearn: Мы также можем построить кривые ROC для обоих алгоритмов, используя matplotlib: Результаты показали, что AUC кривой ROC логистической регрессии была значительно выше, чем у кривой KNN-ROC. Следовательно, мы можем сказать, что логистическая регрессия лучше справляется с положительными классами в категориальных наборах данных. Как я уже говорил, кривые AUC-ROC подходят только для задач бинарной классификации. Однако мы можем распространить это на проблемы классификации нескольких классов с помощью метода «один ко многим». Итак, если у нас есть три класса 0, 1 и 2, то ROC для класса 0 будет генерироваться так, положительный пример — это класс 0, а отрицательный пример — некласс 0, то есть класс 1 и класс 2. И так далее. Кривая ROC модели классификации нескольких классов может быть определена следующим образом: Я надеюсь, что вы нашли эту статью полезной для понимания возможностей метрики кривой AUC-ROC при измерении производительности классификатора. Вы будете часто использовать это в промышленности и даже в науке о данных. Знакомьтесь лучше! Оригинальная ссылка:Woohoo.Со слов аналитиков vi.com/blog/2020/0… Добро пожаловать на сайт блога Panchuang AI:panchuang.net/ sklearn машинное обучение китайские официальные документы:sklearn123.com/ Добро пожаловать на станцию сводки ресурсов блога Panchuang:docs.panchuang.net/Как работает кривая AUC-ROC
Кривая AUC-ROC в Python
0.9761029411764707 0.9233769727403157
AUC-ROC для мультиклассовой классификации
конец