简介
本书主要介绍:XGBoost相关的机器学习基础算法;XGBoost安装编译与简单使用;XGBoost的实现原理与理论证明;XGBoost基于CPU多线程的实现以及分布式训练方法;剖析XGBoost源码,从代码层面洞彻XGBoost的实现原理,以及XGBoost的应用与调优,通过典型示例为读者提供使用参考,掌握实战技能。通过阅读本书,不仅能使读者理解XGBoost的原理,将XGBoost应用到业务场景中,更能从源码的角度深入学习XGBoost的并行化和分布式实现等优化技术,以更短的时间训练出高准确度的模型,使XGBoost成为学习和工作中的一把利剑。
部分摘录:
何谓机器学习 近几年,机器学习可谓是业界最热门的领域之一,AlphaGo以4:1的比分击败李世石,人工智能和机器学习一夜火遍世界各地。机器学习离我们并不遥远,甚至可以说已经渗透到我们生活的方方面面。例如,网上购物时,电商网站根据用户偏好为用户推荐商品;Siri手机语音助手可查询天气、播放音乐;打车时,打车软件帮我们预估行程时间、规划行程路线;点外卖时,外卖App将订单分配给附近空闲的骑手等。这些无一不是通过机器学习技术来实现的。
机器学习领域知名学者Tom M.Mitchell曾给机器学习做如下定义:
如果计算机程序针对某类任务T的性能(用P来衡量)能通过经验E来自我改善,则认为关于T和P,程序对E进行了学习。
通俗来讲,机器学习是计算机针对某一任务,从经验中学习,并且能越做越好的过程。一般情况下,“经验”都是以数据的方式存在的,计算机程序从这些数据中学习。学习的关键是模型算法,它可以学习已有的经验数据,用以预测未知数据。
在很多领域,仅仅靠人很难从诸多信息中将有效信息提取出来的。例如,我们想知道一个人是否会去购买某个电影的电影票。想要知道这个答案,最直接、有效的方法就是去问他本人,因为他本人的回答是与结果最接近的,也就是相关性最强的一个特征。假如我们并不认识这个人,或并没有条件直接与他本人沟通,那么还有另外一种思路——问他的朋友,他的朋友可能对他比较了解,知道他喜欢哪种类型的影片。但往往这个条件也不一定能达到,因为对于这样的需求场景,更多的可能是影院想知道他的顾客会不会购买某个电影的电影票。而影院所拥有的顾客信息通常是用户的性别、年龄、以往观影记录、消费记录等基本信息。对于普通人来说,通过这些原始数据预测该顾客未来的行为,很难给出一个比较准确的答案。此时便需要机器学习把无序的数据转换成有用的信息,从而解决相关问题。
机器学习横跨了多个学科,包括计算机科学、统计学等,而从事机器学习的人不仅需要扎实的计算机知识和数学知识,还需要对机器学习应用场景下的业务知识非常了解。因此,很多人觉得机器学习门槛很高,还没有开始学习就望而却步了。其实机器学习的入门并没有想象中那么难,当然也不意味着机器学习的技术含量低。机器学习的特点是:入门门槛低,学习曲线陡。很多人入门之后容易陷入一种瓶颈状态,很难有更高的突破,所以学习机器学习一定要有耐心和毅力。
学习机器学习所需的基础知识有以下几类:
1)数学:线性代数(矩阵变换)、高等数学;
2)概率分布、回归分析等统计学基础知识;
3)Python、NumPy、Pandas等数据处理工具;
4)Hadoop、Spark等分布式计算平台。
读者不要被上面所罗列的知识吓到,因为即使你不具备这些知识,也可以学习机器学习,在学习的过程中随用随查即可。当然,如果已经事先具备了这些知识,那你学习起来一定事半功倍。下面介绍机器学习相关的基本概念。