《Spark机器学习进阶实战》——3.5.2 梯度提升树
3.5.2 梯度提升树
梯度提升树(Gradient Boosting Decision Tree,GBDT)模型是一种基于提升方法的决策树改进的树模型,它训练多棵决策树,每一棵树学习的是之前的所有的树预测值与真实值之间的残差,最终将多棵树的打分进行叠加得出结果。GBDT控制树的规模保证每棵树只学习一部分的样本和特征,来防止过拟合,模型有较好的泛化性。
相比较GBDT算法只利用了一阶导数信息,XGBoost(Extreme Gradient Boosting)对损失函数做了二阶的泰勒展开,并在目标函数之外加入了正则项对整体求最优解,用以权衡目标函数的下降和模型的复杂程度,避免过拟合。
随机森林和GBDT都是基于决策树的集成模型,它们都可以简单直观地描述特征的非线性和特征之间的组合,有着不错的训练效果,同时可以较好地防止过拟合,两个模型的差别如下。
GBDT每次只训练一个棵树,而随机森林可以同时并行训练多棵树,训练速度更快。
随机森林更不容易过拟合,随机森林中使用更多的树会降低过拟合风险,但是GBDT使用更多的树则会增加过拟合风险。
随机森林由于加入了随机抽样,相同样本和训练参数的多次训练结果会不同,训练过程不可复现,而GBDT每次的训练结果是相同的。
在MLlib实现中,随机森林可以处理二分类和多分类问题,而GBDT只能处理二分类问题。
由于随机森林和GBDT都是基于树模型的分类器,特征维度很大时,训练速度会非常慢,训练效果也较差,在实际的CTR预估中,一般会先将高维稀疏特征转化为低维稀疏特征,再用随机森林和GBDT进行训练。
- 点赞
- 收藏
- 关注作者
评论(0)