CatBoost:比XGBoost更优秀的GBDT算法

编译作者: 汪昊 2018-08-31 08:03:00

CatBoost: 比XGBoost更优秀的GBDT算法

【51CTO.com快译】互联网的算法有很多应用场景,包括推荐系统、计算广告和金融反欺诈等。许多互联网的机器学习和数据挖掘问题都可以转化为分类问题。在处理这一类分类问题的时候,最常用的方法包括逻辑回归、GBDT和深度学习等。其中逻辑回归因为算法效率高,能有效处理大规模的数据,在深度学习还没有流行之前就被广泛的应用于大型的互联网公司。

深度学习是自 2012 年由百度首先成立深度学习实验室之后在国内掀起的人工智能大潮。然而由于深度学习目前还处于蓬勃发展的阶段,并且处理大规模数据时对于机器的经费的要求都比较高,因此在很多应用场景下大家选择的并不是机器学习。GBDT 自问世以来便在诸多机器学习问题上取得了良好的效果,不仅在工业界,而且在 Kaggle 比赛上取得了非常优秀的成绩。

针对 GBDT 算法,在学术界和工业界有许多开源的算法包。著名的包括 University of Washington 的陈天奇开发的 XGBoost ,微软的 LightGBM ,还有 Yandex 公司开发的 CatBoost 。XGBoost 被广泛的应用于工业界,LightGBM 有效的提升了 GBDT的计算效率, 而 Yandex 的 CatBoost 号称是比 XGBoost 和 LightGBM 在算法准确率等方面表现更为优秀的算法。本文主要通过介绍 Yandex 2017 年发表的一篇题为 CatBoost: Unbiased Boosting with Categorical Features 的论文给大家介绍 CatBoost 算法。

CatBoost 算法的设计初衷是为了更好的处理 GBDT 特征中的 categorical features 。在处理 GBDT 特征中的 categorical features 的时候,最简单的方法是用 categorical feature 对应的标签的平均值来替换。在决策树中,标签平均值将作为节点分裂的标准。这种方法被称为 Greedy Target-based Statistics , 简称 Greedy TBS,用公式来表达就是:

CatBoost: 比XGBoost更优秀的GBDT算法

这种方法有一个显而易见的缺陷,就是通常特征比标签包含更多的信息,如果强行用标签的平均值来表示特征的话,当训练数据集和测试数据集数据结构和分布不一样的时候会出问题(条件偏移问题)。

一个标准的改进 Greedy TBS的方式是添加先验分布项,这样可以减少噪声和低频率数据对于数据分布的影响:

CatBoost: 比XGBoost更优秀的GBDT算法

其中 P 是添加的先验项,a 通常是大于 0 的权重系数。

为了解决条件迁移问题,常用的方法例如可以将数据集合分为两部分,在***个部分上对数据的特征进行类似 Greedy TBS 的处理,而在第二个数据集合上进行训练。CatBoost 参考了在线学习的方法,首先对训练书进行了随机的重排列,然后选择   作为训练样本,而整个的数据集合做为测试样本。

类似的,在GBDT的模型训练阶段,同样会因为训练数据与测试数据分布不同的问题产生预测偏移(Prediction Shift)和残差偏移(Residual Shift)的问题。为了解决相应的问题,CatBoost 作者采用了排序提升(Ordered Boosting)的方式,首先对所有的数据进行随机排列,然后在计算第 i 步残差时候的模型只利用了随机排列中前 i-1 个样本。

CatBoost 针对于原始 GBDT 的各种偏移问题进行改进之后的算法伪代码如下:

CatBoost: 比XGBoost更优秀的GBDT算法

CatBoost: 比XGBoost更优秀的GBDT算法

CatBoost: 比XGBoost更优秀的GBDT算法

CatBoost 和 XGBoost 以及 LightGBM 在一些知名的数据集合上的测试效果如下表所示,评测指标为 Logloss 和 Zero-one Loss 。

CatBoost: 比XGBoost更优秀的GBDT算法

CatBoost 的基本原理是解决原始 GBDT 中的各种数据偏移问题。在一些开源的机器学习和数据挖掘的算法包里有现成的模块可以调用。CatBoost 自从 2017 年被 Yandex ***提出以来得到了广泛的关注。希望本文的介绍能给大家带来帮助。

汪昊,恒昌利通大数据部负责人/资深架构师,美国犹他大学本科/硕士,对外经贸大学在职MBA。曾在百度,新浪,网易,豆瓣等公司有多年的研发和技术管理经验,擅长机器学习,大数据,推荐系统,社交网络分析等技术。在 TVCG 和 ASONAM 等国际会议和期刊发表论文 8 篇。本科毕业论文获国际会议 IEEE SMI 2008 ***论文奖。

CatBoost: 比XGBoost更优秀的GBDT算法

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

深度学习 GBDT算法 CatBoost
上一篇:网购数据下的智能门锁“剁手”攻略 下一篇:实用|一文带你零基础入行深度学习
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

百度CTO王海峰CNCC2019演讲:深度学习平台支撑产业智能化

百度CTO王海峰在会上发表题为《深度学习平台支撑产业智能化》的演讲,分享了百度关于深度学习技术推动人工智能发展及产业化应用的思考,并深度解读百度飞桨深度学习平台的优势,以及与百度智能云结合助力产业智能化的成果。

佚名 ·  1天前
深度学习/计算机视觉常见的8个错误总结及避坑指南

人类并不是完美的,我们经常在编写软件的时候犯错误。有时这些错误很容易找到:你的代码根本不工作,你的应用程序会崩溃。但有些 bug 是隐藏的,很难发现,这使它们更加危险。

skura ·  3天前
2019年深度学习自然语言处理十大发展趋势 精选

自然语言处理在深度学习浪潮下取得了巨大的发展,FloydHub 博客上Cathal Horan介绍了自然语言处理的10大发展趋势,是了解NLP发展的非常好的文章。

HU数据派 ·  4天前
图灵奖得主Yoshua Bengio:深度学习当务之急,是理解因果关系

深度学习擅长在大量数据中发现模式,但无法解释它们之间的联系,而图灵奖获得者Yoshua Bengio想要改变这一点。

佚名 ·  2019-10-15 05:15:00
18个挑战项目带你快速入门深度学习

AlphaGo 大战李世?h之后,深度学习技术便在国内变得异常火。吸引了大批的技术人员争相学习,那么到底如何才能更快速的入门深度学习呢?下面给大家介绍的 18 个挑战项目,通过实践动手带你快速入门深度学习!

实验楼 ·  2019-10-10 14:48:19
盘点 | 8个你可能不知道的深度学习应用案例

深度学习与传统机器学习系统的不同之处在于,它能够在分析大型数据集时进行自我学习和改进,因此能应用在许多不同的领域。

天极网 ·  2019-10-10 14:15:18
2019年较热门的5大深度学习课程

今天,我们将和大家盘点一下,当下较流行的深度学习资源/课程,可以帮助你们提升深度学习技能。

猿哥 ·  2019-09-26 05:16:24
DeepMind一次性开源3个新框架!深度强化学习应用落地即将迎来春天?

深度强化学习(Deep Reinforcement Learning,DRL)一直是近年来人工智能的一些重大突破的核心。然而,尽管 DRL 有了很大的进步,但由于缺乏工具和库,DRL 方法在主流解决方案中仍然难以应用。

杨鲤萍 ·  2019-09-20 09:38:18
Copyright©2005-2019 51CTO.COM 版权所有 未经许可 请勿转载