Я только что закончил читать эту дискуссию. Они утверждают, что PR AUC лучше, чем ROC AUC по несбалансированному набору данных.
Например, у нас есть 10 образцов в тестовом наборе данных. 9 образцов положительные и 1 отрицательный. У нас ужасная модель, которая предсказывает все положительное. Таким образом, у нас будет метрика: TP = 9, FP = 1, TN = 0, FN = 0.
Тогда Precision = 0,9, Recall = 1,0. Точность и отзыв очень высоки, но у нас плохой классификатор.
С другой стороны, TPR = TP / (TP + FN) = 1,0, FPR = FP / (FP + TN) = 1,0. Поскольку FPR очень высокий, мы можем определить, что это не очень хороший классификатор.
Очевидно, что ROC лучше, чем PR для несбалансированных наборов данных. Может кто-нибудь объяснить, почему пиар лучше?
machine-learning
model-selection
roc
unbalanced-classes
precision-recall
machineLearner
источник
источник
Ответы:
Во-первых, претензия на пост Kaggle является поддельной. В документе, на который они ссылаются, « Взаимосвязь между точным отзывом и кривыми ROC », никогда не утверждается, что PR AUC лучше, чем ROC AUC. Они просто сравнивают свои свойства, не оценивая их ценность.
Кривые ROC иногда могут вводить в заблуждение в некоторых очень несбалансированных приложениях. Кривая ROC все еще может выглядеть довольно хорошо (то есть лучше, чем случайная), в то же время неправильно классифицируя большинство или весь класс меньшинства.
Напротив, PR-кривые специально предназначены для обнаружения редких событий и довольно полезны в этих сценариях. Они покажут, что ваш классификатор имеет низкую производительность, если он неправильно классифицирует большинство или весь класс меньшинства. Но они не очень хорошо подходят для более сбалансированных случаев или случаев, когда негативы встречаются редко.
Кроме того, поскольку они чувствительны к базовой вероятности положительных событий, они плохо обобщаются и применяются только к конкретному набору данных, на котором они были построены, или к наборам данных с точно таким же балансом. Это означает, что обычно сложно сравнивать кривые PR из разных исследований, ограничивая их полезность.
Как всегда, важно понимать инструменты, доступные вам, и выбирать правильный для правильного применения. Я предлагаю прочитать вопрос ROC против кривых точности и отзыва здесь, в резюме.
источник
Ваш пример определенно верен.
Тем не менее, я думаю, что в контексте приложения Kaggle для конкуренции / реальной жизни искаженный набор данных обычно означает набор данных с гораздо меньшим количеством положительных выборок, чем отрицательных выборок. Только в этом случае PR AUC является более «значимым», чем ROC AUC.
Рассмотрим детектор с TP = 9, FN = 1, TN = 900, FP = 90, где имеется 10 положительных и 990 отрицательных выборок. TPR = 0,9, FPR = 0,1, что указывает на хорошую оценку ROC, однако точность = 0,1, что указывает на плохую оценку PR.
источник
Вы на полпути там.
Обычно, когда я делаю несбалансированные модели, черт, даже сбалансированные модели, я смотрю на PR для ВСЕХ моих классов.
В вашем примере, да, ваш положительный класс имеет P = 0,9 и R = 1,0. Но то, на что вы должны смотреть, это ВСЕ ваши занятия. Так что для вашего отрицательного класса, ваш P = 0 и ваш R = 0. И вы обычно не просто смотрите на PR баллы индивидуально. Вы хотите взглянуть на оценку F1 (макро F1 или микро F1, в зависимости от вашей проблемы), которая представляет собой среднее гармоническое из ваших оценок PR как для класса 1, так и для класса 0. Ваша оценка PR класса 1 очень хорошая, но в сочетании с Ваша оценка PR класса 0, ваша оценка F1 будет УЖАСНЫ, что является правильным выводом для вашего сценария.
TL, DR: посмотрите на баллы PR для ВСЕХ ваших классов и объедините их с метрикой, подобной баллу F1, чтобы получить реалистичное заключение о производительности вашей модели. Счет F1 для вашего сценария будет УЖАСНЫМ, что является правильным выводом для вашего сценария.
источник