Solved – How to interpret multiclass logistic regression coefficients

machine learningpythonscikit learn

I am looking to understand the printed coefficients from logistic regression for my classification problem. I have 4 classes (certain, likely, possible and unlikely, for a gene to be related to a disease). I run logistic regression like this:

logreg = LogisticRegression(penalty='l1', C=0.5, max_iter=500, solver='liblinear', multi_class='auto') 
logreg.fit(X_train, Y_train)
print('All LR feature weights:')
coef=logreg.coef_[0]
intercept=logreg.intercept_
classes=logreg.classes_
print(coef)
print(intercept)
print(classes)

The coefficent output looks like this:

All LR feature weights:
[ 0.44250477  0.          0.          0.          0.          0.
  0.          0.          0.          0.          0.          0.
  0.          0.          0.          0.53959074  0.          0.
  0.          0.          0.          0.          0.          0.43750937
  0.          0.          0.          0.          0.          0.2460205
  0.19828843  0.         -0.01036487  0.          0.          0.
  0.          0.          0.        ]

I understand that negative weights relates to the ability to class negative samples and vice versa with positive samples, but how do I interpret this with 4 classes? Do I need to calculat the coefficents in another way? Any help wuld be appreciated.

Best Answer

Someone told me to move to this stackexchange from asking on stackoverflow, however my answer has actually turned out to be a coding one: I have my labels encoded as 0-3 and:

coef=logreg.coef_[0]

is then printing out the coefficients only for label 0

I need:

coef_certain=logreg.coef_[0]
coef_likely=logreg.coef_[1]
coef_possible_=logreg.coef_[2]
coef_unlikely=logreg.coef_[3]

or just

coef_certain=logreg.coef_

Now I can view all feature weights used for every class for interpretation.

Related Question