XGBoost + LR 就是加特征而已

导语 :XGBoost + LR 并没有像深度学习那样试图带来自动特征工程的故事和逻辑。最终,XGBoost + LR 的格局没有超越特征工程。

LR (逻辑回归) 算法因其简单有效,成为工业界最常用的算法之一。但 LR 算法是线性模型,不能捕捉到非线性信息,需要大量特征工程找到特征组合。为了发现有效的特征组合,Facebook 在 2014年介绍了通过 GBDT (Gradient Boost Decision Tree)+ LR 的方案 (XGBoost 是 GBDT 的后续发展)。随后 Kaggle 竞赛实践证明此思路的有效性。

1. XGBoost + LR 的原理

XGBoost + LR 融合方式原理很简单。先用数据训练一个 XGBoost 模型,然后将训练数据中的实例给 XGBoost 模型得到实例的叶子节点,然后将叶子节点当做特征训练一个 LR 模型。XGBoost + LR 的结构如下所示。

我第一接触到 XGBoost + LR 的时候,认为 XGBoost + LR 是尝试自动替代特征工程的方法。深度学习在 CTR 领域便是在讲述这样的故事和逻辑:只需人工对原始特征进行简单的变换,深度学习能取的比大量人工特征的 LR 好的效果。

2. XGBoost 叶子节点不能取代特征工程

为了验证 XGBoost + LR 是尝试自动替代特征工程的方法,还只是一种特征工程的方法,我们在自己业务的数据上做了一些实验。下图便是实验结果,其中: “xgboost+lr1" 是 XGBoost 的叶子节点特征、原始属性特征和二阶交叉特征一起给 LR 进行训练;"xgboost+lr2" 则只有叶子节点特征给 LR;"lr1" 是原始属性特征和二阶交叉特征; "lr2" 只有原始属性特征。

从上面的实验来看:1) "xgboost+lr2" 明显弱于 "lr1" 方法,说明只用叶子节点特征的 XGBoost + LR 弱于有特征工程的 LR 算法。即 XGBoost 叶子节点不能取代特征工程,XGBoost + LR 无法取代传统的特征工程。2) "xgboost+lr1" 取得了所有方法中的最好效果,说明了保留原来的特征工程 XGBoost + LR 方法拥有比较好的效果。即 XGBoost 叶子节点特征是一种有效的特征,XGBoost + LR 是一种有效的特征工程手段。

上面的实验结果和我同事二哥之前的实验结果一致。在他实验中没有进行二阶交叉的特征工程技巧,结果 XGBoost > XGBoost + LR > LR,其中 XGBoost +LR 类似我们的 "xgboost+lr2" 和 LR 类似于我们的 "lr2"。

3. 强大的 XGBoost

只用 XGBoost 叶子节点特征, XGBoost + LR 接近或者弱于 XGBoost 。在下图中,我们发现 XGBoost 的每个叶子节点都有权重 w, 一个实例的预测值和这个实例落入的叶子节点的权重之和有关。

如果二分类 XGBoost 使用了 sgmoid 做激活函数, 即参数为 "binary:logistic", 则 XGBoost 的最终预测值等于 sgmoid(叶子节点的权重之和)。而 LR 的最终预测值等于 sgmoid (特征对应的权重之后)。因此 LR 只要学到叶子节点的权重,即可以将 XGBoost 模型复现出来。因此理论上,如果 LR 能学到更好的权重,即使只有叶子节点特征的 XGBoost + LR 效果应该好于 XGBoost。总结起来,XGBoost + LR 相当于对 XGBoost 的权重进行 reweight。

但是从上面的结果来看,XGBoost + LR 要接近或者弱于 XGBoost。XGBoost 赋予叶子节点的权重是很不错的,LR 学到的权重无法明显地超过它。

4. 总结

XGBoost + LR 在工业和竞赛实践中,都取得了不错的效果。但 XGBoost 的叶子节点不能完全替代人工特征, XGBoost + LR 并没有像深度学习那样试图带来自动特征工程的故事和逻辑。最终,XGBoost + LR 的格局没有超越特征工程。

Tips: 公众号 AIgorithmDog 和 个人博客 AlgorithmDog 每周日更新机器学习和系统研发的轶事,希望讲得有趣,也希望和大家共同探讨学习。

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

1 条评论
登录 后参与评论

相关文章

来自专栏wym

opencv学习笔记 模糊操作+代码(均值模糊,中值模糊,自定义模糊,锐化)

像该函数对领域点的灰度值进行权重相加最后设置灰度值,这样的操作又叫卷积,这样的滤波器叫线性滤波器。

931
来自专栏机器学习算法与Python学习

机器学习(32)之典型相关性分析(CCA)详解 【文末有福利......】

关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第一 【Python】:排名第三 【算法】:排名第四 人工智能与Python公开课 限时免...

4717
来自专栏大数据挖掘DT机器学习

利用回归模型预测数值型数据(代码)

机器学习算法按照目标变量的类型,分为标称型数据和连续型数据。标称型数据类似于标签型的数据,而对于它的预测方法称为分类,连续型数据类似于预测的结果为一定范围内的...

4107
来自专栏超然的博客

MIT-线性代数笔记(7-11)

找出“主变量”pivotvariables,主列,即主元所在的列,其他列,称为自由列。(自由列表示可以自由或任意分配数值,列2和列4的数值是任意的,因此x2和x...

681
来自专栏瓜大三哥

图像分割(二)

图像分割(二) 之基于边缘分割 所谓边缘是指图像中两个不同区域的边界线上连续的像素点的集合,是图像局部特征不连续的反应,体现了灰度、颜色、纹理等图像特性的突变。...

1937
来自专栏https://www.cnblogs.com/L

【机器学习】--主成分分析PCA降维从初识到应用

主成分分析(Principal Component Analysis,PCA), 是一种统计方法。通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变...

642
来自专栏AlgorithmDog的专栏

XGBoost + LR 就是加特征而已

XGBoost + LR 在工业和竞赛实践中,都取得了不错的效果。但 XGBoost 的叶子节点不能完全替代人工特征, XGBoost + LR 并没有...

2356
来自专栏数据科学与人工智能

【数据分析】数据分析领域中最为人称道的七种降维方法|技术专区

近来由于数据记录和属性规模的急剧增长,大数据处理平台和并行数据分析算法也随之出现。于此同时,这也推动了数据降维处理的应用。实际上,数据量有时过犹不及。有时在数据...

2046
来自专栏自然语言处理

特征值在二次型优化和数据降维中的应用

从线性空间的角度看,在一个定义了内积的线性空间里,对一个N阶对称方阵进行特征分解,就是产生了该空间的N个标准正交基,然后把矩阵投影到这N个基上。N个特征向量就是...

752
来自专栏机器学习算法全栈工程师

奇异值分解(SVD)原理与在降维中的应用

地址:https://www.cnblogs.com/pinard/p/6251584.html

1224

扫码关注云+社区