首页 > 试题广场 >

说明GBDT和Xgboost的异同点(仅需要说明理论差异,不

[问答题]
说明GBDT和Xgboost的异同点(仅需要说明理论差异,不需要回答工程实现细节)。
1.GBDT的损失函数只利用了函数一阶导的信息,而xgboost利用了函数的二阶导信息,效率更高更准确。同时xgboost的损失函数还添加了模型复杂度的惩罚项,防止过拟合。
2.Xgboost可以自定义弱学习器类型,自定义损失函数,前提是损失函数具有二阶导特性。
3.Xgboost每一轮的训练中,不仅支持样本采样,还支持特征采样
4.Xgboost每一轮的训练,各层节点可以并行训练,gbdt不行
5.xgboost可以处理缺失值
6.xgboost在寻找分裂节点和分裂值时,是采用了分位数的方法

发表于 2019-02-28 14:35:11 回复(0)
1. GBDT只用了损失函数一阶导,而XGB用了损失函数的二阶导,能更高效更精确地逼近真实损失;
2. XGB在损失函数中加入了正则项,避免过拟合;
3. XGB能够自动处理缺失值;
4. XGB支持多种基学习器,如线性学习器,而GBDT只支持CART;
5. XGB预先将各特征按值排序并存储于block中,且预先根据score的值的分位点确定候选切分点,在建立树时,能并行地对每个特征并行计算其最大增益,能极大提高计算效率;
6. XGB支持对特征的类似RF的列采样,而GBDT不行;
7. XGB支持自定义损失函数,但要求二阶可导;
编辑于 2021-01-26 15:46:40 回复(0)