↵
1.LightGBM是微软2017年新提出的,比Xgboost更强大、速度更快的模型,性能上有很大的提升,与传统算法相比具有的优点:
*更快的训练效率 *低内存使用 *更高的准确率 *支持并行化学习 *可处理大规模数据 *原生支持类别特征,不需要对类别特征再进行0-1编码这类的2.LightGBM一大的特点是在传统的GBDT基础上引入了两个 新技术和一个改进:
(1)Gradient-based One-Side Sampling(GOSS)技术是去掉了很大一部分梯度很小的数据,只使用剩下的去估计信息增益,避免低梯度长尾部分的影响。由于梯度大的数据在计算信息增益的时候更重要,所以GOSS在小很多的数据上仍然可以取得相当准确的估计值。(2)Exclusive Feature Bundling(EFB)技术是指捆绑互斥的特征(i.e.,他们经常同时取值为0),以减少特征的数量。但对互斥特征寻找最佳的捆绑方式是一个NP难问题,当时贪婪算法可以取得相当好的近似率(因此可以在不显著影响分裂点选择的准确性的情况下,显著地减少特征数量)。(3)在传统GBDT算法中,最耗时的步骤是找到最优划分点,传统方法是Pre-Sorted方式,其会在排好序的特征值上枚举所有可能的特征点,而LightGBM中会使用histogram算法替换了传统的Pre-Sorted。基本思想是先把连续的浮点特征值离散化成k个整数,同时构造出图8所示的一个宽度为k的直方图。最开始时将离散化后的值作为索引在直方图中累积统计量,当遍历完一次数据后,直方图累积了离散化需要的统计量,之后进行节点分裂时,可以根据直方图上的离散值,从这k个桶中找到最佳的划分点,从而能更快的找到最优的分割点,而且因为直方图算法无需像Pre-Sorted那样存储预排序的结果,而只是保存特征离散过得数值,所以使用直方图的方式可以减少对内存的消耗。Pre-sorted 算法需要 O(data) 次的计算 Histogram 算法只需要计算 O(bins) 次, 并且 bins 远少于data(直方图仍然需要 O(#data) 次来构建直方图, 而这仅仅包含总结操作,只是第一次做data此即可)
https://blog.csdn.net/maqunfi/article/details/82219999