头部.jpg

参与文末话题讨论,每日赠送异步图书

——异步小编

麻省理工学院报道,他们开发了一种新型人工智能,用以预测世界杯走势。而应用了一种名为random-forest的计算方法,通过结合机器自我学习和常规统计,其准确率可能远胜于传统的统计方法。
在众多资深评论员的预测中,巴西拥有16.6%的最高夺冠几率,德国和西班牙紧随其后,夺冠概率分别有12.8%和12.5%。但random-forest认为,西班牙拥有更高的夺冠几率,其捧杯概率为17.8%,高于德国。这其中主要是因德国在16强中失利的可能性相对较大。在麻省理工的相关报告中,他们表示:
“西班牙比德国稍受AI青睐,这主要是因为德国在16强被爆冷的可能更高。”
近年来random-forest已经成为一种分析大型数据集的可靠方法,其在运行分析的同时规避了其他数据挖掘系统的一些缺陷。Random-forest的主要运算逻辑基于未来事件可以由决策树来决定这一原则,而决策树通过分析每一组数据集来得出其相应分支的结果。
在麻省理工的报告中称,影响西班牙和德国未来走向的重要因素是赛事本身的结构。他们指出,如果德国在小组阶段出线,其在16强淘汰赛面临的挑战将远大于西班牙,“翻车”的可能性不小。基于此点,random-forest通过计算,认为德国进入1/4决赛的概率只有58%;相比之下,西班牙则有73%的机率进入八强。
当然,假如西班牙和德国都成功进入1/4决赛,那么他们将有平等的机会最终捧杯。
random-forest中文翻译为随机森林,随机森林离不开决策树,下面我们就聊聊决策树和random-forest是如何计算的。

决策树模型虽然简单明了,但单独使用时效果并不理想。决策树和逻辑回归配合使用,将两种模型联结成为一个整体后,模型的效果得到了明显的提升。但由于其中涉及两种完全不同的模型,在数学上很难给这种联结方式一个比较理想的抽象,因此在工程实现上,很难做到自动寻找最优的模型组合。
为了使模型间的组合更加自动化,最常规或者最成熟的做法就是只使用一种模型,比如决策树。通过某种方式将多个决策树组合起来,使用它们的“集体智慧”来解决问题,学术上被称为集成方法(ensemble method)。
针对决策树的集成方法通常可以被分为两类:平均方法(averaging methods)和提升方法(boosting methods)。它们的代表模型分别是随机森林和GBTs。

 1.1随机森林
随机森林(random forests)由n个决策树组成,模型的预测结果等于各决策树结果的某种“加权平均”,如图1所示。

1.jpg


图1

•  对于分类问题,最终结果等于在决策树预测结果中出现次数最多的类别。直观上,可以将每个决策树想象成一个人,而随机森林想象成一场投票,通过少数服从多数的原则得到最终的结果。
•  对于回归问题,最终结果等于决策树预测结果的平均值。

随机森林的建模依据是:一棵树犯错的概率比较大,但很多树同时犯错的概率就很小了。通过一个简单的例子,从数学上来证明一下这种做法的正确性。假设针对某个分类问题,有3棵相互独立的决策树,它们各自预测错误的概率为20%。如果将它们按少数服从多数的原则组合起来,形成一个随机森林,那么预测犯错的情况可分为如下两种:3棵决策树都错误或者只有一棵树预测正确。计算可得这个随机森林的犯错概率下降到10.4%。
〖0.2〗^3  + 3 × 〖0.2〗^2  × 0.8 = 10.4%  (8-34)
由上面的例子可以看到,随机森林预测效果最重要的保证是森林中的决策树是相互独立的(极端地,假设森林中的每棵树都是一样的,则随机森林模型等同于决策树模型)。那么针对同一份训练数据,应该如何产生随机的决策树呢?
首先回顾一下决策树划分节点的具体步骤。使用训练集中的所有数据(假设数据被分为训练集和测试集)训练模型。对于需要划分的节点,选择最优的一个自变量以及相应的阈值,将其划分为左右两个子节点,使得子节点的不纯度之和达到最小。因此,可以从如下的3个层面引入决策树的随机性。
•  对于每个决策树,从原始训练集中随机选取训练该决策树的数据。
•  在划分节点时,并不遍历全部自变量,而是随机挑选其中的一部分作为候选自变量。
•  在选择自变量的划分阈值时,并不求得最优的解,而是随机构成一个候选阈值集合,并从中选取效果最优的(子节点的不纯度之和最低)。
针对随机森林,第三方库scikit-learn提供了两种实现:random forests和extremely randomized trees。这两者的差异在于random forests实现了随机性中的前两点,即训练数据随机以及候选自变量随机,而extremely randomized trees实现了随机性中的全部3点。在代码层面,这两类模型被封装成4个类(模型的参数和调用代码与决策树类似,在此不再赘述,有兴趣的读者请参考scikit-learn官方网站)。
•  random forests 包括两个类:用于分类问题的RandomForestClassifier和用于回归问题的RandomForestRegressor。
•  extremely randomized trees也包含两个类:ExtraTreesClassifier和ExtraTreesRegressor。它们分别解决分类问题和回归问题。

 1.2Random forest embedding
