作者ms0344303 (我不玩了)
看板Python
標題[問題]請問關於Sklearn裡的決策樹所支援變數類型
時間Wed Mar 28 22:36:19 2018
https://i.imgur.com/9yCDPja.png
主要資料構成如圖
我目前用SKLEARN裡的TREE套件
他都會顯示沒辦法將文字轉換為FLOAT
程式碼如下
x =rawdata.drop('treatment',axis =1)
y = rawdata['treatment']
clf = tree.DecisionTreeClassifier()
clf = clf.fit(x,y)
treatment 即是 Y label
要Encoding的話,有些類別太多,就直接套用encoding 函數下去作01dummy嗎
或這是該如何做呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.181.213.249
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1522247781.A.6A5.html
※ 編輯: ms0344303 (175.181.213.249), 03/28/2018 22:41:57
1F:→ Panthalassa: 像 More than 1000 那種要自己轉成數字吧? 03/28 23:27
2F:→ ms0344303: 都用 labelencoder 他會把類別都變成大於小於 感覺就沒 03/29 00:33
3F:→ ms0344303: 有二分法的存在了 都變成連續 03/29 00:33
4F:→ ms0344303: 我不知道該如何繼續 03/29 00:33
5F:→ ms0344303: 另外想more than 1000 其實我還是把他當一種離散rank 03/29 00:34
6F:→ ms0344303: 所以轉不轉應該還好 03/29 00:34
7F:→ gigayaya: one hot encoding? 03/29 00:48
8F:推 goldflower: 應該就你training data沒做labelencoder吧? 03/29 01:25
9F:→ goldflower: 記得scikit-learn的tree只吃數值 而且也只處理數值 03/29 01:26
10F:→ goldflower: 所以你做完labelencoder後他會把你的categorical看成 03/29 01:26
11F:→ goldflower: 數字 這應該不是你要的 所以就如gigayaya說的做OHE 03/29 01:27
12F:推 goldflower: 像no_employees可以轉 因為有順序上的關係 03/29 01:32
13F:→ goldflower: 但像country就要用one-hot 因為彼此間沒大小關係 03/29 01:32
14F:推 goldflower: github.com/scikit-learn/scikit-learn/pull/4899 03/29 01:36
15F:→ goldflower: 可以看下這邊 反正結論就是目前沒這功能的樣子 03/29 01:38
16F:推 vfgce: sklearn 最大敗筆,就是不支援category...看過R的DT 03/29 08:08
17F:→ vfgce: 再來看sklearn的DT真的會吐血,R是內建factor處理分類型態. 03/29 08:10
18F:→ vfgce: python則無內建分類型態,而所有科學套件基礎numpy也沒有. 03/29 08:11
19F:→ vfgce: 所以造成這個問題,但同樣延伸numpy的pandas及statsmodels 03/29 08:12
20F:→ vfgce: 都可以支援category..sklearn小組要不要考慮直接連結 03/29 08:13
21F:→ vfgce: pandas來解決這問題.. 03/29 08:13