sklearn中的xgboost_Xgboost哪里可做到并行?boosting不是串行吗?

5b392e5e7e17f67663bc1b897c808429.png

面试中如果你做到项目的话,肯定会问到你项目中的机器学习算法,肯定要问到你算法原理,与其它算法对比的优缺点,算法为啥效果好以及一系列问题,现在大部分的机器学习项目偏向于比赛,而Xgb又是比赛中的一个大杀器,没用到此模型都不好意思。在面试的过程中,可能会涉及导检验你是不是调包人员的过程,也就是看看你对算法的底层的实现是否理解,比如上面说的在sklearn中的KNN的实现方式是哪些?对于Xgb来说的话,面试者可能会说道xgb快,那么问题来了,为啥块?面试者会说因为可以并行。那么问题来了,boost不是串行构造树的吗,xgb的并行是怎么操作的?
还是要对算法的实现有个基本的了解,xgb在选择最佳分裂点,进行枚举的时候并行!(据说恰好这个也是树形成最耗时的阶段)。同层级节点可并行。具体的对于某个节点,节点内选择最佳分裂点,候选分裂点计算增益用多线程并行。
说到分裂,较少的离散值作为分割点倒是很简单,比如“是否是单身”来分裂节点计算增益是很easy,但是“月收入”这种feature,取值很多,从5k~50k都有,总不可能每个分割点都来试一下计算分裂增益吧?(比如月收入feature有1000个取值,难道你把这1000个用作分割候选?缺点1:计算量,缺点2:出现叶子节点样本过少,过拟合)我们常用的习惯就是划分区间,那么问题来了,这个区间分割点如何确定(难道平均分割),作者是采用带权重直方图的计算方法,这里就不详细谈了,详细可以参考这里。

参考文献:

https:// blog.csdn.net/github_38 414650/article/details/76061893
xgboost的并行原理究竟是什么?
章华燕:史上最详细的XGBoost实战
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值