2013-09-24 14 views
17

Ho bisogno di sapere come restituire i coefficienti di regressione logistica in modo tale da poter generare le probabilità previste.Scikit Apprendimento: coefficienti del modello di regressione logistica: chiarimento

Il mio codice è simile al seguente:

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

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

avevo assunto i valori lr.coeff_ seguirebbe tipica di regressione logistica, in modo da poter restituire i probabilità previste in questo modo:

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

Ma questa non è la formulazione appropriata. Qualcuno ha il formato corretto per generare le probabilità previste da Scikit Learn LogisticRegression? Grazie!

risposta

15

un'occhiata a documentazioni (http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html), coefficiente di correzione non viene memorizzato dal lr.coef_

matrice coef_, figura = [n_classes-1, n_features] Coefficiente delle caratteristiche nella decisione funzione. coef_ è proprietà di sola lettura derivata da raw_coef_ che segue il layout di memoria interno di liblinear. intercept_ array, shape = [n_classes-1] L'intercettazione (a.k.a. bias) ha aggiunto alla funzione decisionale. È disponibile solo quando l'intercettazione del parametro è impostata su True.

prova:

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

#prgao, grazie, ma la tua risposta mi dice solo come non generare le probabilità. Sai come calcolarli? Grazie. – zbinsd

+2

sigmoid (punto ([val1, val2], lr.coef_) + lr.intercept_) – prgao

+1

#prgao, l'ha fatto. Accidenti, ho pensato che questo avrebbe funzionato 'sigmoid (dot ([val1, val2, 1], lr.coef_.T))', ma si scopre, ho bisogno di includere l'intercetta due volte, come in: 'sigmoid (punto ([val1, val2, 1], lr.coef_.T) + lr.intercept_) '. Grazie per averlo indicato. – zbinsd

Problemi correlati