对于数值型变量模型怎么知道是连续变量还是离散变量?

  统计/机器学习 监督式学习 数据预处理    浏览次数: 327
0

如果对于一个特征有四种可能取值,如所属年级 大学一年级,大学二年级,大学三年级,大学四年级,此时使用LabelEncoding转换为0,1,2,3,如果不进行one-hot编码的话,输入模型后,模型是怎么理解这个特征的?拿树模型(CART)来说的话,是不是自动地就把他当做一个连续性特征进行处理了?但我总觉得这个过程中丢失了部分信息。

突然间有点混乱,关于特征的连续与离散以及预测目标的连续与离散以及one-hot编码将特征维度大量扩大的同时的好处是什么?

谢谢!

 

dzzxjl   2018-04-09 16:06



   2个回答 
1

把年级转为0,1,2,3,在决策树中,这个变量是会被当作连续变量处理。这样的处理并没有很精细化,如果和直接把它们进行one-hot相比。假如大学二年级(“1”)明显的与其他三个不同,决策树只能切出{0,1}和{2,3},而不能做到{0,2,3}和{1}。


Jiho   2018-04-09 21:10

那为什么rf,xg等模型,是不需要独热的, - 陈十一   2018-04-10 09:03
是的,不是必须的。对于决策树来说,也不是必须的。具体是不是one hot,其实影响的是performance。 - Jiho   2018-04-10 10:24
1

网上找到一个答案,对于xgb什么时候适合用onehot提到了:

1.对于类别有序的类别型变量,比如 age 等,当成数值型变量处理可以的。对于非类别有序的类别型变量,推荐 one-hot。但是 one-hot 会增加内存开销以及训练时间开销。

2.类别型变量在范围较小时(tqchen 给出的是[10,100]范围内)推荐使用

仅供参考

dzzxjl   2018-04-13 10:47



  相关主题

数据一样,y却不一样的样本该怎么处理?   2回答

在数据预处理阶段,特征的标准化有哪些方法?   1回答

怎么求一个数组的移动平均数   1回答

python的dataframe如何重新排列行或者列   1回答

让DataFrame中的行按照某一列元素的绝对值从大到小排列   1回答

线性回归的变量归一化的问题   1回答

训练集中重复的样本需要被删除吗?   3回答

对进行回归分析之前,如何处理不同类型的变量?   1回答

决策树、随机森林中的多重共线性问题   3回答

sklearn OneHotEncoder string类型报错   1回答

怎么对pandas dataframe的列求众数   2回答

对pandas.DataFrame进行groupby结果中index的问题   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!