Ich weiß, dass ich etwas in meinem Verständnis der logistischen Regression vermisse und würde mich über jede Hilfe sehr freuen.
Nach meinem Verständnis geht die logistische Regression davon aus, dass die Wahrscheinlichkeit eines 1-Ergebnisses bei den Eingaben eine lineare Kombination der Eingaben ist, die durch eine inverse logistische Funktion geleitet wird. Dies wird im folgenden R-Code veranschaulicht:
#create data:
x1 = rnorm(1000) # some continuous variables
x2 = rnorm(1000)
z = 1 + 2*x1 + 3*x2 # linear combination with a bias
pr = 1/(1+exp(-z)) # pass through an inv-logit function
y = pr > 0.5 # take as '1' if probability > 0.5
#now feed it to glm:
df = data.frame(y=y,x1=x1,x2=x2)
glm =glm( y~x1+x2,data=df,family="binomial")
und ich bekomme folgende Fehlermeldung:
Warnmeldungen: 1: glm.fit: Algorithmus konvergierte nicht 2: glm.fit: angepasste Wahrscheinlichkeiten mit 0 oder 1 sind aufgetreten
Ich habe jetzt einige Zeit mit R gearbeitet; genug, um zu wissen, dass wahrscheinlich ich die Schuld bin .. was passiert hier?
Antworten:
quelle
LogisticRegression eignet sich zur Anpassung, wenn Wahrscheinlichkeiten oder Proportionen als Ziele angegeben werden und nicht nur 0/1 Ergebnisse.
Hier haben wir drei mögliche Ziele für die logistische Regression. Dies
p
ist das wahre / Ziel-Verhältnis / die Wahrscheinlichkeit,pnoisy
das / die p ist, wobei normales Rauschen in die logarithmische Wahrscheinlichkeitsskala aufgenommen wird, unddichot
das / die als Parameter für das binomische PDF behandelt und daraus abgetastet wird. Sie sollten alle 3 testen. Ich habe festgestellt, dass einige Open-Source-LR-Implementierungen nicht passenp
.Abhängig von Ihrer Anwendung bevorzugen Sie möglicherweise pnoisy.
In der Praxis sollten Sie auch überlegen, wie wahrscheinlich das Rauschen in Ihrer Zielanwendung geformt wird, und versuchen, dies zu emulieren.
quelle