学霸使出机器学习大招,真能赢得10亿美金吗?

导读:本文为大二学生Adit Deshpande在美国大学生男子篮球锦标赛的开赛前的预测。目前四强已经尘埃落定,虽然Adit放出了机器学习的大招,但是也预测错了(so sad,奖金泡汤)。正如Adit所说,建模是含有偏见的,而我们能做的是在建模的过程中尽量剔除个人因素,选择能够代表全量的数据集。看看Adit的思路,能给我们以后的预测带来哪些启发呢?

 
 
 
 
 

 

 

3月13日,NCAA“疯狂三月”的68强球队名单正式出炉,这也意味着每年NCAA备受瞩目的“疯狂三月”正式拉开序幕。

 

“疯狂三月”指美国一年一度的大学生男子篮球锦标赛。比赛由68个大学队组成,采取单场淘汰制。为了赢得总冠军,一支球队必须赢得6连胜。

 

比赛分为4个区域。每个地区有17支队伍,排名从1到17。这个排名由NCAA委员会根据每个球队的常规赛季表现决定。由17号种子和16号种子先比赛,胜者和一号种子队伍比,2号种子和15号种子比,以此类推。

 

 

赛程安排结束后各个球队开始积极紧凑的备战,而球迷就会开始玩Bracket,也就是全国锦标赛的对战表,球迷可以预测每一轮,每一场,某一支比赛的胜负,填写bracket已经成为了球迷不成文的习惯和传统。从数学上讲,可以有

263种结果。

 

2014年股王巴菲特出资10亿美元奖励bracket完全预测正确的球迷,只可惜,近千万份预测在经过首轮的角逐后有70%都没办法全对,最终准确率最高的也熬不过第三轮。

 

作为体育迷,预测比赛的结果是我们的天性。三月疯狂的魅力来自这样一个大型的淘汰赛的不可预测性。

 

预测问题

 

在运用机器学习之前,让我们来想想体育项目的预测,似乎不是很复杂。例如以下这种情况。

 

你作为一个预测者,什么样的因素会影响你对比赛结果的判断?

 

A说:Pats在NFL的统计里有最好的防守,带球进攻码数第四,失误差第三,他们能赢。

 

B说:100个NFL的ESPN分析师中有72个选择Pats赢,所以我也选他们。

 

C说: 因为Pats有Tom Brady,而我喜欢他。

 

D说: 我的前女友喜欢底特律猎鹰队,所以我选Pats。

 

 

看看这些回答,你会发现每个人基于自己特殊的感情会在选择中把不同的特征安排不同的权重。A依赖于常规赛季的统计数据。B考虑到NFL分析师的意见。C表现出个人对Tom Brady的偏爱,导致他/她选择Pats。D可能从来没有看过比赛之前,选择PATS因为一个特定的人。

 

我们都有不同的预测方法,在做决定时会考虑不同的因素,所以我们对体育比赛的预测也有不同的方法。这些不同让我们在比赛前会有激烈的争执、可能让我们沉浸在自己幻想的成功中,或者让我们重新思考我们的预测过程。

 

但我们所有观点中的一个共同点就是我们有偏见。我们每个人都有不同的偏见,因为对于“什么是好的预测”这个问题没有明确的答案。我们应该看统计数据吗?应该注意无形资产吗?我们应该忘记所有这些,仅仅根据个人的感受做出预测吗?没有一个简单的解决方案。

 

所以,我们需要机器学习。

 

机器学习能帮助预测吗?

 

看看我们是否可以建立一个ML模型,能够看训练数据(过去的NCAA篮球比赛),找到一个团队的成功和他们的属性(统计)之间的关系,对未来的比赛输赢做出预测。

 

首先,我们有大量数据。在过去25年的时间里,有超过100000场NCAA常规赛,我们通常都有很多关于每个赛季球队的统计数据。因为有所有这些数据,我们可以尝试使用机器学习来找出赢得比赛的团队在统计上的特征。如果球队得分少于60分,他们能赢得比赛吗?如果一个球队丢球超过15次,他们会输给一个护球很好的球队吗?这些类型的问题,我们希望数据分析和机器学习可以解答。
 

