簡體   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