Python:如何使用SKlearn使用多项Logistic回归

时间:2016-04-21 04:56:25

标签: python scikit-learn logistic-regression data-analysis

我有一个测试数据集和训练数据集,如下所示。我提供了带有最小记录的样本数据,但我的数据超过了1000条记录。这里E是我需要使用算法预测的目标变量。它只有四个类别,如1,2,3,4。它只能采用这些值中的任何一个。

培训数据集:

A    B    C    D    E
1    20   30   1    1
2    22   12   33   2
3    45   65   77   3
12   43   55   65   4
11   25   30   1    1
22   23   19   31   2
31   41   11   70   3
1    48   23   60   4

测试数据集:

A    B    C    D    E
11   21   12   11
1    2    3    4
5    6    7    8 
99   87   65   34 
11   21   24   12

由于E只有4个类别,我想到使用多项Logistic回归(1 vs Rest Logic)预测这个。我正在尝试使用python实现它。

我知道在变量中设置这些目标所需的逻辑,并使用算法来预测这些值中的任何一个:

output = [1,2,3,4]

但我仍然坚持如何使用python(sklearn)来循环使用这些值以及我应该使用什么算法来预测输出值?任何帮助将不胜感激

2 个答案:

答案 0 :(得分:7)

LogisticRegression可以处理多个开箱即用的类。

X = df[['A', 'B', 'C', 'D']]
y = df['E']
lr = LogisticRegression()
lr.fit(X, y)
preds = lr.predict(X)  # will output array with integer values.

答案 1 :(得分:7)

你可以尝试

LogisticRegression(multi_class='multinomial',solver ='newton-cg').fit(X_train,y_train)