(所有的分析数据的代码可以在这找到

https://github.com/adeshpande3/March-Madness-2017/blob/master/March%20Madness%202017.ipynb

 

基础模型

 

我们的ML模型使用了两个团队信息(团队1,团队2)作为输入,然后输出1队赢得比赛的概率。

 

 

ML算法通常由奇异矩阵或向量的形式输入。我们需要想办法把两个团队的信息在单个向量中封装。以2016 Kansas Jayhawks为例。

 

 

他们在赛季中表现很好,赢得了第十二次冠军,在联赛中是1号种子。我们考虑如何用一个特征来反映他们的赛季。在ML术语中,我们想要采用哪些特征?

 

让我们从常见的统计开始。

 

常规赛胜数:29

平均每场得分:80

30平均每场得分:67.61

平均每场3的比赛:9.21

每场平均失误数:14.39

每场平均助攻数:18.30

每场平均篮板数:43.73

平均每场抢断:7.66

 

然后,我们可以考虑其他因素

 

“Power 6”(NCAA的联赛)表现(Big 12, Big 10, SEC, ACC, Pac-12, Big East):1 Binary Label

常规赛季总冠军:1 - Binary Label

国际赛冠军:1 - Binary Label

 

我们再看看更多的度量。

 

简单评分系统(进度表和平均点差函数):23.87

赛程强度:11.22

 

一些历史因素。

 

1985以来比赛出场次数:31

1985以来全国锦标赛数:2

 

最后,我们用一个三元标签描述位置。

 

位置(-1代表球队1是客场,中立场为0,1代表球队1是主场):为了反映 2016 Kansas Jayhawks,我们可以将所有因素集成到一个16维的向量。

 

 

现在让我们再看看2016赛季的另一个队伍the Oklahoma Sooners。

 

 

The Sooners,由NBA第一轮选中的Buddy Hield带领,这个赛季获得25场常规赛的胜利,成为2号种子。我们可以看看他们的向量。

 

 

在NLP中使用深度学习方法team vectors和word vectors相似。在通过RNN或LSTM输入之前,我们首先必须将我们的句子或短语转换成可用的表示。

 

由于ML模型通常采取单一的输入,我们可以把每场比赛设为两组向量之间的差异(Team 1向量,Team 2 向量)。虽然有些人可能会选择连接两个向量,但是取而代之的是有助于强调团队彼此不相似的方式,这有助于确定对匹配结果有影响的统计数据类型。

 

 

我们的模型将采取这个差异向量,并输出团队1赢得比赛的概率。

 

我们训练这种模式的方式是看过去的常规赛的结果,并通过观察两个竞争球队的团队向量。让我们看一个实际的训练例子。

 

Oklahoma和Kansas在2016赛季遇到了两次。第一次在Kansas的Allen Fieldhous,成为了大学生篮球赛所有赛季中最伟大的比赛之一。

 

 

1号种子VS 2号种子,三次加时,是的,那场比赛很激烈。这将是我们训练数据中的许多比赛之一。这场特殊的比赛会是什么样子?

 

 

有意义吗?每个训练例子的X特征是两个队伍向量在那个赛季的差异。训练的Y特征是[ 1 ]或[ 0 ],代表球队1赢或球队2赢。

 

Sports-Reference和Kaggle dataset的常规赛和锦标赛的数据从1993季开始的,从1993到2016,有超过115000场比赛。对于x训练的维度是115113 x 16,y训练的维度是115113 x 1。

 

ML算法的应用

 

有训练集后,我们必须选择一个ML算法。从简单的logistic回归到随机森林到复杂集成,有各种各样的模型可以适合我们的任务。当你第一次启动一个数据集和一个预测任务,总是尝试一个非常简单的模型(如线性/ logistic回归或决策树或KNN),然后再尝试更复杂的神经网络和集成方法。将训练数据分成训练集后,我们训练模型(使用scikit学习功能)并评估测试集。

 

下面,你可以看到一系列我们的模型的表现。为了确保模型不只是幸运与简单的游戏进行分类,我们在随机划分训练集和测试集评估100次模型,并取平均值。

 

 

Gradient Boosted Trees

 

该模型在测试集上获得了最好的性能。该模型基本上是一种集成的网络,当你用multiple shallow regression或classification trees,当前树的建立是基于前面所有树的建立的。Gradient Boosted Trees对于异构数据(不同尺度上的数据)非常好,可以检测非线性特征的相互作用,这在我们的任务中是非常有用的。这种模式的一个有趣的属性是,我们可以分析每个功能的重要性的整体分类。通过查看每个特征在回归树上的位置,我们可以检查哪些特征在预测中的贡献最大。

 

 

因此正如你所看到的,常规赛季的胜利同球队是否赢得比赛有很大的关系。直观地说,它不需要一个先进的ML模型或一个专家分析,球队有更多的胜利当然更有可能获胜。

 

然而,有趣的是,看看列表中的后续特性。以下两个特点是SOS(赛程强度)和位置。SOS也会产生直觉的感觉。即使一个团队没有大量的获胜,但他们本身很厉害,只是运气不好碰到了发挥更好的对手,这很有可能的。 比赛场地也是一个众所周知的影响因素,这是“主场优势”。

 

下一步

 

76.37%的准确率很高了,但我们能达到80%或85%吗?这是作为一个ML从业者的一个棘手的部分,没有一套明确的指导方针来改善你的模型。对于决策树,可以尝试增加树的深度。对于神经网络,你也可以尝试新的架构或经典的“只需添加另一层”的心态。有无穷多个参数你可以试试。

 

我将更多地关注数据的表示和模型本身。这里有一些调整,可能会产生更好的结果。

 

  • 除了依靠共同的统计特征(PPG,APG,等等),可以尝试量化专家的意见,球迷投票,或投注线。
  • 使用SVD或PCA降维和模型学习的简单功能从数据集预测。
  • 考虑比赛结果的历史信息(12号种子种在第一轮季后赛战胜5号种子)。
  • 用不同的方式把两个队的因素整合到一起(如concantenating,平均,等)。
  • 使用RNN模型,关注时间序列数据。而不是把一个赛季作为一个单一的向量,可以尝试建模作为一个时间序列的团队的进展。因此,我们将能够找出哪些球队做得特别好。

 

关于ML模型中偏差的讨论

 

我现在想花一点时间来解决一个我认为对所有机器学习者来说非常重要的问题,这是训练集偏见。就像我在文章开头提到的,当我们谈到预测时,我们都是有偏见的。

 

在体育比赛中,我们对队伍都有自己的偏爱,有时候和统计的结果会有冲突。使用机器学习使我们能够利用大量的数据与预测任务。然而仍然会有偏见的问题影响我们。

 

偏见影响ML模型的方式是通过我们使用的训练集。作为ML从业者,我们有意识地决定用哪些训练数据使用。对于这个特殊的模型,我决定使用1993年以后所有的常规赛季和比赛的比赛数据。我可以决定只包括最近几年的数据,或者可以在1993之前查找有关的数据集。

 

在选择特征时也是同样的。我可以添加一些如罚球命中率或主场获胜次数等,但我没有。我创建的特征是因为我认为,这些是与一个队伍的胜利最相关的统计数据。

 

这种对数据集和特征选择的控制意味着我们对模型输出的责任比我们想象的要多。

 

虽然体育预测只是一个有趣的任务,有许多领域(医疗保健,法律,保险等)的机器学习模型的结果是非常重要的。我们需要时间来确保我们使用的训练数据是代表整个人口,不歧视某些人,该模型非常适合训练集和测试集的大多数例子。

 

ML模型对2017比赛预测

 

对于今年的比赛的预测,我使用Gradient Boosted Classifier model跑了每一轮比赛,并找到较高的概率提前到下一轮的团队。然后我重复了所有后续回合的过程,结果如下:

 

 

写在最后

 

四强大战将在4月2号打响,分别是冈萨加对决“黑马”南卡罗莱纳,北卡遭遇俄勒冈。祝愿明年Adit能改进模型取得胜利!

原文发布时间为:2017-04-01

时间: 2024-11-08 19:07:46

学霸使出机器学习大招,真能赢得10亿美金吗?的相关文章

周鸿祎说出10亿美金的教训

2009年5月的一天,晚7点30分,北京惠通时代广场D区1号楼,奇虎总部,一楼餐厅内,加班员工照例排起长队. 二楼会议室,周鸿祎照例在与手下开会,声音嘶哑. 尽管被胡润以10亿身价排上富豪榜,开宝马7系,住独栋House,但周鸿祎过得并不像个富豪,依然脾气火暴.快意恩仇. 有次在三亚,互联网社区大会期间,刚出任奇虎董事长的周鸿祎,被几位相熟的记者拉着问,"你这么成功了,干嘛不在海边晒晒太阳,还要这么折腾?" "成功?"周鸿祎不觉得. 迄今为止,周鸿祎承认,自己轰轰烈

10亿美金投资美国制造业后,苹果又要拿出10个亿扩建数据中心

苹果宣布,将斥资10亿美元扩建位于内华达州雷诺的数据中心.这项工程将提供300个临时建筑工作岗位,工程结束后,数据中心还将新增100个工作岗位. 苹果公司于2014年首次提出了扩建雷诺数据中心的计划,当时苹果向政府提出申请,要在原有10亿美元的规模上进行扩建. 苹果发言人约翰·罗森斯托克(John Rosenstock)周三表示:"我们很高兴能通过额外投资10亿美元扩建我们的数据中心和配套设施,来增加对当地经济的贡献.作为公司发展的一部分,我们计划雇佣100名员工.此外,预计建设工程将再增加30

分羹新能源中小板公司使出“抢逼围”三大招数

新能源"盛宴"吸引众多中小板上市公司.基于自身的经营环境,"抢逼围"成了中小板上市公司分羹新能源的三大招数. 天马股份昨天刊登公告说,决定以定向增发形式募集4.48亿元,投入成都天马铁路轴承有限公司年产1万套精密风力发电机轴承项目,以形成年新增1万套精密风力发电机轴承的生产能力.天马股份董事会表示,这个项目的实施,可以改变目前国内风力发电机轴承生产能力不足.主要依赖进口的局面,同时将优化公司的产品结构,成为企业经济增长亮点,增强企业的市场竞争力. 风电产业的整个产业

国米铁卫使出断子绝孙腿恶意伤人恐遭处罚(图)

卢西奥是国际米兰本赛季最成功的引援之一,作为一名中后卫他的身体素质出色,柔韧性和爆 发力都不错,因此常能在危险时刻使出一些非常规动作进行解围.刚刚结束的国米和切沃的比赛中,卢西奥同样使出了一招"蝎子摆尾",但是目标却是对手的裆部. 上半场比赛进行到第27分钟,双方队员在中圈弧附近争抢高球,卢西奥紧跟着他盯防的切沃前锋佩利西耶,双方同时起跳,随后裁判吹哨示意有人在争顶时犯规,场上队员都停了下来.这时候,切沃前锋佩利西耶突然倒地,手捂着裆部痛苦不堪,随后被抬出场治疗,但没有人因此受到处罚.

为了能在双11中获利,各个店家也使出浑身解数

"双11"大战尘埃落定.为了能在"双11"中获利,各个店家也使出浑身解数,几乎所有的营销渠道都被利用到.而"双11"也成了检验店家的试金石,营销是否管用,业绩即可证明.正如马云所说:数字不是我觉得我们今天所关心的.我觉得我最关心的,或者是我们今天最关心的是数字背后的东西,通过数字我们怎么样去真正的理解市场的力量. 双11排行榜的Top10中,不是知名的淘品牌,就是线下的知名品牌,而且随着这些品牌卖家的继续扩张,市场的份额还将被挤占,很多草根的卖家

java-请问,keyup时间怎样使文本框输入的值是10或者10的倍数?

问题描述 请问,keyup时间怎样使文本框输入的值是10或者10的倍数? 如题keyup时间怎样使文本框输入的值是10或者10的倍数? 解决方案 用keyup对用户体验不太好,建议用 blur 以下是例子 $(function(){ $("#demo").blur(function(){ var value = $(this).val(); if(value == null || value == ''){ value = 10; } var num = parseInt(value)

弗兰克评出的微软-雅虎收购案中10大“经典谎言”

美国投资网站Portfolio.com分析师杰克·弗兰克(Jack Flack)今天撰文指出,本周五(8月1日)举行的雅虎股东年度大会,或许将成为美国有史以来最受到外界密切关注的企业管理大会.只是此前雅虎董事会已同激进投资者卡尔·伊坎(Carl Icahn)达成和解,从而避免了伊坎可能发起的代理权争夺战.尽管如此,如果回顾一下微软.雅虎在前半年中的并购与反并购拉锯战,就会发现卷入此事的各方在发表看法时通常都"言不由衷". 今年2月1日,微软向雅虎提出了收购请求,希望以446亿美元收购后

河狸家:风投给出了10亿元人民币的估值

摘要: 现在我算是中国最大的美甲店老板了.21日下午,孟醒说. 最近,孟醒创办的河狸家,被风投给出了10亿元人民币的估值.这款主打美甲o2o的应用,上线时间还不足8个月. 河狸家的商业 "现在我算是中国最大的美甲店老板了."21日下午,孟醒说. 最近,孟醒创办的河狸家,被风投给出了10亿元人民币的估值.这款主打美甲o2o的应用,上线时间还不足8个月. 河狸家的商业模式极其简单:为美甲师提供平台,然后美甲师为顾客提供上门美甲服务.目前,河狸家已吸引近千位美甲师进驻,日接单量近2000.

英国使用大数据政府每年可节省330亿英镑

智囊团Policy http://www.aliyun.com/zixun/aggregation/14454.html">Exchange称,英国政府通过高效使用公共大数据每年可节省330亿英镑.这个数字相当于英国每人每年节省500英镑. Policy Exchange认为,应该在白厅搭建专业级别的"Data Force",这样就可以开始评测具体所节省资金的金额.这样也可以有效防止诸如逃税漏税.福利欺诈等行为. Policy Exchange提交了一份名为"