看板 Python 關於我們 聯絡資訊
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://www.ptt.cc/bbs/Python/M.1522247781.A.6A5.html ※ 編輯: ms0344303 (175.181.213.249), 03/28/2018 22:41:57
Panthalassa: 像 More than 1000 那種要自己轉成數字吧? 03/28 23:27
ms0344303: 都用 labelencoder 他會把類別都變成大於小於 感覺就沒 03/29 00:33
ms0344303: 有二分法的存在了 都變成連續 03/29 00:33
ms0344303: 我不知道該如何繼續 03/29 00:33
ms0344303: 另外想more than 1000 其實我還是把他當一種離散rank 03/29 00:34
ms0344303: 所以轉不轉應該還好 03/29 00:34
gigayaya: one hot encoding? 03/29 00:48
goldflower: 應該就你training data沒做labelencoder吧? 03/29 01:25
goldflower: 記得scikit-learn的tree只吃數值 而且也只處理數值 03/29 01:26
goldflower: 所以你做完labelencoder後他會把你的categorical看成 03/29 01:26
goldflower: 數字 這應該不是你要的 所以就如gigayaya說的做OHE 03/29 01:27
goldflower: 像no_employees可以轉 因為有順序上的關係 03/29 01:32
goldflower: 但像country就要用one-hot 因為彼此間沒大小關係 03/29 01:32
goldflower: github.com/scikit-learn/scikit-learn/pull/4899 03/29 01:36
goldflower: 可以看下這邊 反正結論就是目前沒這功能的樣子 03/29 01:38
vfgce: sklearn 最大敗筆,就是不支援category...看過R的DT 03/29 08:08
vfgce: 再來看sklearn的DT真的會吐血,R是內建factor處理分類型態. 03/29 08:10
vfgce: python則無內建分類型態,而所有科學套件基礎numpy也沒有. 03/29 08:11
vfgce: 所以造成這個問題,但同樣延伸numpy的pandas及statsmodels 03/29 08:12
vfgce: 都可以支援category..sklearn小組要不要考慮直接連結 03/29 08:13
vfgce: pandas來解決這問題.. 03/29 08:13