Was ist "Grundlinie" in der Präzisionsrückrufkurve

15

Ich versuche, die Genauigkeits-Rückrufkurve zu verstehen. Ich verstehe, was Präzision und Rückruf sind, aber das, was ich nicht verstehe, ist der "Grundlinien" -Wert. Ich habe diesen Link gelesen https://classeval.wordpress.com/introduction/introduction-to-the-precision-recall-plot/

und ich verstehe den in "Eine Präzisions-Rückruf-Kurve eines perfekten Klassifikators" gezeigten Grundlinienteil nicht. Was macht es? und wie berechnen wir das? Ist es nur eine zufällige Basislinie, die wir auswählen? Zum Beispiel habe ich Twitter-Daten mit Attributen wie retweet,status_countetc und meine Klassenbezeichnung ist Favorited1, wenn favorisiert, und 0, wenn nicht favorisiert, und ich wende naive Bayes darauf an, und jetzt möchte ich eine Präzisions-Rückruf-Kurve zeichnen, wie soll ich meine Basislinie in diesem Fall festlegen ?

hyeri
quelle

Antworten:

13

Die "Grundlinienkurve" in einem PR-Kurvendiagramm ist eine horizontale Linie mit einer Höhe, die der Anzahl der positiven Beispiele P über der Gesamtzahl der Trainingsdaten N , d. H. der Anteil positiver Beispiele in unseren Daten ( PN ).

OK, warum ist das so? Nehmen wir an , wir eine „Junk - Klassifikator“ haben . C J gibt eine zufällige Wahrscheinlichkeit p i an die i- te Stichprobeninstanz y i zurück , um in Klasse A zu sein . Sagen Sie der Einfachheit halber p iU [ 0 , 1 ] . Die direkte Implikation dieser zufälligen Klassenzuordnung ist, dass C J eine (erwartete) Genauigkeit aufweist, die dem Anteil positiver Beispiele in unseren Daten entspricht. Es ist nur natürlich; Jede völlig zufällige Teilstichprobe unserer Daten hat ECJCJpichichyichEINpichU[0,1]CJrichtig klassifizierte Beispiele. Dies gilt für jeden Wahrscheinlichkeitsschwellenwertq, denwir als Entscheidungsgrenze für die vonCJ zurückgegebenenWahrscheinlichkeiten der Klassenzugehörigkeit verwenden können. (qbezeichnet einen Wert in[0,1],bei dem Wahrscheinlichkeitswerte größer oder gleichqin KlasseAklassifiziert werden.) Andererseits ist die Rückrufleistung vonCJ(in Erwartung) gleichq,wenn. Bei jedem gegebenen Schwellenwertwir (ungefähr)auswählen.E{PN}qCJq[0,1]qEINCJqq ( 100 ( 1 - q ) ) % ( 100 ( 1 - q ) ) % A x y PpichU[0,1]q(100(1-q))%von unseren Gesamtdaten, die anschließend (ungefähr) der Gesamtzahl der Instanzen der Klasse in der Stichprobe enthalten. Daher die eingangs erwähnte horizontale Linie! Für jeden Rückrufwert ( Werte im PR-Diagramm) ist der entsprechende Genauigkeitswert ( Werte im PR-Diagramm) gleich .(100(1-q))%EINxyPN

Eine kurze Randnotiz: Die Schwelle ist im Allgemeinen nicht gleich 1 minus dem erwarteten Rückruf. Dies geschieht im Fall eines erwähnten nur aufgrund der zufälligen gleichmäßigen Verteilung der Ergebnisse von ; für eine andere Verteilung (zB ) gilt diese ungefähre Identitätsbeziehung zwischen und Rückruf nicht; wurde verwendet, weil es am einfachsten zu verstehen und mental zu visualisieren ist. Bei einer anderen Zufallsverteilung in ändert sich das PR-Profil von jedoch nicht. Lediglich die Platzierung der PR-Werte für bestimmte Werte ändert sich.C J C J p iB ( 2 , 5 ) q U [ 0 , 1 ] [ 0 , 1 ] C J qqCJCJpichB(2,5)qU[0,1][0,1]CJq

