首先回顾一下什么叫Bagging? 比如在随机森林里,针对于样本数据,我们同时训练了多棵决策树,然后让这些决策树通过投票的方式来参与预测。
这种方式的好处也讲过,可以很好地提升模型的稳定性。 其实任意的集成模型只要训练得合理都具备这种特性的,Boosting也不例外。
怎么理解weak learner?就是那些单独用来做预测是不太靠谱的模型,需要跟其他的配合使用才行。
有两个关键词我们还需要记住:过度拟合和欠拟合。前者的意思是一个模型训练得太好了,太厉害了,导致出现过拟合的现象;后者的意思是这么模型有点弱,都没有充分训练过。
Bagging是很多过拟合的weak leaner来组成,Boosting是很多欠拟合的weak learninger来组成,这就是它们之间核心的区别。
Boosting模型的一种经典的训练方式:基于残差(residual)的训练。
这种训练方式跟Bagging的训练是有很大区别的。Bagging的训练可以理解为并行的训练,其实每一个模型训练时都互不干涉的。但基于残差的Boosting模型的训练是串行的。
XGboost优点:
- 算法可以并行,训练效率高
- 比起其他算法,实际效果好
- 由于可控参数多,可以灵活调整