CatBoost算法 & XGBoost算法 & Light GBM算法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CatBoost算法 & XGBoost算法 & Light GBM算法相关的知识,希望对你有一定的参考价值。

参考技术A

CatBoost是俄罗斯的搜索巨头Y andex在2017年开源的机器学习库,也是Boosting族算法的一种,同前面介绍过的XGBoost和LightGBM类似,依然是在GBDT算法框架下的一种改进实现,是一种基于对称决策树(oblivious trees)算法的参数少、支持类别型变量和高准确性的GBDT框架,主要解决的痛点是 高效合理地处理类别型特征(Categorical features) ,这个从它的名字就可以看得出来,CatBoost是由 catgorical boost 组成,另外是 处理梯度偏差(Gradient bias) 以及 预测偏移(Prediction shift)问题 ,提高算法的准确性和泛化能力。

类别型变量(Categorical features)是指其值是 离散的集合且相互比较并无意义的变量 ,比如用户的ID、产品ID、颜色等。因此,这些变量无法在二叉决策树当中直接使用。常规的做法是将这些类别变量通过预处理的方式转化成 数值型变量 再用模型进行训练,比如用一个或者若干个数值来代表一个类别型特征。

在LightGBM当中,类别型特征用每一步梯度提升时的梯度统计(Gradient Statistics,以下简称GS)来表示。虽然为建树提供了重要的信息,但是这种方法有以下两个缺点:

因此,采用TS作为一个新的数值型特征是最有效、信息损失最小的处理类别型特征的方法。TS也被广泛采用,在点击预测任务当中,这个场景当中的类别特征有用户、地区、广告、广告发布者等。

它的具体实现方法如下:

所有的这些模型都需要调节大量参数,但我们只谈论其中重要的。以下是将不同算法中的重要参数按照功能进行整理的表格。

The rmse of prediction is: 0.0

0.0

在默认参数下,均方误差为 0

机器学习 | 总结 CatBoost 的 5 个独特功能


CSDN 叶庭云https://yetingyun.blog.csdn.net/

其他梯度提升算法(AdaBoost、、GBDT、XGBoost、LightGBM)不具备这些特点

目前主流的 5 种梯度提升算法:AdaBoost、Gradient Boosting、XGBoost、LightGBM 和 CatBoost。

在这些算法中,CatBoost 之所以如此特别,是因为它具有其他提升算法所不具备的特殊功能。

一般来说,提升算法有两个主要缺点:

  • 过度拟合很容易发生在提升算法中,因为它们是基于树的算法。
  • 提升算法的训练过程不容易并行化,因为新的树是一个接一个按顺序创建的。

考虑到已有梯度提升算法的缺点,CatBoost 被设计用来以闪电般的速度为大型数据集建立更多的通用模型。它有内置的参数来抑制过拟合和进行并行学习,还有一些其他独特的功能!

CatBoost 同时支持 CPU 和 GPU,开箱即用(非常方便,而要配置 GPU 版本的 LightGBM 则有些麻烦,你如果配置过 LightGBM 的 GPU 版本就会深有体会开箱即用的好)。CatBoost 的 pip 和 conda 安装都为 CatBoost 提供了 GPU 支持。</

以上是关于CatBoost算法 & XGBoost算法 & Light GBM算法的主要内容,如果未能解决你的问题,请参考以下文章

机器学习 | 总结 CatBoost 的 5 个独特功能

30 分钟看懂 CatBoost(Python代码)

从结构到性能,一文概述XGBoostLight GBM和CatBoost的同与不同

随机森林、GBDT、Xgboost

XGBoost/CatBoost中具有大量类别的分类变量

XGBoost/CatBoost中具有大量类别的分类变量