秋招知识点记录(二)——XGBoost,GBDT与RF

Random Forest和GBDT区别如下:

  1. RF的基分类器可以是分类树也可以是回归树,GBDT只能是回归树。
  2. RF不同基分类器可以并行,GBDT只能串行。
  3. RF最终结果采用的策略是多数投票、一票否决、加权投票等,而GBDT是将所有结果(加权)累加起来。
  4. RF对异常值不敏感,GBDT对异常值敏感
  5. RF对训练集一视同仁,GBDT基于Boosting思想,基于权值,分类器越弱,权值越小
  6. RF主要减少模型方差,所以在噪声较大的数据上容易过拟合,而GBDT主要较少模型偏差。
  7. RF随机选择样本,GBDT使用所有样本。

Xgboost就是GBDT的一种,所以Xgboost和RF的区别和GBDT一样。

GBDT和Xgboost的区别如下:

  1. 基分类器的选择: 传统GBDT以CART作为基分类器,XGBoost还支持线性分类器,这个时候XGBoost相当于带L1和L2正则化项的逻辑斯蒂回归(分类问题)或者线性回归(回归问题)。
  2. 梯度信息: 传统GBDT只引入了一阶导数信息,Xgboost引入了一阶导数和二阶导数信息,其对目标函数引入了二阶近似,求得解析解, 用解析解作为Gain来建立决策树, 使得目标函数最优(Gain求到的是解析解)。另外,XGBoost工具支持自定义损失函数,只要函数可一阶和二阶求导。
  3. 正则项: Xgboost引入了正则项部分,这是传统GBDT中没有的。加入正则项可以控制模型的复杂度,防止过拟合。
  4. 特征采样: Xgboost引入了特征子采样,像随机森林那样,既可以降低过拟合,也可以减少计算。
    节点分裂方式:GBDT是用的基尼系数,XGBoost是经过优化推导后的。
  5. 并行化: 传统GBDT由于树之间的强依赖关系是无法实现并行处理的,但是Xgboost支持并行处理,XGBoost的并行不是在模型上的并行,而是在特征上的并行,将特征列排序后以block的形式存储在内存中,在后面的迭代中重复使用这个结构。这个block也使得并行化成为了可能,其次在进行节点分裂时,计算每个特征的增益,最终选择增益最大的那个特征去做分割,那么各个特征的增益计算就可以开多线程进行。
  6. 除此之外,Xgboost实现了分裂点寻找近似算法、缺失值处理、列抽样(降低过拟合,还能减少计算)等包括一些工程上的优化,LightGBM是Xgboost的更高效实现。

Reference:
[1]原文链接:https://blog.csdn.net/quiet_girl/article/details/88756843

全部评论

相关推荐

粗心的雪碧不放弃:纯学历问题,我这几个月也是一直优化自己的简历,后来发现优化到我自己都觉得牛逼的时候,发现面试数量也没有提升,真就纯学历问题
点赞 评论 收藏
分享
评论
点赞
2
分享
牛客网
牛客企业服务