编码“直方图箱”

数据挖掘 scikit-学习 回归 数据清理 分类数据 编码
2022-02-17 23:43:07

我目前正在研究一个回归问题,其中我有一个x“直方图箱”形式的数据变量 ( )。即我的值范围可以是 900-999、1500-1599 等。但是数据并没有告诉你具体的值。

我的问题是:在这种情况下,我是否应该将此变量视为实值(可能取每个 bin 的中位数)?还是应该将其视为分类数据,每个 100 宽的 bin 代表一个单独的类别?如果我确实将其视为分类,那么最好的编码是什么(标签、1-hot 等)?

我的困惑来自这样一个事实,即使所提供的数据是分类的,它在道德上也是一个实值变量。我也有先验知识,我的目标变量y应该与x. 因此,如果我只是使用任意编码,它是否能够捕捉到这种相关性?

2个回答

在线性回归中,“一个热”编码(又名“假人”)将为每个 bin 引入一个自己的截距项,而将变量视为数字将为 bin 引入一个(线性)斜率系数。由于没有强制(线性)参数化,因此在线性模型中将变量视为“一个热点”将更加灵活(并且也将捕获正相关)。

然而,在其他模型类型中,例如随机森林(它是非参数的),“一个热”不一定会工作得很好(或更好),即如果一个热编码变量的每个单一类别都没有多少解释力。因此,在这种情况下,将变量视为数字(例如按中值)可能会更好。

基本上,“一个热”编码和数字编码传输几乎相同的信息。这里的问题似乎是哪种模型类型可以更好地消化一种或另一种编码。因此,如果您负担得起,我建议您在不同的模型中同时尝试(一种热编码和数字编码)。

我认为如果您在符号数据分析的框架中直接使用直方图会更好。您可以使用 R 的HistDAWass包,它为您提供了几种处理此类数据的工具。