Интуитивное понимание

ВСТУПЛЕНИЕ

Одним из важных аспектов машинного обучения является оценка модели. Вам нужен какой-то механизм для оценки вашей модели. Вот здесь-то и появляются эти показатели производительности, они дают нам представление о том, насколько хороша ваша модель. Если вы знакомы с некоторыми основами машинного обучения, вы должны иметь представление о некоторых из этих показателей, таких как точность, точность, отзыв, auc-roc и т. Д.

Допустим, вы работаете над проблемой бинарной классификации и придумали модель с точностью 95%. Теперь я спрашиваю вас, что это на самом деле означает, и вы бы достаточно быстро сказали, что из 100 прогнозов, сделанных вашей моделью, 95 из них являются ошибочными. верный. Что ж, давайте поднимем его на ступеньку выше, теперь основная метрика - это отзыв, и я задаю тот же вопрос, вы можете воспользоваться моментом здесь, но в конечном итоге вы придете к объяснению, например, из 100 соответствующих точек данных (положительный класс в целом) ваш Модель способна идентифицировать 80 из них. Пока все хорошо, теперь давайте предположим, что вы оценили свою модель с использованием AUC-ROC в качестве метрики и получили значение 0,75, и снова я задаю вам тот же вопрос, что означает 0,75 или 75%, теперь вам может потребоваться указать это Мысль, некоторые из вас могут сказать, что вероятность того, что модель правильно определяет точку данных, составляет 75%, но к настоящему времени вы бы уже поняли, что это не так. Давайте попробуем получить интуитивное представление об одной из самых популярных метрик производительности для задач классификации.

ИСТОРИЯ

Если вы участвовали в каком-либо онлайн-конкурсе / хакатоне по машинному обучению, то вы, должно быть, сталкивались с областью под кривой - характеристикой оператора приемника, также известной как AUC-ROC, многие из них используют ее в качестве критерия оценки для своих задач классификации. Согласитесь, когда вы впервые об этом услышали, эта мысль, должно быть, однажды пришла вам в голову, что за длинное и причудливое название? Кривая ROC возникла еще во время Второй мировой войны, изначально она использовалась для анализа радиолокационных сигналов. Армия США попыталась измерить способность своего радиолокационного приемника правильно идентифицировать японские самолеты по шумам сигнала [1]. Теперь, когда у нас есть небольшая история происхождения, давайте приступим к делу.

ГЕОМЕТРИЧЕСКАЯ ИНТЕРПРЕТАЦИЯ

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

  • Истинно положительная ставка (TPR)
  • Уровень ложноположительных результатов (FPR)

Прежде чем понимать TPR и FPR, давайте сначала быстро взглянем на матрицу путаницы.

  • Истинно положительный: фактический положительный и прогнозируемый как положительный.
  • Верно-отрицательное: фактическое отрицательное значение и прогнозируемое отрицательное значение.
  • Ложно-положительный результат (ошибка типа I): фактический отрицательный результат, но предполагается, что он положительный.
  • Ложноотрицательный (ошибка типа II): фактически положительный, но прогнозируемый как отрицательный.

Проще говоря, вы можете назвать ложноположительный результат ложной тревогой и ложноотрицательный результат промахом . Теперь давайте посмотрим, что такое TPR и FPR.

Обычно TPR / отзыв / чувствительность - это соотношение положительных примеров, которые правильно идентифицированы, а FPR - это соотношение отрицательных примеров, которые неправильно классифицированы, и, как было сказано ранее, ROC - это не что иное, как сюжет. между TPR и FPR по всем возможным пороговым значениям, а AUC - это вся область под этой кривой ROC.

ВЕРОЯТНОСТНАЯ ИНТЕРПРЕЦИЯ

Мы рассмотрели геометрическую интерпретацию, но я полагаю, что этого недостаточно для развития интуиции, лежащей в основе того, что на самом деле означает 0,75 AUC, теперь давайте посмотрим на AUC-ROC с вероятностной точки зрения.

Позвольте мне сначала поговорить о том, что делает AUC, а позже мы построим наше понимание на основе этого

AUC измеряет, насколько хорошо модель может различать классы.

AUC 0,75 на самом деле будет означать, что, допустим, мы берем две точки данных, принадлежащих к разным классам, тогда есть вероятность 75%, что модель сможет разделить их или правильно расположить их в порядке, т.е. положительная точка имеет более высокий вероятность предсказания, чем отрицательный класс. (если предположить, что более высокая вероятность предсказания означает, что в идеале точка должна принадлежать к положительному классу)

Вот небольшой пример, чтобы прояснить ситуацию.

╔═══════╦═══════╦═════════════╗
║ Index ║ Class ║ Probability ║
╠═══════╬═══════╬═════════════╣
║ P1    ║     1 ║ 0.95        ║
║ P2    ║     1 ║ 0.90        ║
║ P3    ║     0 ║ 0.85        ║
║ P4    ║     0 ║ 0.81        ║
║ P5    ║     1 ║ 0.78        ║
║ P6    ║     0 ║ 0.70        ║
╚═══════╩═══════╩═════════════╝

Здесь у нас есть 6 точек, где P1, P2, P5 принадлежат классу 1, а P3, P4, P6 принадлежат классу 0 и соответствующие предсказанные вероятности в столбце Вероятность, как мы уже сказали, если мы возьмем две точки, принадлежащие разным классам, то что будет вероятность того, что ранг модели правильно их упорядочивает

