如果对于一个特征有四种可能取值,如所属年级 大学一年级,大学二年级,大学三年级,大学四年级,此时使用LabelEncoding转换为0,1,2,3,如果不进行one-hot编码的话,输入模型后,模型是怎么理解这个特征的?拿树模型(CART)来说的话,是不是自动地就把他当做一个连续性特征进行处理了?但我总觉得这个过程中丢失了部分信息。
突然间有点混乱,关于特征的连续与离散以及预测目标的连续与离散以及one-hot编码将特征维度大量扩大的同时的好处是什么?
谢谢!
2个回答
把年级转为0,1,2,3,在决策树中,这个变量是会被当作连续变量处理。这样的处理并没有很精细化,如果和直接把它们进行one-hot相比。假如大学二年级(“1”)明显的与其他三个不同,决策树只能切出{0,1}和{2,3},而不能做到{0,2,3}和{1}。
那为什么rf,xg等模型,是不需要独热的,
-
陈十一
2018-04-10 09:03
是的,不是必须的。对于决策树来说,也不是必须的。具体是不是one hot,其实影响的是performance。
-
Jiho
2018-04-10 10:24
网上找到一个答案,对于xgb什么时候适合用onehot提到了:
1.对于类别有序的类别型变量,比如 age 等,当成数值型变量处理可以的。对于非类别有序的类别型变量,推荐 one-hot。但是 one-hot 会增加内存开销以及训练时间开销。
2.类别型变量在范围较小时(tqchen 给出的是[10,100]范围内)推荐使用
仅供参考
SofaSofa数据科学社区DS面试题库 DS面经