当前位置: 首页 > 科技观察

CatBoost:GBDT算法比XGBoost好

时间:2023-03-13 03:54:24 科技观察

【.com快译】互联网算法有很多应用场景,包括推荐系统、计算广告、金融反欺诈等。互联网的很多机器学习和数据挖掘问题都可以转化为分类问题。在处理这类分类问题时,最常用的方法包括逻辑回归、GBDT和深度学习。其中,逻辑回归在深度学习流行之前就被大型互联网公司广泛应用,因为它算法效率高,能够有效处理大规模数据。深度学习是中国人工智能的一股浪潮,自2012年百度率先成立深度学习实验室以来。但由于深度学习仍处于蓬勃发展阶段,处理大规模数据时对机器资金的要求较高,在很多应用场景中,人们不会选择机器学习。GBDT自成立以来,在很多机器学习问题上都取得了不错的成绩,不仅在业界,在Kaggle比赛中也是如此。对于GBDT算法,学术界和工业界都有很多开源的算法包。比较著名的有华盛顿大学陈天琪开发的XGBoost、微软开发的LightGBM、Yandex开发的CatBoost。XGBoost在业界应用广泛。LightGBM有效地提高了GBDT的计算效率,Yandex的CatBoost号称在算法精度上优于XGBoost和LightGBM。本文主要通过介绍2017年Yandex发表的一篇题??为CatBoost:UnbiasedBoostingwithCategoricalFeatures的论文来介绍CatBoost算法。CatBoost算法的初衷是为了更好地处理GBDT特征中的分类特征。在处理GBDT特征中的分类特征时,最简单的方法是将其替换为分类特征对应的标签的平均值。在决策树中,标签平均值将被用作节点分裂的标准。这种方法称为GreedyTarget-basedStatistics,简称GreedyTBS。用公式表示:这种方法有一个明显的缺陷,即通常特征包含的信息多于标签。如果强行用标签的平均值来表示特征的话,当训练数据集和测试数据集的数据结构和分布不同时就会出现问题(条件偏差问题)。改进GreedyTBS的标准方法是添加先验分布项,可以减少噪声和低频数据对数据分布的影响:其中P是添加的先验项,a通常是大于0的权重系数。为了解决条件迁移问题,常用的方法是将数据集分成两部分,对第一部分数据的特征进行类似GreedyTBS的处理,在第二部分数据集上进行训练。CatBoost指的是在线学习的方法。首先,训练书籍被随机重新排列,然后选择作为训练样本,同时将整个数据集作为测试样本。同样,在GBDT的模型训练阶段,由于训练数据和测试数据的分布不同,也会出现预测偏移(PredictionShift)和残差偏移(ResidualShift)的问题。为了解决相应的问题,CatBoost的作者采用了OrderedBoosting的方法。首先将所有数据随机排列,然后模型在计算第i步残差时只使用随机排列中的第i-1个。样本。CatBoost针对原GBDT各种偏移问题的改进算法伪代码如下:CatBoost、XGBoost和LightGBM在部分知名数据集上的测试结果如下表所示,评价指标为Logloss和Zero-一个损失。CatBoost背后的基本原理是解决原始GBDT中的各种数据偏移问题。一些开源的机器学习和数据挖掘算法包中有现成的模块可以调用。CatBoost自2017年由Yandex***提出以来受到了广泛的关注,希望这篇介绍能对大家有所帮助。王浩,恒昌力通大数据部负责人/高级架构师,美国犹他大学学士/硕士,对外经济贸易大学在职MBA。在百度、新浪、网易、豆瓣等公司拥有多年研发和技术管理经验。擅长机器学习、大数据、推荐系统、社交网络分析等技术。在TVCG、ASONAM等国际会议和期刊发表论文8篇。本科毕业论文获IEEESMI2008国际会议最佳论文奖。【翻译稿件,合作网站转载请注明原译者及出处.com】