Warum Platt's Skalierung verwenden?


17

Um ein Konfidenzniveau auf eine Wahrscheinlichkeit beim überwachten Lernen zu kalibrieren (z. B. um das Vertrauen aus einer SVM oder einem Entscheidungsbaum unter Verwendung von überabgetasteten Daten abzubilden), besteht eine Methode in der Verwendung der Plattschen Skalierung (z. B. Erhalten kalibrierter Wahrscheinlichkeiten aus dem Boosten) ).

Grundsätzlich verwendet man die logistische Regression, um bis [ 0 ; 1 ] . Die abhängige Variable ist die wahre Bezeichnung und der Prädiktor ist das Vertrauen aus dem nicht kalibrierten Modell. Was ich nicht verstehe, ist die Verwendung einer anderen Zielvariablen als 1 oder 0. Die Methode fordert die Erstellung eines neuen "Labels":[-;][0;1]

Um eine Überanpassung des Sigmoid-Zugsets zu vermeiden, wird ein Modell außerhalb der Stichprobe verwendet. Wenn der Zugsatz positive und N - negative Beispiele enthält, verwendet Platt Calibration für jedes Trainingsbeispiel die Zielwerte y + und y - (anstelle von 1 bzw. 0), wobei y + = N + + 1N+N-y+y-

y+=N++1N++2;y-=1N-+2

Was ich nicht verstehe, ist, wie dieses neue Ziel nützlich ist. Wird logistische Regression die abhängige Variable nicht einfach als binäres Label behandeln (unabhängig davon, welches Label vergeben wird)?

AKTUALISIEREN:

1/0PROC GENMOD

data(ToothGrowth) 
attach(ToothGrowth) 

  # 1/0 coding 
dep          <- ifelse(supp == "VC", 1, 0) 
OneZeroModel <- glm(dep~len, family=binomial) 
OneZeroModel 
predict(OneZeroModel) 

  # Platt coding 
dep2           <- ifelse(supp == "VC", 31/32, 1/32) 
plattCodeModel <- glm(dep2~len, family=binomial) 
plattCodeModel 
predict(plattCodeModel) 

compare        <- cbind(predict(OneZeroModel), predict(plattCodeModel)) 

plot(predict(OneZeroModel), predict(plattCodeModel))

Antworten:


13

Ich schlage vor, die Wikipedia-Seite der logistischen Regression zu lesen . Es wird angegeben, dass die logistische Regression im Fall einer binären abhängigen Variablen die Prädiktoren auf die Wahrscheinlichkeit des Auftretens der abhängigen Variablen abbildet. Ohne Transformation beträgt die für das Training des Modells verwendete Wahrscheinlichkeit entweder 1 (wenn y im Trainingssatz positiv ist) oder 0 (wenn y negativ ist).

Also: Anstatt die absoluten Werte 1 für positive Klasse und 0 für negative Klasse zu verwenden, wenn angepasst wirdpich=1(1+exp(EINfich+B))fichy+y-


Danke für die Antwort! Ich habe SAS zum ersten Mal verwendet und konnte keine andere Antwortvariable abrufen. Ich füge Folgendes als Beispiel in R ein und sehe, dass eine Warnung ausgegeben wird, dass es sich nicht um eine ganzzahlige Antwortvariable handelt, das Ergebnis jedoch für ein anderes Modell geeignet ist.
B_Miner

data (ToothGrowth) attach (ToothGrowth) # 1/0 encoding dep <-ifelse (supp == "VC", 1,0) OneZeroModel <-glm (dep ~ len, family = binomial) OneZeroModel predict (OneZeroModel) #Platt coding dep2 <-ifelse (supp == "VC", 31/32, 1/32) plattCodeModel <-glm (dep2 ~ len, family = binomial) plattCodeModel predict (plattCodeModel) compare <-cbind (predict (OneZeroModel), predict ( plattCodeModel)) plot (predict (OneZeroModel), predict (plattCodeModel))
B_Miner

@ user2040: 1. Ja ... gibt es eine Frage oder ist das nur eine Bemerkung :)? 2. Warum fügst du der Frage nicht den Code hinzu? Keine Formatierung ist schrecklich.
Steffen

2

Eine andere Methode zur Vermeidung von Überanpassungen, die ich für nützlich befunden habe, besteht darin, das univariate logistische Regressionsmodell an die Ausgabe der ausgelassenen Kreuzvalidierung der SVM anzupassen, die mithilfe der Bereichsgrenze effizient approximiert werden kann .

Wenn Sie jedoch einen Klassifikator benötigen, der Schätzungen der Wahrscheinlichkeit einer Klassenzugehörigkeit erstellt, ist es besser, die logistische Kernel-Regression zu verwenden, um dies direkt zu erreichen. Der Ausgang des SVM ist für eine diskrete Klassifizierung ausgelegt und enthält nicht unbedingt die Informationen, die für eine genaue Schätzung der Wahrscheinlichkeiten außerhalb der Kontur von p = 0,5 erforderlich sind.

Gaußsche Prozessklassifikatoren sind eine weitere gute Option, wenn Sie einen kernelbasierten probabilistischen Klassifikator wünschen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.