1.Xgboost 与 GBDT的区别。
XGBoost 是(eXtreme Gradient Boosting)的简称,是优化的分布式梯度提升库:基本原理与GBDT相同,属于Gradient Boosting 类型的机器学习算法,是对GBDT的优化
在训练每一棵树的时候GBDT采用了并行的方式进行训练,提高了模型训练速度
对比GBDT,XGBoost无论实在训练速度上还是预测精度上都有显著提升
2.什么是Bias(偏差)和Error(误差)?为什么说Bagging可以减少弱分类器的方差,而Boosting 可以减少弱分类器的偏差?
偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力,偏差越大,预测值越偏离真实数据的标签。
方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响,方差越大,预测值的分布越分散。
Bagging就是再取样 (Bootstrap) 然后在每个样本上训练出来的模型取平均,所以是降低模型的variance. Bagging 比如Random Forest 这种先天并行的算法都有这个效果。
Boosting 则是迭代算法,每一次迭代都根据上一次迭代的预测结果对样本进行加权,所以随着迭代不断进行,误差会越来越小,所以模型的 bias 会不断降低。这种算法无法并行,如Adaptive Boosting。
3. Gbdt的boosting体现在哪里?
利用最速下降的近似方法,利用损失函数的负梯度作为提升树算法中的残差近似值。由多棵决策树组成,所有树的结论累加起来做最终答案。是一种被认为泛化能力较强的算法。
4.GBDT和决策森林的区别?
相同点:
(1)都是由多棵树组成的,都是集成学习算法
(2)最终的结果都是由多颗树一起决定
不同点:
(1)组成随机森林的树可以是分类树,也可以是回归树,但是GBDT只能由回归树组成。
(2)组成随机森林的树可以并行生成,但是组成GBDT的树只能串行生成。
(3)对于最终输出结果,随机森林采用多数投票;而GBDT是将所有的结果累加起来,或者加权起来
(4)随机森林对异常值不敏感,而GBDT对异常值非常敏感
(5)随机森林通过减小方差来提高性能,GBDT通过减小偏差来提高性能