nun einen perfekten Klassifikator , so würde man einen Klassifikator meinen, der die Wahrscheinlichkeit für die Beispielinstanz der Klasse zurückgibt, wenn tatsächlich in der Klasse und zusätzlich gibt die Wahrscheinlichkeit wenn kein Mitglied der Klasse . Dies impliziert, dass wir für jeden Schwellenwert eine Genauigkeit von (dh in grafischen Begriffen erhalten wir eine Linie, die mit einer Genauigkeit von beginnt ). Der einzige Punkt, an dem wir keine Genauigkeit erreichen, ist bei . FürCP1yichEINyichEINCP0yichEINq100%100%100%q=0q=0Die Genauigkeit hängt vom Anteil positiver Beispiele in unseren Daten ab ( ), da wir (irrsinnig?) gerade Punkte mit einer Wahrscheinlichkeit von , Klasse als Klasse klassifizieren . Der PR-Graph von hat nur zwei mögliche Werte für seine Genauigkeit: und .PN0AACP1PN

OK und ein R-Code, um dies anhand eines Beispiels zu sehen, bei dem die positiven Werte unserer Stichprobe entsprechen. Beachten Sie, dass wir eine "weiche Zuordnung" der Klassenkategorie in dem Sinne vornehmen, dass der jedem Punkt zugeordnete Wahrscheinlichkeitswert unser Vertrauen quantifiziert, dass dieser Punkt zur Klasse .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);  

Bildbeschreibung hier eingeben

wobei die schwarzen Kreise und Dreiecke in den ersten beiden jeweils und bezeichnen. Wir sehen sofort, dass die "Junk" -Klassifikatoren schnell eine Genauigkeit von . In ähnlicher Weise hat der perfekte Klassifikator die Genauigkeit alle Rückrufvariablen. Es überrascht nicht, dass die AUCPR für den Klassifikator "Junk" dem Anteil des positiven Beispiels in unserer Stichprobe entspricht (q=0.50q=0.20PN10.40 ) und der AUCPR für den "perfekten Klassifikator" ungefähr gleich .1

Realistisch gesehen ist der PR-Graph eines perfekten Klassifikators ein bisschen nutzlos, weil man niemals einen Rückruf von haben kann (wir sagen niemals nur die negative Klasse voraus ). wir fangen einfach an, die Linie von der oberen linken Ecke aus Konventionsgründen zu zeichnen. Genau genommen sollte es nur zwei Punkte zeigen, aber dies würde eine schreckliche Kurve machen. : D0

Um es festzuhalten, es gibt bereits einige sehr gute Antworten im Lebenslauf in Bezug auf die Nützlichkeit von PR-Kurven: hier , hier und hier . Wenn Sie sie nur sorgfältig durchlesen, erhalten Sie ein allgemeines Verständnis für PR-Kurven.

usεr11852 sagt Reinstate Monic
quelle
1
Ist dieser Community beigetreten, damit ich sie unterstützen kann. Dies ist eine hervorragende Erklärung für das Konzept der Grundlinie in Präzisionsrückrufkurven. Als Bioinformatiker fand ich es äußerst hilfreich.
10.
1
@jimh: Danke, es ist sehr schön, das zu hören. Ich bin froh, dass der Beitrag hilfreich war.
usεr11852 sagt Reinstate Monic
Ich weiß, es ist kein Kommentar, der nützliche Informationen enthält, aber ich möchte Ihnen vielmals für Ihre gründliche und aufschlussreiche Erklärung danken.
Ric S
0

Großartige Antwort oben. Hier ist meine intuitive Art, darüber nachzudenken. Stellen Sie sich vor, Sie haben einen Haufen Bälle rot = positiv und gelb = negativ und werfen sie zufällig in einen Eimer = positiver Bruch. Wenn Sie dann die gleiche Anzahl roter und gelber Kugeln haben und PREC = tp / tp + fp = 100/100 + 100 aus Ihrem Eimer rot (positiv) = gelb (negativ) berechnen, ist PREC = 0,5. Wenn ich jedoch 1000 rote und 100 gelbe Bälle hätte, würde ich im Eimer zufällig PREC = tp / tp + fp = 1000/1000 + 100 = 0,91 erwarten, da dies die Zufallsgrundlinie in der positiven Fraktion ist, die auch RP ist / RP + RN, wobei RP = real positiv und RN = real negativ ist.

Christopher John
quelle