基于树的算法需要哪些特征工程?

数据挖掘 特征选择 决策树 xgboost 梯度下降 特征工程
2021-09-28 08:46:37

我了解数据卫生,这可能是最基本的特征工程。那就是确保正确加载所有数据,确保将N/As 视为特殊值而不是 -1 和 1 之间的数字,并正确标记分类值。

过去我做过很多线性回归分析。所以特征工程主要关注:

  • 使用对数、指数、幂变换将特征调整到正确的比例
  • 乘法特征:如果你有高度和宽度,乘以形成面积
  • 选择特征:根据P值去除特征

但是,对于 LightGBM(和随机森林)来说,特征的规模似乎并不重要,因为可订购的项目是有序的,然后随机平分。特征的交互并不重要,因为如果它很重要,弱分类器之一应该找到它。并且特征选择并不重要,因为如果效果很弱,那么这些分类器就会被削弱。

那么,假设你找不到更多的数据来引入,那么决策树模型应该做哪些特征工程呢?

1个回答

我认为对于基于树的算法来说必不可少的特征工程是:

  • 模块化算术计算:例如将时间戳转换为星期几或一天中的时间。如果您的模型需要知道每个月的第三个星期一发生了什么事情,那么从时间戳中确定这一点几乎是不可能的。

  • 同样,从可用数据中创建新功能可以大大提高您的预测能力。这就是领域知识非常重要的地方——如果您知道或认为您知道一种关系,那么您可以包含描述该关系的变量。这是因为基于树的方法只能创建水平或垂直的拆分(即与您的数据正交)。

  • 降维通常通过特征选择或特征转换来执行。通过特征选择减少维度可能对您提到的模型没有太大帮助,但是算法可能会或可能不会从特征转换(例如主成分分析)中受益,具体取决于过程中丢失了多少信息。唯一确定的方法是探索特征转换是否提供更好的性能。