随机森林虽然是监督式学习,但它其实同样能处理没有标签变量的数据(或者故意不使用数据中的标签变量)。也就是说随机森林能被当作非监督式学习的模型使用[ ],先来看看这种方法的具体步骤。

假设训练数据一共有n个且数据由m维向量表示,记为{X_i  = (x_(i,1),x_(i,2),...,x_(i,m)),1 "≤" i "≤" n}。将这n个原始数据都归为一类,也就是说凭空生成标签变量{y_i  = 0,1 "≤" i "≤" n}。然后按如下的方法生成合成数据{X_i,n + 1 "≤" i "≤" 2n}:对于数据X_(n + 1),从原始数据第1个变量的取值里(即{x_(i,1)})随机抽取一个作为它的第1个变量;从原始数据第2个变量的取值里(即{x_(i,2)})随机抽取一个作为它的第2个变量,并以此类推,生成合成数据X_(n + 1)。不断重复上面的这个过程,直到生成n个新的合成数据。数据生成完成之后,将合成数据归为另一类,即{y_i  = 1,n + 1 "≤" i "≤" 2n},整个过程如图2所示。

2.jpg


图2

原始数据、合成数据以及生成的标签变量放在一起,就构成了有标签的训练数据,不妨记为{(X_i,y_i),1 "≤" i "≤" 2n}。对于这样的数据,可以对其使用随机森林进行分类,这样操作的目的有两个[ ]。
•   分析各个变量之间是否存在比较强烈的相关关系。同原始数据相比,合成数据里每个变量的分布情况是没有变化的(因为随机抽取)。唯一不同的是,合成数据破坏了原始数据中各个变量间可能存在相关关系。因此当分类结果的误差较大时,说明原始数据的各个变量几乎是相互独立,反之则说明各变量间的相关关系比较强烈。
•  将原本较低维度的原始数据映射到高维空间,同支持向量学习机中的核函数类似。这在学术上被称为random forest embedding,也是如此使用随机森林的主要目的。下面将讨论它的具体细节。
在上节中,我们讨论了如何利用决策树来做特征提取,而随机森林是由n棵决策树组成,因此相应的处理方法与之很相似。举个例子,假设训练好的随机森林(训练数据为{(X_i,y_i),1 "≤" i "≤" 2n})里有两棵决策树,它们的叶子节点数分别为2和4。第i个数据X_i落在了第一棵决策树的第1个叶子,第二棵决策树的第2个叶子。那么这个数据相应的新特征为(1, 0, 0, 1, 0, 0),如图3所示,这样就完成了低维数据到高维数据(随机森林里决策树的个数可以很大)的映射。random forest embedding方法常配合其他监督式学习模型一起使用.

3.jpg


图3

为了提升模型效果,需要借鉴支持向量学习机(SVM)中核函数(kernel method)的做法,将低维数据映射到高维空间,而且需要保证在高维空间里,各变量的取值只能是0或者1。random forests embedding正好满足这样的要求,因此在实际中,常使用它将数据升到高维,再在此基础上使用伯努利模型对数据进行分类。
举个简单的例子,假设原始数据只有两个变量x_1,x_2,将数据表现在平面上,可以得到如图3所示的图形,图中的三角形表示类别0,而圆点表示类别1,两个类别均呈半月型。如程序清单9-4所示,先使用RandomTreesEmbedding将原始的二维数据映射到高维空间,再使用BernoulliNB对变换后的数据做分类。分类的结果还不错,图4中灰色部分的预测结果是类别0的区域,而白色区域的预测结果是类别1。

4.jpg


图4
来看下代码清单

5.jpg


本文摘自《精通数据科学:从线性回归到深度学习》

尾部书副本.jpg


《精通数据科学:从线性回归到深度学习》唐亘  著

京东购书 当当购书
数据科学入门到实战,介绍数据科学常用的工具——Python、数学基础及模型,讨论数据科学的前沿领域——大数据和人工智能,包括机器学习领域经典的模型、分布式机器学习、神经网络和深度学习等。

  • 在数据学科的角度,融合了数学、计算机科学、计量经济学的精髓

  • 为读者阐释了数据科学所要解决的核心问题—数据模型、算法模型的理论内涵和适用范围

  • 以常用的IT工具—Python为基础,教会读者如何建模以及通过算法实现数据模型,具有很强的实操性。

  • 本书还为读者详解了分布式机器学习、神经网络、深度学习等大数据和人工智能的前沿技术。

今日互动
你觉得2018年冠军球队是哪个?为什么?截止时间6月22日17时,留言+转发本活动到朋友圈,小编将抽奖选出3名读者赠送纸书1本和2张e读版20元异步社区代金券,(留言点赞最多的自动获得一张)。



推荐阅读2018年5月新书书单(文末福利)
2018年4月新书书单
异步图书最全Python书单
一份程序员必备的算法书单
第一本Python神经网络编程图书


长按二维码,可以关注我们哟每天与你分享IT好文。
在“异步图书”后台回复“关注”,即可免费获得2000门在线视频课程
点击阅读原文,购买《精通数据科学 从线性回归到深度学习》


阅读原文