问题:Xgboost、lightGBM和Catboost之间的异同?
树的特征
三种算法基学习器都是决策树,但是树的特征以及生成的过程仍然有很多不同。
CatBoost使用对称树,其节点可以是镜像的。CatBoost基于的树模型其实都是完全二叉树。
XGBoost的决策树是Level-wise增长。Level-wise可以同时分裂同一层的叶子,容易进行多线程优化,过拟合风险较小,但是这种分裂方式也有缺陷,Level-wise对待同一层的叶子不加以区分,带来了很多没必要的开销。
实际上很多叶子的分裂增益较低,没有搜索和分裂的必要。 LightGBM的决策树是Leaf-wise增长。每次从当前所有叶子中找到分裂增益最大的一个叶子(通常来说是数据最多的一个),其缺陷是容易生长出比较深的决策树,产生过拟合,为了解决这个问题,LightGBM在Leaf-wise之上增加了一个最大深度的限制。
对于类别型变量
调用boost模型时,当遇到类别型变量,xgboost需要先处理好,再输入到模型,而lightgbm可以指定类别型变量的名称,训练过程中自动处理。
具体来讲,CatBoost 可赋予分类变量指标,进而通过独热最大量得到独热编码形式的结果(独热最大量:在所有特征上,对小于等于某个给定参数值的不同的数使用独热编码;同时,在 CatBoost 语句中设置“跳过”,CatBoost 就会将所有列当作数值变量处理)。
LighGBM 也可以通过使用特征名称的输入来处理属性数据;它没有对数据进行独热编码,因此速度比独热编码快得多。LGBM 使用了一个特殊的算法来确定属性特征的分割值。(注:需要将分类变量转化为整型变量;此算法不允许将字符串数据传给分类变量参数)
和 CatBoost 以及 LGBM 算法不同,XGBoost 本身无法处理分类变量,只接受数值数据,这点和RF很相似。实际使用中,在将分类数据传入 XGBoost 之前,必须通过标记编码、均值编码或独热编码等各种编码方式对数据进行处理。

本文探讨了Xgboost、lightGBM和Catboost在决策树特性和类别变量处理上的异同,解释了SVM与Logistic回归在不同情况下的适用性,以及GBDT中为何不使用后剪枝。同时,分析了xgb与lgb在特征和数据并行上的区别,并推荐了《名企AI面试100题》电子书。
&spm=1001.2101.3001.5002&articleId=121682555&d=1&t=3&u=d0b17bd27d054e6db11ae63568b39e63)
2012

被折叠的 条评论
为什么被折叠?



