Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Scikit Learn: Logistic Regression model coefficients: Clarification

I need to know how to return the logistic regression coefficients in such a manner that I can generate the predicted probabilities myself.

My code looks like this:

lr = LogisticRegression() lr.fit(training_data, binary_labels)  # Generate probabities automatically predicted_probs = lr.predict_proba(binary_labels) 

I had assumed the lr.coeff_ values would follow typical logistic regression, so that I could return the predicted probabilities like this:

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

But this is not the appropriate formulation. Does anyone have the proper format for generating predicted probabilities from Scikit Learn LogisticRegression? Thanks!

like image 922
zbinsd Avatar asked Sep 24 '13 23:09

zbinsd


2 Answers

take a look at the documentations (http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html), offset coefficient isn't stored by lr.coef_

coef_ array, shape = [n_classes-1, n_features] Coefficient of the features in the decision function. coef_ is readonly property derived from raw_coef_ that follows the internal memory layout of liblinear. intercept_ array, shape = [n_classes-1] Intercept (a.k.a. bias) added to the decision function. It is available only when parameter intercept is set to True.

try:

sigmoid( dot([val1, val2], lr.coef_) + lr.intercept_ )  
like image 169
prgao Avatar answered Sep 24 '22 03:09

prgao


The easiest way is by calling coef_ attribute of LR classifier:

Definition of coef_ please check Scikit-Learn document:

See example:

from sklearn.linear_model import LogisticRegression  clf = LogisticRegression()   clf.fit(x_train,y_train)    weight = classifier.coef_   
like image 44
Yinhao Avatar answered Sep 24 '22 03:09

Yinhao