机器学习预测2018年世界杯冠军队

  1. 云栖社区>
  2. 博客>
  3. 正文

机器学习预测2018年世界杯冠军队

异步社区 2018-06-19 18:08:31 浏览4008
展开阅读全文

aab02f13562a938e28683adb532f06c733f46bbc



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


——异步小编


麻省理工学院报道,他们开发了一种新型人工智能,用以预测世界杯走势而应用了一种名为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所示。

9fd05b356eb77e6cb72305e6c71c0303aee8c252

图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所示。

10d68a8b35241ea2849df13f0c9d3f82fb3b67d8

图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方法常配合其他监督式学习模型一起使用.

84af01280de45e61efbb7f1fa6b218ca1cf7284f

图3


为了提升模型效果,需要借鉴支持向量学习机(SVM)中核函数(kernel method)的做法,将低维数据映射到高维空间,而且需要保证在高维空间里,各变量的取值只能是0或者1。random forests embedding正好满足这样的要求,因此在实际中,常使用它将数据升到高维,再在此基础上使用伯努利模型对数据进行分类。 

举个简单的例子,假设原始数据只有两个变量x_1,x_2,将数据表现在平面上,可以得到如图3所示的图形,图中的三角形表示类别0,而圆点表示类别1,两个类别均呈半月型。如程序清单9-4所示,先使用RandomTreesEmbedding将原始的二维数据映射到高维空间,再使用BernoulliNB对变换后的数据做分类。分类的结果还不错,图4中灰色部分的预测结果是类别0的区域,而白色区域的预测结果是类别1。

c53a210e9a9f1183e524cb5abbf5ecee32b21643

图4

来看下代码清单

0e1c5a68902cf6546a5e512610a21a3c326f5e89


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

bd0273b8bd39fbb0ec6a902e4dab40b72fe06340

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

唐亘  


京东购书          当当购书

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

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

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

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

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

今日互动

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


0cb5a27fa6fbbf9cb89ce913122f899fd46b8c72


推荐阅读

2018年5月新书书单(文末福利)

网友评论

登录后评论
0/500
评论
异步社区
+ 关注