如何获得多项Logistic回归系数?

时间:2018-01-29 18:55:33

标签: python pandas scikit-learn logistic-regression

我需要使用sklearn来计算多重逻辑回归的系数:

X =

x1          x2          x3   x4         x5    x6
0.300000    0.100000    0.0  0.0000     0.5   0.0
0.000000    0.006000    0.0  0.0000     0.2   0.0
0.010000    0.678000    0.0  0.0000     2.0   0.0
0.000000    0.333000    1.0  12.3966    0.1   4.0
0.200000    0.005000    1.0  0.4050     1.0   0.0
0.000000    0.340000    1.0  15.7025    0.5   0.0
0.000000    0.440000    1.0  8.2645     0.0   4.0
0.500000    0.055000    1.0  18.1818    0.0   4.0

y的值在范围内是分类的[1; 4]。

y =

1
2
1
3
4
1
2
3

这就是我的所作所为:

import pandas as pd
from sklearn import linear_modelion
from sklearn.metrics import mean_squared_error, r2_score
import numpy as np

h = .02

logreg = linear_model.LogisticRegression(C=1e5)

logreg.fit(X, y)

# print the coefficients
print(logreg.intercept_)
print(logreg.coef_)

但是,logreg.intercept_的输出中有6列,logreg.coef_的输出中有6列。如何获得每个要素的1个系数,例如a - f值?

y = a*x1 + b*x2 + c*x3 + d*x4 + e*x5 + f*x6

另外,我可能做错了,因为y_pred = logreg.predict(X)为我提供了所有行的1值。

1 个答案:

答案 0 :(得分:3)

检查the online documentation

  

coef _ :数组,形状(1, n_features)(n_classes, n_features)

     

决策函数中的特征系数。

     当给定问题为二进制时,

coef_的形状为(1, n_features)

正如@Xochipilli在评论中已经提到的那样,你将得到(n_classes, n_features)或你的(4,6)系数和4个拦截(每个班级一个)

  

可能我做错了,因为y_pred = logreg.predict(X)为我提供了1所有行的值。

是的,您不应该尝试使用您用于训练模型进行预测的数据。将数据拆分为训练和测试数据集,使用训练数据集训练模型,并使用测试数据集检查其准确性。