Что такое «базовый уровень» в кривой точного отзыва

15

Я пытаюсь понять точную кривую отзыва, я понимаю, что такое точность и отзыв, но не понимаю, что такое базовое значение. Я читал эту ссылку https://classeval.wordpress.com/introduction/introduction-to-the-precision-recall-plot/

и я не понимаю часть базовой линии, как показано в «Кривая точного восстановления идеального классификатора», что она делает? и как мы это вычисляем? Это просто случайная базовая линия, которую мы выбираем? Например, у меня есть данные Twitter с такими атрибутами, как retweet,status_countetc, и моя метка класса равна Favorited1, если Favorited, и 0, если не Favorited, и я применяю наивный байесовский метод, и теперь я хочу нарисовать кривую точности-отзыва, как мне установить базовую линию в этом случае ?

hyeri
источник

Ответы:

13

«Кривая базовой линии» на графике кривой PR представляет собой горизонтальную линию с высотой, равной количеству положительных примеров по общему количеству обучающих данных N , т.е. доля положительных примеров в наших данных ( PPN )PN

Хорошо, почему это так? Давайте предположим , что у нас есть «нездоровый классификатор» . С J возвращает случайную вероятность р я к я -ая выборка , например у я , чтобы быть в классе А . Для удобства, скажем , р я ~ U [ 0 , 1 ] . Прямое следствие этого случайного назначения класса состоит в том, что C J будет иметь (ожидаемую) точность, равную доле положительных примеров в наших данных. Это только естественно; любая абсолютно случайная выборка наших данных будет иметь ECJCJpiiyiApiU[0,1]CJправильно классифицированных примеров. Это будет справедливо для любого порогового значения вероятностицмы могли бы использоватькачестве границы решения для вероятностей членов классавозвращаемыхCJ. (qобозначает значение в[0,1],где значения вероятности, большие или равныеq, классифицируются в классеA.) С другой стороны, характеристика отзываCJ(в ожидании) равнаq,еслиpiU[0,1]. На любом заданном порогеE{PN}qCJq[0,1]qACJqpiU[0,1] мы выберем (приблизительно) ( 100 ( 1 - q ) ) % наших общих данных, которые впоследствии будут содержать (приблизительно) ( 100 ( 1 - q ) ) % от общего числа экземпляров класса A в выборке. Отсюда и горизонтальная линия, о которой мы упоминали в начале! Для каждого значения отзыва (значения x на графике PR) соответствующее значение точности (значения y на графике PR) равно Pq(100(1q))%(100(1q))%Axy .PN

