xgboost之近似分位数算法(直方图算法)详解

 转载:https://yxzf.github.io/2017/04/xgboost-v2/

Quantile:分位数

近似算法

paper指出两种近似算法:一种是全局算法,即在初始化tree的时候划分好候选分割点,并且在树的每一层都使用这些候选分割点;另一种是局部算法,即每一次划分的时候都重新计算候选分割点。这两者各有利弊,全局算法不需要多次计算候选节点,但需要一次获取较多的候选节点供后续树生长使用,而局部算法一次获取的候选节点较少,可以在分支过程中不断改善,即适用于生长更深的树,两者在effect和accuracy做trade off。
论文【5】实验中发现,全局k分位点取20和局部k分位点取3,得到了近似的效果。

参考文献
【1】ε-approximate quantiles

【2】Space-efficient online computation of quantile summaries

【3】A fast algorithm for approximate quantiles in high speed data streams

【4】GK Summay算法(ϵ−approximate ϕ−quantile)

【5】XGBoost: A Scalable Tree Boosting System

【6】XGBoost之分位点算法

【7】XGBoost解读(2)–近似分割算法

【8】xgboost之分位点算法

【9】『我爱机器学习』集成学习(三)XGBoost
 

分位点和权重分位点差别:

  • 分位点:基于特征大小排序,然后根据特征值划分(均分)
  • 权重分位点:基于特征大小排序,然后根据二阶导划分(均分)

XGBoost解读之近似分割算法

转载:http://datavalley.github.io/2017/09/11/xgboost%E6%BA%90%E7%A0%81%E4%B9%8B%E5%88%86%E4%BD%8D%E7%82%B9 

xgboost之分位点算法xgboost之分位点算法