2020/01/31
《百面
机器学习-算法工程师带你去面试》读书笔记
《No.30: p291~p297》第12章 集成学习
Q107 GBDT的基本原理为何?
1        梯度提升决策树(Gradient Boosting Decision Tree, GDBT)
2        基本原理
2.1        从错中学习,基于决策树预测的残差进行迭代的学习。
2.2        基本思想是根据当前模型损失函数的负梯度信息来训练新加入的弱分类器,然后将训练好的弱分类器以累加的形式结合到现有模型中。
2.3        采用决策树作为弱分类器的Gradient Boosting算法被称为GBDT,有时又被称为MART(Multiple Additive Regression Tree),GDBT中使用的决策树通常为CART。
Q108 梯度提升和梯度下降的区别和联系为何?
梯度提升与梯度下降,两者都是在每一轮迭代中,利用损失函数相对于模型的负梯度方向的信息来对当前模型进行更新,但在梯度下降中,模型是以<参数化>形式表示,模型的更新等于参数的更新。在梯度提升中,模型并不需要进行参数化表示,而是直接定义在函数空间中,从而大大扩展了可以使用模型的种类。
Q109 GBDT的优点和局限性有哪些?
1        优点
1.1        计算速度快,树与树之间可以并行计算
1.2        在分布稠密的数据集上,泛化能力和表达能力都很好。
1.3        采用决策树作为弱分类器使得GDBT模型具有较好的解释性和鲁棒性,能够自动发现特征间的高阶关系,并且也不需要对数据进行特殊的预处理,如归一化。
2        局限性
2.1        GDBT在高维稀疏的数据集上,表现不如<支持向量机>或者<
神经网络>
2.2        处理文本分类特征,不如它在处理数值特征时优秀。
2.3        训练过程采用串行训练,只能在决策树内部采用一些局部并行的手段提高训练速度。
Q110 XGBoost与GDBT的联系和区别有哪些?
1        GBDT是机器学习算法;XGBoost是该算法的工程实现。
2        使用CART作为基分类器时,XGBoost加入了<正则项>来控制模型的复杂度,有利于防止过拟合,从而提高模型泛化能力。
3        GBDT在模型训练时只使用了代价函数的一阶导数信息,XGBoost对代价函数进行二阶泰勒展开,可以同时使用一阶及二阶导数。
4        GBDT采用CART作为基分类器;XGBoost支持多种类型的基分类器,如线性分类器。
5        GBDT每轮迭代时使用全部的数据;XGBoost采用了与随机森林相似的方法,支持对数据进行采样。
6        GBDT没有对缺失值进行处理;XGBoost能够自动学习出缺失值的处理方法。