首页 > 解决方案 > 归一化会降低集成方法的模型性能吗?

问题描述

归一化(例如 z 评分)是机器学习中常见的预处理方法。我正在分析数据集并使用随机森林或 XGBOOST 框架等集成方法。

现在我比较模型使用

  1. 非标准化特征
  2. z 评分特征

使用交叉验证,我在这两种情况下都观察到,max_depth参数越高,训练误差就越小。

对于 1. 情况,测试误差也会减小并在某个 MAE 处饱和:

在此处输入图像描述

然而,对于 z 评分特征,测试误差根本没有减少。 在此处输入图像描述

在这个问题中:https ://datascience.stackexchange.com/questions/16225/would-you-recommend-feature-normalization-when-using-boosting-trees讨论了基于树的方法不需要标准化。但是上面的例子表明它具有严重的影响。

所以我对此有两个问题:

  1. 这是否意味着即使测试误差减少,也可能使用基于集成的方法进行过度拟合?
  2. 在使用集成方法时,像 z 评分这样的归一化是否应该是常见的做法?
  3. 归一化方法是否有可能降低模型性能?

谢谢!

标签: machine-learningstatisticsnormalizationrandom-forestensemble-learning

解决方案


在没有任何代码或数据的情况下,很难看到发生了什么。

归一化可能有帮助,也可能没有帮助,具体取决于特定数据以及如何应用归一化步骤。基于树的方法应该足够健壮以处理原始数据。在您的交叉验证中,您的代码是否为每个折叠分别进行规范化?在 cv 之前进行单次归一化可能会导致严重的泄漏。

如果深度值非常高,您将拥有一个更复杂的模型,该模型可以很好地拟合训练数据,但无法泛化到新数据。我倾向于选择从 2 到 5 的最大深度。如果我无法获得合理的模型,我会将精力转向特征工程,而不是试图过多地调整超参数。


推荐阅读