2013-09-24 8 views
17

Ich muss wissen, wie man die logistischen Regressionskoeffizienten so zurückgibt, dass ich die vorhergesagten Wahrscheinlichkeiten selbst erzeugen kann.Scikit Learn: Logistische Regression Modellkoeffizienten: Erläuterung

Mein Code sieht wie folgt aus:

lr = LogisticRegression() 
lr.fit(training_data, binary_labels) 

# Generate probabities automatically 
predicted_probs = lr.predict_proba(binary_labels) 

ich die lr.coeff_ Werte angenommen hatte typische logistische Regression folgen würde, so dass ich die vorhergesagten Wahrscheinlichkeiten wie diese zurückkehren könnte:

sigmoid(dot([val1, val2, offset], lr.coef_.T)) 

Aber Das ist nicht die richtige Formulierung. Hat jemand das richtige Format zum Erzeugen vorhergesagter Wahrscheinlichkeiten von Scikit Learn LogisticRegression? Danke!

Antwort

15

einen Blick auf den Dokumentationen (http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html) versetzt ist Koeffizient durch lr.coef_ Array

nicht gespeichert

coef_, shape = [n_classes-1, n_features] Koeffizient der Merkmale im Entscheidungs Funktion. coef_ ist die readonly-Eigenschaft von raw_coef_, die dem internen Speicherlayout von liblinear folgt. intercept_array, shape = [n_classes-1] Intercept (a.k.a.bias) hinzugefügt zur Entscheidungsfunktion. Sie ist nur verfügbar, wenn der Parameter intercept auf True gesetzt ist.

Versuch:

sigmoid(dot([val1, val2], lr.coef_) + lr.intercept_) 
+0

#prgao, danke, aber Ihre Antwort nur sagt mir, wie NICHT die Wahrscheinlichkeiten zu erzeugen. Weißt du, wie man sie berechnet? Vielen Dank. – zbinsd

+2

Sigmoid (Punkt ([val1, val2], lr.coef_) + lr.intercept_) – prgao

+1

#prgao, das hat es getan. Verdammt, ich dachte, das hätte 'sigmoid (dot ([val1, val2, 1], lr.coef_.T))' 'funktioniert, aber es stellt sich heraus, dass ich den Schnittpunkt zweimal einfügen muss, wie in:' sigmoid (dot ([val1, val2, 1], lr.coef_.T) + lr.intercept_) '. Danke, dass du darauf hingewiesen hast. – zbinsd