作者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/cn.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