使用 XGBoost 回归器进行特征工程

数据挖掘 xgboost 特征工程
2022-02-19 01:29:09

如果我想通过 XGBoost 等基于树的算法训练回归模型。假设有 5 个特征 x1、x2、x3、x4、x5 和一个目标 y。一些专家说 x2 减去 x3 与 y 高度相关。我应该将 x2-x3 作为第六个特征放入模型中,还是 XGBoost 只需将 x1~x5 放入模型中即可自动学习它。

据我所知,线性模式可以从特征中学习公式,那么基于树的方法呢?如果基于树的也可以做同样的事情,那么数据的大小是否重要?

1个回答

XGBoost 不会自行学习“交互”。特征生成通常用于增强的解释力。通常会检查和使用还有用于特征生成的工具,例如Python 的“Featuretools”Xxnxkxn/xk

您可以做一件事来找出哪种交互具有最大的解释力,您可以在所有可能的交互(一个接一个的交互,因此每次交互一个浅模型)上拟合只有很少分裂(三个左右)的树,并且检查每种情况的预测(例如 MSE、MAE),例如:

y(x1x2),y(x1/x2),...,y(x1xn),y(x1/xn),
y(x2x1),y(x2/x1),...,y(x2xn),y(x2/xn),
...

您可以只保留那些具有“高”解释力的交互,以避免模型中有大量特征。