对于xgboost,还有必要做很多特征工程吗?

  统计/机器学习 监督式学习 特征选择 开放问题    浏览次数: 4299
14

传统上来说,机器学习建模的第一步就是进行特征工程。但是似乎对于xgboost算法,特征工程显得没有那么举足轻重了(吗?)。


就拿公共自行车使用量预测这个题目来说,我做了特征工程和不做特征工程相比,结果并没有明显提高,很多时候甚至还是下降的。然而对于线性回归模型来说,是否做特征工程,效果则非常明显。


不知针对这个例子,我想讨论的是,对于xgboost来说,特征工程是否还是那么必要吗?

谢谢!


 

可爱多   2017-10-28 13:37



   3个回答 
16

特征工程是个很广的概念,包括特征筛选、特征变换、特征合成、特征提取等等。


对于xgboost,它能够很好地做到特征选择,所以这一点不用我们去操心太多。


至于特征变换(离散化、归一化、标准化、取log等等),我们也不需要做太多,因为xgboost是基于决策树,决策树自然能够解决这些。相比较来说,线性模型则需要做离散化或者取log处理。因为xgboost(树类模型)不依赖于线性假设。但是对于分类特征,xgboost需要对其进行独热编码,否则无法训练模型。


xgboost也可以免于一部分特征合成的工作,比如线性回归中的交互项a:b,在树类模型中都可以自动完成。但是对于加法a+b,减法a-b,除法a-b这类合成的特征,则需要手动完成。


绝大部分模型都无法自动完成的一步就是特征提取。很多nlp的问题或者图象的问题,没有现成的特征,你需要自己去提取这些特征,这些是我们需要人工完成的。


综上来说,xgboost的确比线性模型要省去很多特征工程的步骤。但是特征工程依然是非常必要的。


SofaSofa数据科学社区 DS面经 问答 实战

Nagozi   2017-11-08 00:08

9

相对于线性模型来说,特征工程不是那么重要吧

线性模型有时候还需要做interaction term

决策树或者boosting都是模型自己在做interaction的。


SofaSofa数据科学社区 DS面经 问答 实战

阳春面   2017-10-30 09:23

请问怎么理解决策树是模型自己在做interaction? - dzzxjl   2018-03-06 19:12
同好奇 - dsjobhunter   2018-03-07 03:10
这里很多人看不到,我单独发问题了 - dsjobhunter   2018-03-08 14:08
看到了 希望有大神解答 - dzzxjl   2018-03-08 14:55
7

从特征多重共线性的角度来说,xgboost可以省去很多特征工程的工程。

至于原因可以参考决策树、随机森林中的多重共线性问题


SofaSofa数据科学社区 DS面经 问答 实战

雷猴   2017-11-09 12:05



  相关主题

xgboost怎么调参?   8回答

如果用xgboost模型,那么还需要先做feature selection吗?   3回答

xgboost的FIT问题   1回答

怎么利用permutation importance来解释xgboost模型的特征?   1回答

为什么lightgbm比xgb快?   2回答

到底什么时候用lightgbm什么时候用xgb   2回答

xgboost可以做回归预测吗?   2回答

训练值都是正的,xgboost regression却预测出负数?   4回答

为啥Xgboost比GradientBoost好那么多?   5回答

stack多个xgboost效果并不理想   6回答

既然xgboost那么好,线性回归还有存在的价值吗?   9回答

xgboost展开到二阶导数有什么好处啊   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!