XGBoost和LightGBM的区别是什么?

xgboost采用的是level-wise的分裂策略,而lightGBM采用了leaf-wise的策略,区别是xgboost对每一层所有节点做无差别分裂,可能有些节点的增益非常小,对结果影响不大,但是xgboost也进行了分裂,带来了不必要的开销。 leaft-wise的做法是在当前所有叶子节点中选择分裂收益最大的节点进行分裂,如此递归进行,很明显leaf-wise这种做法容易过拟合,因为容易陷入比较高的深度中,因此需要对最大深度做限制,从而避免过拟合。

lightgbm使用了基于histogram的决策树算法,这一点不同与xgboost中的 exact 算法,histogram算法在内存和计算代价上都有不小优势。


内存:直方图算法的内存消耗为(#data* #features * 1Bytes)(因为对特征分桶后只需保存特征离散化之后的值),而xgboost的exact算法内存消耗为:(2 * #data * #features* 4Bytes),因为xgboost既要保存原始feature的值,也要保存这个值的顺序索引,这些值需要32位的浮点数来保存。


计算:预排序算法在选择好分裂特征计算分裂收益时需要遍历所有样本的特征值,时间为(#data),而直方图算法只需要遍历桶就行了,时间为(#bin)


在生物信息学应用中,先期数据的载入对于内存容量的要求越来越高,蓝海大脑采用大内存深度学习服务器四路或者八路胖节点,可以在单节点中配置高达2TB内存,充分达到应用的实际需求。海量存储系统是生物信息学计算的先决条件。蓝海大脑不仅可以提供了专业的直连存储,更有8Gb接口的光纤存储系统,通过专有的存储节点构建Lustre并行文件系统,接入以太网,甚至40GB的Infiniband网络,总体容量可达到PB级,除此之外还考虑到用户的数据安全,数据备份等,从根本上解决了生物信息学的数据存储难题。


蓝海大脑 京ICP备18017748号-1