2024-25 赛季 NBA 常规赛 MVP 候选人预测,文班亚马或成黑马
2024-11-21
在很多人的印象中,大数据只是一个模糊的概念; 有人会说,大数据可以用来“预测股市”、“预测地震”、“预测消费者行为”。 但事实上,大数据与我们的关系可能比想象的更紧密。
从夜间观测天空到天气预报,从童话故事中的水晶球到如今的科技预言家,人类一直希望能够早点突破局限、预见未来,而人类的生活也正在被大数据预测深刻改变。 。
相信你一定知道世界杯“章鱼保罗”的传奇,但你可能不知道的是,它早已被大数据预测所取代:
世界杯期间nba比赛分为常规赛和,谷歌、百度、微软、高盛等公司都推出了比赛结果预测平台。 百度的预测结果最为抢眼,预测了64场比赛,准确率高达67%。 进入淘汰赛后,准确率高达94%。
从经验来看,只要我们有体育赛事的历史数据,并与指数公司合作,我们就可以对其他赛事进行预测,比如欧冠、NBA等赛事。
在这个项目中,我们将根据2015-2016 NBA常规赛和季后赛的比赛统计数据来预测正在进行的2016-2017常规赛中每场比赛的结果。
本教程发布于实验楼。 完整教程、代码及在线练习地址:NBA常规赛成绩预测-比赛数据分析的运用(更多课程请查看全部课程)
(当然,影响NBA比赛的因素有很多,转会、教练、球场、甚至保安都可能对比赛结果产生影响,所以本课程只提供方法,更多的信息挖掘和分析思路在留给你。展开。)
一、课程简介 1、内容简介
不知道你的朋友圈是否已经被某场NBA比赛的进展或结果淹没了? 或者也许你只是一名NBA狂热分子,比赛中的每一个进球、抢断或压哨绝杀都会让你热血沸腾。 除了观看精彩的比赛过程,我们也对比赛的结果感到好奇。 因此,本课程将向学生展示如何利用过去NBA比赛的统计数据来判断各支球队的战斗力,并预测某场比赛的结果。
2.课程知识点 3.实验过程:获取游戏统计数据。 分析比赛数据,获得代表每场比赛各队状态的特征表达。 使用机器学习方法来学习每场比赛与获胜球队之间的关系,并分析2016-2017年的比赛。 进行预测4.效果截图
2. 获取NBA比赛统计数据 2.1 比赛数据简介
在本实验中,我们将使用 中的统计数据。 在这个网站中,您可以看到不同球员、球队、赛季和联赛的基本统计数据,例如得分、犯规次数、胜负等。这里我们将使用2015-16赛季的NBA数据。
在2015-16年总结的所有表格中,我们将使用以下三个数据表:
我们将通过这三个表格来评估球队过去的战斗力。 另外,我们还需要2015-16 NBA以及2015~2016 NBA常规赛和季后赛每场比赛的比赛数据来评估Elo得分。 (稍后在实验部分解释)。 按照从常规赛到季后赛的时间。 列出2015年10月至2016年6月每场比赛的成绩。
上图中,可以看到2015年10月以来的一些比赛数据,每个表包含的数据为:
预测时,我们还需要2016-17赛季NBA和2016~2017赛季NBA常规赛赛程数据。
2.2 获取游戏数据
我们以获取Team Per Game Stats表数据为例,展示如何获取这三个统计数据。
进入,在导航栏中选择,选择2015~2016赛季:
进入2015~2016界面后,在滑动窗口中找到Team Per Game Stats表格,选择左上角的Share & more,在其下拉菜单中选择Get table as CSV (for Excel):
复制界面中生成的csv格式数据nba比赛分为常规赛和,复制粘贴到文本编辑器中保存为csv文件。
为了方便学生进行实验nba比赛分为常规赛和,我们将所有数据保存为csv文件并上传到实验楼的云环境中。 在后续的代码实现部分,我们会给出获取这些文件的地址。
3. 数据分析
获得数据后,我们将根据各队过去的比赛表现和Elo评分来确定各队的获胜概率。 在评估每支球队过去的比赛时,我们将使用Team Per Game Stats、Per Game Stats和Stats这三个表(以下简称T、O和M表)中的数据来代表某支球队在比赛中的表现。 球队的比赛特点。 我们最终能够预测每场比赛哪支球队最终会获胜,但这并不是给出绝对的胜负情况,而是预测获胜球队的获胜概率。 因此,我们将构建一个表示匹配的特征向量。 它由两队过去比赛的统计数据(T、O 和 M 表)以及两队各自的 Elo 评分组成。
关于Elo评分,不知道同学们有没有看过电影《社交网络》。 在这部电影中,马克(主角的原型是创始人扎克伯格)在电影一开始就开发了一个美女排名系统。 他利用朋友在窗口写下的排名公式,比较不同女孩的成绩,最后通过PK决出胜负。
这个比较公式就是 Elo Score 评级系统。 Elo 最初设计的目的是为国际象棋中的不同棋手提供更好的分类。 现在很多竞技体育或者游戏中,都会采用Elo评级系统来对选手或者玩家进行分级,比如足球、篮球、棒球比赛或者LOL、DOTA等游戏。
这里我们简单介绍一下基于国际象棋比赛的Elo排名系统。 上图中窗口上写的公式是基于计算PK双方(A和B)的预期胜率的计算公式。 假设A、B当前等级分为R_ARA和R_BRB,那么A对B的胜率期望值为:
B 对 A 的预期胜率为
如果玩家A在游戏中的实际得分S_ASA(赢1分,赢0.5分,输0分)与其预期胜率E_AA不同,则他的评分应根据以下公式计算调整:
在国际象棋中,K值会根据级别的不同进行相应的调整:
因此,我们用来表示某场比赛数据的特征向量为(加入A队和B队之间的比赛):[A队的Elo得分,A队的T、O和M表统计数据,B队的Elo得分,球队B的T、O、M表统计]
4. 基于数据的模型训练和预测 4.1 实验准备
在这个实验环境中,我们将使用numpy、scipy和库。 不过实验楼已经安装了numpy,所以在实验之前我们需要使用pip命令安装其他三个库。
$ sudo pip install pandas
$ sudo pip install scipy
$ sudo pip install sklearn
安装完所需的实验库后,进入实验环境的Code目录,创建文件夹,通过以下地址获取我们为您处理好的csv文件压缩包data.zip:
$ cd Code
$ mkdir cs_782 && cd cs_782
# 获取数据文件
$ wget http://labfile.oss.aliyuncs.com/courses/782/data.zip
# 解压data压缩包并且删除该压缩包
$ unzip data.zip
$ rm -r data.zip
数据文件夹包含2015年至2016年NBA数据的T、O和M表,以及处理后的常规赛和挑战赛数据2015~.csv。 这个数据文件是2015-16个月的比赛数据中提取出来的,包括三个字段:
4.2 效果展示
在Code\目录中,创建.py以开始实验。 所有代码均可在实验楼查看和下载。
最后运行.py:
生成预测结果文件16-.csv文件:
5. 总结
在这个项目中,我们使用一些统计数据来计算每支NBA球队的Elo socre,并利用这些基础统计数据来评估每支球队过去的比赛,并根据国际排名方法Elo Score来评估球队当前的表现。 对分数进行评分,最后结合这些不同球队的特点来决定哪支球队能够在一场比赛中占据优势。 但在我们的预测结果中,与以往不同的是,我们并没有给出绝对的正负,而是给出了获胜机会更大的球队能够赢得另一支球队的概率。 当然,我们这里用来评估一个团队表现的数据量太少了(只使用了2015年到2016年一年的数据)。 如果你想要更准确、更系统的判断,如果你有兴趣,当然可以从各种统计数据网站上获取更多年份、更全面的数据。 结合不同的回归和决策机器学习模型,构建更全面、预测精度更高的模型。 有相关的篮球预测比赛。 有兴趣的同学可以尝试一下。