使用R构建决策树时,是否需要规范化数据?


10

因此,本周我们的数据集具有14个属性,每列具有非常不同的值。一列的值小于1,而另一列的值从三到四个整数。

上周我们学习了归一化,似乎您应该对数据具有非常不同的值进行归一化。对于决策树,情况是否相同?

我对此不确定,但归一化会影响来自同一数据集的结果决策树吗?似乎不应该,但是...

Answers:


13

您遇到的最常见的决策树类型不受任何单调变换的影响。因此,只要保留orde,决策树都是相同的(显然,在同一棵树上,我理解的是相同的决策结构,而不是树中每个节点中每个测试的值都相同)。

发生这种情况的原因是因为通常的杂质功能是如何工作的。为了找到最佳分割,它会在每个维度(属性)上搜索一个分割点,该分割点基本上是一个if子句,该子句将目标值与测试值小于分割值的实例相对应,而右侧的值大于等于。数值属性会发生这种情况(我认为是您的情况,因为我不知道如何规范化名义属性)。现在您可能会注意到条件小于或大于。这意味着从属性中找到拆分(和整棵树)的实际信息只是值的顺序。这意味着,只要以保留原始顺序的方式转换属性,就会得到同一棵树。

并非所有模型都对这种转换不敏感。例如,如果将一个属性乘以非零的值,则线性回归模型将得出相同的结果。您将获得不同的回归系数,但预测值将相同。当您记录该转换的日志时,情况并非如此。因此,例如对于线性回归,归一化是无用的,因为它将提供相同的结果。

但是,惩罚线性回归(如岭回归)不是这种情况。在惩罚线性回归中,将约束应用于系数。这个想法是将约束应用于系数函数的总和。现在,如果您为一个属性充气,系数将被缩小,这意味着最后对该系数的惩罚将被人为修改。在这种情况下,您可以对属性进行规范化,以使每个系数都得到“公平”的约束。

希望能帮助到你

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.