![](/img/trans.png)
[英]Python : How to use Multinomial Logistic Regression using SKlearn
[英]Multinomial Logistic Regression in Python
我正在尝试创建多项逻辑回归,但我从未这样做过。 我正在尝试按照教程进行操作:
使用 Python 进行多项逻辑回归。
我正在尝试获取数据,并使用性别和年龄作为协变量从酒精依赖(二元)中预测赌博(二元)。
到目前为止,我有:
# define dataset
X = data2["SEX"] + data2["AGE"] + data2["alcdep"]+data2["PRS"]
y = data2["Gambling"]
# summarize the dataset
print(X.shape, y.shape)
model.fit(X, y)
但我不断收到错误:
ValueError: Expected 2D array, got 1D array instead:
我也不知道我所做的是否正确或从这里开始的步骤。
这是虚拟数据(忽略是和零)。
data = {
'IID': {0: 'Yale_0001', 1: 'Yale_0004', 2: 'Yale_0006', 3: 'Yale_0007', 4: 'Yale_0008'},
'SEX': {0: 2, 1: 1, 2: 2, 3: 1, 4: 1},
'AGE': {0: 27, 1: 39, 2: 41, 3: 45, 4: 44},
'alcdep': {0: 2, 1: 2, 2: 2, 3: 1, 4: 1},
'Gambling': {0: 1, 1: 1, 2: 2, 3: 1, 4: 2},
'Zero': {0: 0, 1: 0, 2: 0, 3: 1, 4: 0},
'Yes': {0: 'Yes', 1: 'Yes', 2: 'Yes', 3: 'Yes', 4: 'Yes'},
'PRS': {0: 0.053486584299999994, 1: 0.0304387435, 2: 0.00917773968, 3: 0.016352741100000002, 4: 7.433452840000001e-05}
}
假设data2 = pd.DataFrame(data)
,您将添加每个单独的系列而不是选择它们。 这导致X
看起来像这样:
>>> X
0 31.053487
1 42.030439
2 45.009178
3 47.016353
4 46.000074
相反,你应该写X = data2[["SEX", "AGE", "alcdep", "PRS"]]
,这样你就可以得到:
>>> X
SEX AGE alcdep PRS
0 2 27 2 0.053487
1 1 39 2 0.030439
2 2 41 2 0.009178
3 1 45 1 0.016353
4 1 44 1 0.000074
我建议您查看 pandas 用户指南中有关数据选择的部分,以开始进行 DataFrame 操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.