使用 R 构建决策树时是否必须对数据进行规范化?

数据挖掘 r 初学者
2021-09-20 03:08:06

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

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

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

1个回答

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

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

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

然而,惩罚线性回归并非如此,如岭回归。在惩罚线性回归中,对系数应用约束。这个想法是将约束应用于系数函数的总和。现在,如果你夸大一个属性,系数将被缩小,这意味着最终对该系数的惩罚将被人为地修改。在这种情况下,您可以对属性进行归一化,以使每个系数都“公平”地受到约束。

希望能帮助到你