Python:如何使用SKlearn进行多项式逻辑回归

17

我有一个测试数据集和训练数据集如下所示。我提供了一份包含最少记录的样本数据,但我的数据集有超过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个类别,我考虑使用多项式逻辑回归(1 vs Rest Logic)进行预测。我正在尝试使用Python实现它。

我知道的逻辑是,我们需要将这些目标设置为变量,并使用算法来预测其中任意一个值:

output = [1,2,3,4]

但是我在如何使用Python(sklearn)循环遍历这些值以及应该使用哪种算法来预测输出值方面遇到了难题。任何帮助将不胜感激。


1
这个教程应该是一个很好的开始地方:http://scikit-learn.org/stable/auto_examples/exercises/digits_classification_exercise.html - maxymoo
1
这个问题也被问到了datascience https://datascience.stackexchange.com/questions/11334/python-how-to-use-multinomial-logistic-regression-using-sklearn - amirouche
1
@amirouche,看起来是同一个OP问了同样的问题。 - Ejaz
2个回答

18

你可以尝试

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

1
这不是本质上与此问题的现有答案相同吗? - ostergaard

11

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.

3
这是多分类吗?看起来更像一个多标签的解决方案。 - Hamman Samuel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接