序数数据何时应分类表示,何时表示为整数?

数据挖掘 预测建模 回归 预处理 卡格尔
2022-03-05 01:44:45

我正在参加 Kaggle 竞赛房价:高级回归技术,以了解有关数据分析的更多信息。我想将多个模型应用于数据(正则化 LR、随机森林、神经网络和集成方法)。

在检查数据时,我发现许多字段是表示为分类数据的序数数据。两个例子:

HeatingQC: Heating quality and condition

   Ex   Excellent
   Gd   Good
   TA   Average/Typical
   Fa   Fair
   Po   Poor
LotShape: General shape of property

   Reg  Regular 
   IR1  Slightly irregular
   IR2  Moderately Irregular
   IR3  Irregular

我想知道是否应该保留这样的字段,或者是否应该将它们编码为整数(即​​给类别中的每个类一个数字,如 1、2、3 或 4)。由于问题可能是“视情况而定”,因此我希望您能给我一些更一般的见解,了解何时应保持此数据序数,或何时将其转换为整数。

4个回答

你不应该以任何方式保持这种状态。一种选择是 one-hot 编码,但由于您的变量是序数,所以 one-hot 编码没有意义,您可以将它们转换为自然数。

one-hot 编码会显着增加自变量的数量,这就是为什么 one-hot 对你的模型来说会更糟。但是您的变量是明确的序数,因为它们对所有值都有明确的顺序。

因此,这种情况下转换为自然数是最好的选择。

所有机器学习算法都只对数值因变量起作用。

序数因变量可以被 R“因子”或 Py Panda“分类”隐式视为名义变量,或者您需要将它们转换/编码为名义变量。请参阅https://www.datacamp.com/community/tutorials/categorical-data中的“编码分类数据”部分

就像你说的,这取决于!例如,树可以处理基于文本的分类特征,您不必将它们转换为数值变量。

如果您使用使用统计度量的算法,例如 chi2 测试,如果您将分类值编码为数字值,则会导致问题。我建议您使用 one-hot enconding,它为每个类别实例生成二进制向量。

考虑查看李克特量表这些正是您在示例中给出的序数尺度类型。这些被量化为整数是一个常见的假设,并且该假设被广泛接受为有效。

但是,应该谨慎,特别是在使用统计数据描述符时,这些描述符依赖于域空间的拓扑结构(即它是分类的、有序的还是区间的)。本文对此进行了说明