LightGBM优势总结

一、效率和内存上的提升

1) 在训练决策树计算切分点的增益时,xgboost采用预排序,即需要对每个样本的切分位置都要计算一遍,所以时间复杂度是O(#data)。而LightGBM则是将样本离散化为直方图,(直方图算法的基本思想是先把连续的浮点特征值离散化成k个整数,同时构造一个宽度为k的直方图。在遍历数据的时候,根据离散化后的值作为索引在直方图中累积统计量,当遍历一次数据后,直方图累积了需要的统计量,然后根据直方图的离散值,遍历寻找最优的分割点)这样再计算分裂点增益时只需要根据直方图切割位置计算即可,时间复杂度缩减为O(#bins),比如原始数据是100条,需要进行100次切割计算,如果分成10个直方图之后,只需要进行10次分割计算即可,时间效率上大大提高了。直方图算法是一种牺牲了一定的切分准确性而换取训练速度以及节省内存空间消耗的算法。(初始构造直方图是需要一次O(#data)的时间复杂度,不过这里只涉及到加和操作)

猜你喜欢

转载自www.cnblogs.com/gczr/p/9024730.html