Быстрое боковое Примечание: Порог является не обычно равно 1 минус ожидаемого отзыв. Это происходит в случае C J, упомянутого выше, только из-за случайного равномерного распределения результатов C J ; для другого распределения (например, p iB ( 2 , 5 ) ) это приближенное отношение тождества между q и отзывом не выполняется; U [ 0 , 1 ] был использован потому, что его проще всего понять и мысленно визуализировать. Для другого случайного распределения в [ 0qCJCJpiB(2,5)qU[0,1] профиль PR C J не изменится. Изменится только размещение значений PR для данныхзначений q .[0,1]CJq

Теперь, что касается идеального классификатора , можно было бы указать классификатор, который возвращает вероятность 1 для экземпляра y i выборки класса A, если y i действительно находится в классе A, и дополнительно C P возвращает вероятность 0, если y i не является членом класса. . Это подразумевает, что для любого порога q мы будем иметь точность 100 % (т.е. в терминах графа мы получим линию, начинающуюся с точностью 100 % ). Единственный момент мы не получаем 100CP1yiAyiACP0yiAq100%100% точности при q = 0 . При q = 0 точность падает до доли положительных примеров в наших данных ( P100%q=0q=0 )как (душевнобольно?) Классифицировать даже точки с0вероятностью того классаАкак в классеА. График PRCPимеет только два возможных значения для его точности,1иPPN0AACP1 .PN

ОК и немного кода R, чтобы увидеть это на собственном опыте с примером, где положительные значения соответствуют нашей выборки. Обратите внимание , что мы делаем «мягкое» присвоение класса категории в том смысле , что значение вероятности , связанное с каждой точкой квантифицирует для нашей уверенности в том , что эта точке принадлежит классу А .40%A

  rm(list= ls())
  library(PRROC)
  N = 40000
  set.seed(444)
  propOfPos = 0.40
  trueLabels = rbinom(N,1,propOfPos)
  randomProbsB = rbeta(n = N, 2, 5) 
  randomProbsU = runif(n = N)  

  # Junk classifier with beta distribution random results
  pr1B <- pr.curve(scores.class0 = randomProbsB[trueLabels == 1], 
                   scores.class1 = randomProbsB[trueLabels == 0], curve = TRUE) 
  # Junk classifier with uniformly distribution random results
  pr1U <- pr.curve(scores.class0 = randomProbsU[trueLabels == 1], 
                   scores.class1 = randomProbsU[trueLabels == 0], curve = TRUE) 
  # Perfect classifier with prob. 1 for positives and prob. 0 for negatives.
  pr2 <- pr.curve(scores.class0 = rep(1, times= N*propOfPos), 
                  scores.class1 = rep(0, times = N*(1-propOfPos)), curve = TRUE)

  par(mfrow=c(1,3))
  plot(pr1U, main ='"Junk" classifier (Unif(0,1))', auc.main= FALSE, 
       legend=FALSE, col='red', panel.first= grid(), cex.main = 1.5);
  pcord = pr1U$curve[ which.min( abs(pr1U$curve[,3]- 0.50)),c(1,2)];
  points( pcord[1], pcord[2], col='black', cex= 2, pch = 1)
  pcord = pr1U$curve[ which.min( abs(pr1U$curve[,3]- 0.20)),c(1,2)]; 
  points( pcord[1], pcord[2], col='black', cex= 2, pch = 17)
  plot(pr1B, main ='"Junk" classifier (Beta(2,5))', auc.main= FALSE,
       legend=FALSE, col='red', panel.first= grid(), cex.main = 1.5);
  pcord = pr1B$curve[ which.min( abs(pr1B$curve[,3]- 0.50)),c(1,2)]; 
  points( pcord[1], pcord[2], col='black', cex= 2, pch = 1)
  pcord = pr1B$curve[ which.min( abs(pr1B$curve[,3]- 0.20)),c(1,2)]; 
  points( pcord[1], pcord[2], col='black', cex= 2, pch = 17)
  plot(pr2, main = '"Perfect" classifier', auc.main= FALSE, 
       legend=FALSE, col='red', panel.first= grid(), cex.main = 1.5);  

enter image description here

где черные круги и треугольники обозначают и q = 0,20 соответственно на первых двух графиках. Мы сразу видим, что классификаторы «мусора» быстро идут с точностью, равной Pq=0.50q=0.20 ; Точно так же идеальный классификатор имеет точность1для всех переменных отзыва. Неудивительно, что AUCPR для классификатора «мусор» равен доле положительного примера в нашей выборке (0,40), а AUCPR для «идеального классификатора» примерно равен1.PN10.401

Реально PR-граф идеального классификатора немного бесполезен, потому что никогда не может иметь отзывов (мы никогда не предсказываем только отрицательный класс); мы просто начинаем рисовать линию из верхнего левого угла, как условно. Строго говоря, он должен показывать только две точки, но это приведет к ужасной кривой. : D0

Для справки, в CV уже есть очень хороший ответ относительно полезности кривых PR: здесь , здесь и здесь . Просто внимательно прочитав их, вы получите хорошее общее представление о кривых PR.

usεr11852
источник
1
Присоединяйся к этому сообществу только для того, чтобы я мог проголосовать. Это отличное объяснение концепции базовой линии в точных кривых отзыва. Как биоинформатик я нашел это чрезвычайно полезным.
Джим
1
@jimh: Спасибо, очень приятно это слышать. Я рад, что сообщение было полезным.
usεr11852
Я знаю, что это не комментарий, который приносит полезную информацию, но я хотел бы поблагодарить вас за подробное и открытое объяснение.
Рик S
0

Great answer above. Here is my intuitive way of thinking about it. Imagine you have a bunch of balls red = positive and yellow = negative, and you throw them randomly into a bucket = positive fraction. Then if you have the same number of red and yellow balls, when you calculate PREC=tp/tp+fp=100/100+100 from your bucket red (positive) = yellow (negative), therefore, PREC=0.5. However, if I had 1000 red balls and 100 yellow balls, then in the bucket I would randomly expect PREC=tp/tp+fp=1000/1000+100=0.91 because that is the chance baseline in the positive fraction which is also RP/RP+RN, where RP = real positive and RN = real negative.

Christopher John
источник