机器学习科研的十年,陈天奇( 二 )


其次 , 了解机器学习的实现步骤 。机器学习的流程包括数据收集、数据整理、算法设计、算法实现、验证算法和应用算法 , 数据收集是机器学习的第一步 , 目前可以用于机器学习的公共数据集并不少 , 对于实验来说已经够用了 。接下来就是了解常见的机器学习算法 , 目前比较常见的机器学习算法包括NB、k-mean、kNN、SVM、Apriori、EM、PageRank、CART等算法 , 对于有算法基础的人来说 , 这些算法的学习并不困难 。
最后 , 选择一门编程语言来实现这些算法并对其进行验证 。对于软件工程师来说 , 这个步骤还是相对比较轻松的 , 目前使用Python做机器学习的算法实现是一个比较常见的做法 。人工智能是我的主要研究方向之一 , 目前我也在带相关方向的研究生 , 我会陆续在头条写一些关于人工智能方面的文章 , 感兴趣的朋友可以关注我 , 相信一定会有所收获 。
为什么XGBoost在机器学习竞赛中表现如此卓越?

机器学习科研的十年,陈天奇


挪威科技大学 Didrik Nielsen 的硕士论文《使用 XGBoost 的树提升:为什么 XGBoost 能赢得「每一场」机器学习竞赛?(Tree Boosting With XGBoost - Why Does XGBoost Win "Every" Machine Learning Competition?)》研究分析了 XGBoost 与传统 MART 的不同之处以及在机器学习竞赛上的优势 。
本文对这篇长达 110 页的论文进行了解读 , 提炼出了其中的要点和核心思想 , 汇成此篇 。引言tree boosting(树提升)已经在实践中证明可以有效地用于分类和回归任务的预测挖掘 。之前很多年来 , 人们所选择的树提升算法一直都是 MART(multiple additive regression tree/多重累加回归树) 。
但从 2015 年开始 , 一种新的且总是获胜的算法浮出了水面:XGBoost 。这种算法重新实现了树提升 , 并在 Kaggle 和其它数据科学竞赛中屡获佳绩 , 因此受到了人们的欢迎 。在《Tree Boosting With XGBoost - Why Does XGBoost Win "Every" Machine Learning Competition?》这篇论文中 , 来自挪威科技大学的 Didrik Nielsen 研究调查了:1.XGBoost 与传统 MART 的不同之处2.XGBoost 能赢得「每一场」机器学习竞赛的原因这篇论文分成三大部分:1. 回顾统计学习的一些核心概念2. 介绍 boosting 并以函数空间中数值优化的方式对其进行解释;进一步讨论更多树方法以及树提升方法的核心元素3. 比较 MART 和 XGBoost 所实现的树提升算法的性质;解释 XGBoost 受欢迎的原因统计学习的基本概念这篇论文首先介绍了监督学习任务并讨论了模型选择技术 。
机器学习算法的目标是减少预期的泛化误差 , 这也被称为风险(risk) 。如果我们知道真实的分布 P(x,y) , 那么风险的最小化就是一个可以通过优化算法解决的优化任务 。但是 , 我们并不知道真实分布 , 只是有一个用于训练的样本集而已 。我们需要将其转换成一个优化问题 , 即最小化在训练集上的预期误差 。因此 , 由训练集所定义的经验分布会替代真实分布 。
上述观点可以表示成下面的统计学公式:其中是模型的真实风险 R(f) 的经验估计 。L(.) 是一个损失函数 , 比如平方误差损失函数(这是回归任务常用的损失函数) , 其它损失函数可以在这里找到:http://www.cs.cornell.edu/courses/cs4780/2017sp/lectures/lecturenote10.html 。
n 是样本的数量 。当 n 足够大时 , 我们有: ERM(经验风险最小化)是一种依赖于经验风险的最小化的归纳原理(Vapnik, 1999) 。经验风险最小化运算 是目标函数的经验近似 , 定义为:其中 F 属于某个函数类 , 并被称为某个模型类(model class) , 比如常数、线性方法、局部回归方法(k-最近邻、核回归)、样条函数等 。

推荐阅读