中年|机器学习算法的新女王——XGBoost
字幕组双语原文:机器学习最优算法:XGBoost
英语原文:XGBoost Algorithm: Long May She Reign!
翻译:雷锋字幕组(yhfwww)
仍然记得15年前参加工作的第一天 , 刚完成研究生学业的我 , 加入了一家全球投资银行担任分析师 。 那天我不停地拉直领带 , 努力回忆起学过的所有东西 , 怀疑自己是否足够胜任工作 。 察觉到我的焦虑 , 老板微笑着说:
“别担心!你只需要知道回归模型就行了!”
我当时在想 , “我知道这个!” 。 我知道回归模型、线性回归和逻辑回归 。 老板的说法是对的 , 在任期内我仅仅建立了基于回归的统计模型 。 在那个时候 , 回归建模是预测分析无可争议的女王 。 15年后 , 回归建模的时代已经结束 。 迟暮的女王已经退场,取而代之的是名字时髦、活力满满的新女王XGBoost(Exterme Gradient Boosting,极限梯度提升) 。
什么是XGBoost?
XGBoost是基于决策树的集成机器学习算法 , 使用了梯度提升框架 。 在涉及非结构化数据(图像、文本等)的预测问题中 , 人工神经网络往往优于所有其他算法或框架 。 然而 , 当涉及到中小型结构化/表格数据时 , 基于决策树的算法被认为是目前同类中最好的 。 请参阅下表了解这些年来基于树的算法的发展 。
本文插图
基于决策树的XGBoost算法演化
XGBoost算法是华盛顿大学的一个研究项目 。 陈天奇和Carlos Guestrin在2016年的SIGGDD大会上发的的论文 , 让机器学习世界如火如荼 。 自引入以来 , 该算法不仅赢得了众多的Kaggle竞赛 , 而且还被认为是若干前沿行业应用的驱动力 。 因此 , 有一个强大的数据科学家社区为XGBoost开源项目做出贡献 , GitHub上有大约350个贡献者和~3600个提交者 。 该算法有以下特点:
- 应用范围广泛:可用于解决回归、分类、排名和用户自定义预测问题 。
- 可移植性:在Windows、Linux和os x上运行平稳 。
- 语言:支持所有主流的编程语言 , 包括C++、Python、R、java、Scala和Julia 。
- 云集成:支持AWS、Azure和Yarn集群 , 与Flink、Spark和其他生态系统配合良好 。
决策树 , 在其最简单的形式 , 是易于可视化和相当可解释的算法 , 但为下一代基于树的算法建立直觉可能有点棘手 。 下面是一个简单的类比 , 可以更好地理解基于树的算法的发展 。
本文插图
照片来Unsplash的rawpixel
想象一下 , 你是一个招聘经理 , 面试几位资历优秀的应聘者 。 基于树的算法进化的每一步都可以看作是面试过程的一个版本 。
- 决策树:每个招聘经理都有一套标准 , 比如教育水平、工作年限、面试表现 。 决策树类似于招聘经理根据自己的标准面试应聘者 。
- Bagging:现在想象一下 , 不是一个面试官 , 而是一个面试小组 , 每个面试官都有投票权 。 Bagging聚合包括通过民主投票过程将所有面试官的意见结合起来 , 以最终做出决定 。
- 随机森林:这是一种基于Bagging的算法 , 有一个关键的区别 , 其中只有一个子集的特征是随机选择的 。 换言之 , 每个面试官只会对面试者进行一些随机选择的资格测试(例如 , 测试编程技能的技术面试和评估非技术技能的行为面试) 。
- Boosting:这是一种替代方法 , 每个面试官都会根据前一位面试官的反馈来改变评估标准 。 这通过部署一个更动态的评估过程来“提升Boosts”面试过程的效率 。
XGBoost和Gradient Boosting Machines(GBMs)都是集成树方法 , 它们采用梯度下降结构来提高弱学习者(CARTs)的学习能力 。 然而 , XGBoost通过系统优化和算法增强改进了基本GBM框架 。
本文插图
XGBoost如何优化标准GBM算法
- 并行化:XGBoost使用并行化实现序列树的构建过程 。 这是可能的 , 因为用于构建基本学习器的循环具有可互换性;外部循环枚举树的叶节点 , 第二个内部循环计算特征 。 这是可能的 , 因为用于构建基本学习器的循环具有可互换性;外部循环枚举树的叶节点 , 第二个内部循环计算特征 。 这种循环嵌套限制了并行化 , 因为没有完成内部循环(对这两个循环的计算要求更高) , 外部循环就无法启动 。 因此 , 为了改进运行时 , 循环的顺序是通过初始化来交换的 , 通过对所有实例的全局扫描和使用并行线程进行排序 。 此开关通过抵消计算中的任何并行化开销来提高算法性能 。
- 树修剪:GBM框架中的树分裂停止准则本质上是贪婪的 , 它依赖于分裂点的负损失准则 。 XGBoost使用指定的“max_depth”参数 , 而不是先使用条件 , 然后开始向后修剪树 。 这种“深度优先”方法显著提高了计算性能 。
- 硬件优化:此算法旨在有效利用硬件资源 。 这是通过缓存感知来实现的 , 通过在每个线程中分配内部缓冲区来存储梯度统计信息 。 进一步的增强 , 如“内核外”计算优化可用磁盘空间 , 同时处理不适合内存的大数据帧 。
- 正则化:它通过L1脊线L2正则化来惩罚更复杂的模型 , 以防止过度拟合 。
- 稀疏性意识:XGBoost通过根据训练损失自动“学习”最佳缺失值 , 自然地允许输入稀疏特征 , 并更有效地处理数据中不同类型的稀疏模式 。
- 加权分位数草图:XGBoost采用分布式加权分位数草图算法 , 有效地找到加权数据集之间的最佳分割点 。
- 交叉验证:该算法在每次迭代中都带有内置的交叉验证方法 , 不需要显式地对该搜索进行编程 , 也不必指定一次运行中所需的确切的提升迭代次数 。
我们使用scikitlearn的“Make_nuclassification”数据包创建了一个随机样本 , 其中有100万个数据点 , 有20个特征(2个是信息性的 , 2个是冗余的) 。 我们测试了一些算法 , 如Logistic回归、随机森林、标准梯度提升和XGBoost 。
本文插图
XGBoost与使用SKLearn的Make_Classification 数据集的其他ML算法的比较
如上图所示 , 与其他算法相比 , XGBoost模型具有最佳的预测性能和处理时间组合 。 其他严格的基准研究也产生了类似的结果 。 难怪XGBoost在最近的数据科学竞赛中被广泛使用 。
“如有疑问 , 请使用XGBoost”——Owen Zhang
所以我们应该一直使用XGBoost吗?
说到机器学习(甚至是生活) , 没有免费的午餐 。 作为数据科学家 , 我们必须测试手头数据的所有可能的算法 , 以确定冠军算法 。 此外 , 选择正确的算法是不够的 。 我们还必须通过调整超参数来为数据集选择正确的算法配置 。 此外 , 在选择获胜算法时还有其他一些考虑因素 , 例如计算复杂度、可解释性和易于实现 。 这正是机器学习开始从科学走向艺术的起点 , 但老实说 , 这就是奇迹发生的地方!
未来会怎样?
机器学习是一个非常活跃的研究领域 , 已经有几种可行的XGBoost替代方案 。 微软研究院最近发布了LightGBM框架来增强梯度 , 显示出巨大的潜力 。 Yandex Technology开发的CatBoost已经取得了令人印象深刻的基准测试结果 。 在预测性能、灵活性、可解释性和实用性方面 , 我们有一个比XGBoost更好的模型框架是迟早的事 。 然而 , 直到有一个强大的挑战者出现 , XGBoost将继续统治机器学习世界!
【封面图片来源:网站名Unsplash , 所有者: Jared Subia】
雷锋字幕组是由AI爱好者组成的志愿者翻译团队;团队成员有大数据专家、算法工程师、图像处理工程师、产品经理、产品运营、IT咨询人、在校师生;志愿者们来自IBM、AVL、Adobe、阿里、百度等知名企业 , 北大、清华、港大、中科院、南卡罗莱纳大学、早稻田大学等海内外高校研究所 。
了解字幕组请联系微信:tlacttlact
转载请联系字幕组微信并注明出处:雷锋字幕组
雷锋网雷锋网
【中年|机器学习算法的新女王——XGBoost】
推荐阅读
- 澎湃新闻|仝卓事件被写入公职人员学习读本 仝卓事件怎么回事
- 仝卓事件通报成《公职人员政务处分法》学习读本案例
- 仝卓|成范本了!曝仝卓被写入公职人员学习读本 这下子真是大火了!
- 减肥|JAMA:减肥要趁早,25岁就该开始预防中年期肥胖
- 环球时报|中国产“机器人护士”在西班牙医院上岗
- 别再学习框架了,看看这些让你起飞的计算机基础知识
- 人到中年,常吃3种食物,健脑益智,美白抗衰,保护心血管
- 橘了一只猫|看看孕妈赵丽颖,学习如何打造十足的时尚感!
- 中年|《中国新说唱2020》全民搞哈开团日
- 中年|点燃创新之火,合力解除“缺芯”之痛
