决策树中的序数特征

数据挖掘 决策树
2021-09-30 04:32:41

我很好奇序数特征的处理方式是否与决策树中的分类特征不同,我对目标是分类或连续的两种情况都感兴趣。

如果有区别,您能否指出具有解释的良好来源以及支持它的任何软件包(R 或 Python)?

2个回答

据我所知,对于决策树模型来说,特征是有序的还是分类的并不重要。目标是创建一个模型,通过学习从数据特征推断出的简单决策规则来预测目标变量的值。决策树使用属性列表来描述模式。

对于更详细的解释,我在这里提供了一些链接,您会发现这些链接对此类查询很有帮助。
http://www.ibm.com/support/knowledgecenter/SS3RA7_17.0.0/clementine/nodes_treebuilding.html

http://scikit-learn.org/stable/modules/tree.html

http://www.ryerson.ca/~rmichon/mkt700/SPSS/Creating%20Decision%20Trees.htm

在 GBM 中,序数数据和分类数据的处理方式完全相同。但是,如果您将序数数据格式化为分类,结果很可能会有所不同。对于格式化为序数的分类数据也是如此。

有序数据作为分类数据

让我们考虑下面的例子。您正在预测人类的体重。{'S': 0, 'XL': 1, 'L': 2, 'M': 3}您有T 恤尺寸特征的映射。GBM 将其拆分到最后一个分支,并且尚未拆分 T 恤尺寸功能。此时,它尝试根据 T 恤尺寸进行拆分,但没有发现任何收益,因为单个拆分只能对['S', 'XL']和进行分组['M', 'L']

如果我们按顺序进行编码,那么我们将得到{'S'=0, 'M'=1, 'L'=2, 'XL=3'}我们的映射。因此,最终的分裂将导致['S', 'M']并且['L', 'XL']肯定会导致收益。

现在我明白这是一个非常人为的例子,正确调整参数最终会分裂

        ['S', 'XL', 'L', 'M']             
           /            \                 No Gain, maybe loss (-2)
     ['S', 'XL']      ['M', 'L']
       /       \         /      \         Big gain (+15)
    ['S']   ['XL']     ['M']   ['L']

但是,当您可以向 GBM 提供已知信息时,您是否会将其留给棘手的参数调整、模型训练时间更长以及信息可能丢失的问题。在这种情况下编码序数是有意义的。

分类数据作为序数

假设我们现在将就业状况作为体重预测的分类数据。我们将其标记如下{'unemployed': 0, 'employed': 1, 'self_employed':2, 'education':3}我们可以假设在一个大型数据集上,这 4 个差异对权重几乎没有影响。但是,如果数据集足够大,则很有可能会有一个分支,其中序数似乎与权重有某种关系。然后模型将学习这一点并相应地进行拆分。这会导致过拟合。

在这种情况下,如果我们表示这些数据

Employment_Status 
0
2

如下(二进制编码),这种关系不会被学习,因为它们被视为不同的特征。ES 代表就业状况。

ES_unemployed    ES_employed    ES_self_employed    ES_education
1                0              0                   0
0                0              1                   0

同样,这是一个人为的例子。在这种情况下,您可以克服传统方法中的过度拟合,例如通过交叉验证,但这非常耗时。IMO 非常值得首先进行正确的特征工程,并将分类特征视为分类特征,将有序特征视为有序特征。