Мы возьмем все возможные пары так, чтобы одна точка принадлежала классу 1, а другая - классу 0, у нас будет всего 9 таких пар ниже, это все эти 9 возможных пар.

╔═══════╦═════════╦═══════════╗
║ Index ║  Pair   ║ IsCorrect ║
╠═══════╬═════════╬═══════════╣
║     1 ║ (P1,P3) ║ Yes       ║
║     2 ║ (P1,P4) ║ Yes       ║
║     3 ║ (P1,P6) ║ Yes       ║
║     4 ║ (P2,P3) ║ Yes       ║
║     5 ║ (P2,P4) ║ Yes       ║
║     6 ║ (P2,P6) ║ Yes       ║
║     7 ║ (P3,P5) ║ No        ║
║     8 ║ (P4,P5) ║ No        ║
║     9 ║ (P5,P6) ║ Yes       ║
╚═══════╩═════════╩═══════════╝

Здесь столбец isCorrect указывает, правильно ли указанная пара ранжируется на основе прогнозируемой вероятности, т. Е. Точка класса 1 имеет более высокую вероятность, чем точка класса 0, в 7 из этих 9 возможных пар ранжируется класс 1. выше класса 0, или мы можем сказать, что существует 77% вероятность того, что если вы выберете пару точек, принадлежащих к разным классам, модель сможет правильно их различить. Вола! теперь я думаю, что у вас может быть небольшая интуиция за этим числом AUC, просто чтобы прояснить любые дальнейшие сомнения, позвольте нам проверить его с помощью реализации Scikit Learn AUC-ROC

КОГДА ИСПОЛЬЗОВАТЬ

Сказав, что есть определенные места, где AUC-ROC может быть не идеальным.

  • AUC-ROC не работает хорошо при серьезном дисбалансе в наборе данных, чтобы дать некоторую интуицию для этого, позволяет нам оглянуться на геометрическую интерпретацию здесь. По сути, ROC - это график между TPR и FPR (при условии, что класс меньшинства является положительным классом), теперь давайте снова внимательно посмотрим на формулу FPR.

Знаменатель FPR имеет истинно отрицательные значения как один из факторов, поскольку отрицательный класс в большинстве своем, в знаменателе FPR преобладают истинные отрицательные значения, что делает FPR менее чувствительным к любым изменениям в прогнозах класса меньшинства (любое изменение числа ложных положительных результатов не отражается должным образом. в FPR из-за высокого знаменателя). Чтобы преодолеть это, используются кривые Precision-Recall вместо кривой характеристик оператора приемника, а затем вычисляется AUC, попробуйте ответить на этот вопрос самостоятельно, как кривая Precision Recall решает эту проблему (Подсказка: сравните кривую PR и входные данные ROC, вспомните и TPR такие же, технически только FPR заменяется на Precision, просто сравните знаменатели для обоих и попытайтесь оценить, как решается проблема дисбаланса на кривой PR)

  • AUC-ROC пытается измерить правильность ранжирования классификаций, он не принимает во внимание фактические предсказанные вероятности, позвольте мне попытаться прояснить этот момент с помощью небольшого фрагмента кода
import pandas as pd
y_pred_1 = [0.99,0.98,0.97,0.96,0.91,0.90,0.89,0.88]
y_pred_2 = [0.99,0.95,0.90,0.85,0.20,0.15,0.10,0.05]
y_act = [1,1,1,1,0,0,0,0]
test_df = pd.DataFrame (zip(y_act,y_pred_1,y_pred_2),columns=['Class','Model_1','Model_2'])
test_df

У нас есть две модели Model_1 и Model_2, как упоминалось выше, обе отлично справляются с разделением двух классов, но если я попрошу вас выбрать одну из них, какой она будет, задержитесь на вашем ответе, позвольте мне сначала построить эти вероятности модели.

import matplotlib.pyplot as plt
cols = ['Model_1','Model_2']
fig,axs = plt.subplots(1,2,figsize=(15,5))
for index,col in enumerate(cols): 
    sns.kdeplot(d2[d2['Status']==1][col],label="Class 1",shade=True,ax=axs[index])
    sns.kdeplot(d2[d2['Status']==0][col],label="Class 0",shade=True,ax = axs[index])
    axs[index].set_xlabel(col)
plt.show()

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

Поэтому в идеале следует использовать AUC-ROC, когда набор данных не имеет серьезного дисбаланса и когда ваш вариант использования не требует, чтобы вы имели дело с фактическими прогнозируемыми вероятностями.

AUC ДЛЯ МУЛЬТИКЛАССА

Для настройки нескольких классов мы можем просто использовать методологию «один против всех», и у вас будет одна кривая ROC для каждого класса. Допустим, у вас есть четыре класса A, B, C, D, тогда будут кривые ROC и соответствующие значения AUC для всех четырех классов, т.е. если A будет одним классом, а B, C и D вместе будут другими классами, аналогично B - это один класс, а A, C и D объединены как другие классы и т. д.

КОНЕЦ ЗАПИСИ

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

LinkedIn: https://www.linkedin.com/in/ravindra-sharma-832a04156

ИСПОЛЬЗОВАННАЯ ЛИТЕРАТУРА

[1]: « Использование кривой рабочих характеристик приемника (ROC) для анализа модели классификации: последнее примечание, представляющее исторический интерес » (PDF). Департамент математики Университета Юты. Департамент математики Университета Юты. Проверено 25 мая 2017 г.