繁体   English   中英

Python 中的多项逻辑回归

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM