關於 羅吉斯回歸的問題
我在跑自己資料時遇到一些疑問
問題一
我在跑羅吉斯回歸時 有出現錯誤
https://stackoverflow.com/questions/45346550/valueerror-unknown-label-type-unknown
並在網址上找到解答 他說應變數 Y 要改成數值型 我改了也有跑成功
但是應變數 Y (0 1 0 0 1)這些label應該是類別型才對吧 就像鐵答尼號 預測是否生存一樣
為什跑模型要轉成數值 ??
問題二
https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html
這網址有介紹 在跑預測值時 有三種寫法 一種會跑出 1 或 0 一種會跑出機率
predict(self, X) Predict class labels for samples in X.
predict_log_proba(self, X) Log of probability estimates.
predict_proba(self, X) Probability estimates.
請問哪一種寫法 會得出最好的預測結果 也比較部會overfitting ??
回答列表
-
2019/05/30 下午 05:28Jimmy贊同數:3不贊同數:0留言數:0
Hi Cathyy!
不管是分類問題還是回歸問題,都是丟數值的資料進去,差別在於,分類問題會丟正整數,假設有三類,就會是 [1, 2, 1, 3, 1],代表五筆資料,每一筆都對應某個類別。回歸則是丟實數進去,看起來會像 [15.5, 168.1, 70.5],但都是要丟數值進去。
這三種寫法是讓你模型以不同方式呈現預測結果。第一種直接幫你找出最大機率的類別,第二種回傳 log 後的機率給你,第三種回傳所有類別的機率給你,端看你想要哪種而已。所以這只是不同型態的預測結果,並不會影響訓練,也就沒有 overfitting 的情況喔!
-
2019/05/31 上午 10:05張維元 (WeiYuan)贊同數:1不贊同數:0留言數:0
但是應變數 Y (0 1 0 0 1)這些label應該是類別型才對吧 就像鐵答尼號 預測是否生存一樣 ,為什跑模型要轉成數值 ??
=> 因為大部分模型是基於數學做計算的,所以必須轉成數值才可以運算。雖然在套件上有些模型會幫你處理這一段,不過還是要知道這件事的脈絡。像字串型資料必須要做「One-Hot Encoding」或「 Label Encoding」也是一樣的原因~