freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

利用机器学习预测2018世界杯夺冠走势,你也可以走一波!
2018-06-13 16:43:49

2018年风靡全球的世界杯即将拉开序幕,全世界球迷都想知道谁将问鼎冠军。

如果你不仅是个球迷,还是个技术宅,我打赌你一定听说过机器学习和AI这些时髦词汇,让我们把足球和它们融合,来大胆预测谁是本届世界杯的夺冠热门球队并问鼎世界杯。

免责声明:该预测不可用于任何赌博投机,如果你仍然要做,我不拦着你。(赢了别忘了告诉我^_^)

数据

我们使用从kaggle上获取的数据,包含了1930年以来的历史比赛记录。

使用环境和工具:jupyter notebook,numpy,pandas,seaborn,matplotlib,scikit-learn

让我们开始吧!

首先,引入必要的python库,并且把数据读入数据结构。

引入库

图片2.png

读入数据

图片3.png

数据看起来是这个样子的

图片4.png

试探性分析

尝试发现数据中的那些数值段在机器学习的建模中,会对结果产生影响。

现在给数据添加输赢和比分差

图片5.png

看看操作结果

图片6.png

然后我们做一个数据子集,仅包含尼日利亚的比赛,先注目在一个球队上发现特征,然后推广到所有参赛球队。

图片7.png第一次世界杯举办于1930年,所以提取1930年以后的比赛数据。

图片8.png现在我们可以从视觉上观察尼日利亚这些年的比赛形势

图片9.png获取每个国家队的胜率形成一个尺度,可以最终进行我们的预测。

当然,比赛发生在哪个场馆,并没有对结构有重大影响。

缩小数据集,仅保留参赛队

图片10.png然后过滤结果数据集,只保留1930年以后世界杯参赛队伍,去重。

图片11.png建一个year的list,保存1930年以后的比赛数据:比分、城市、国家、分差、时间

图片12.png

图片13.png改变“Y”来简化模型的处理过程,胜利队伍如果是主队,就为“2”,如果平,就为“1”,如果是客队,就为“0”图片14.png图片15.png

使用pandas的get_dummies函数,来把数据内的分类替换为0或1,使数据能被scikit-learn读入到它的数据模型

然后把数据分开x和y集合,并且切分为70%的训练集和30%的测试集。

图片16.png

我们使用逻辑回归---一种分类算法,神马是逻辑回归,自行百度

图片17.png

我们的模型获得了57%的准确率在训练集上,55%在测试集上,这看来表现不太好,但是我们继续。

这里我们获取2018的fifa排名数据,在此数据上应用我们的训练模型。

比赛预测

好紧张…

应用模型到数据集

图片18.png

这里是小组赛结果

16强淘汰赛如下:

图片19.png图片20.png图片21.png

在往年的数据基础上根据模型数据集分析:西班牙VS俄罗斯,西班牙胜;阿根廷VS秘鲁,阿根廷胜;德国VS瑞士,德国胜;比利时VS波兰,比利时胜;葡萄牙和乌拉圭,葡萄牙胜;法国VS克罗地亚,法国胜;巴西VS墨西哥,巴西胜;英国VS哥伦比亚,英国胜。

不管你信不信,反正我是信了

模型可以继续改进

接下来你也可以预测四分之一决赛是否在葡萄牙、西班牙、德国及阿根廷之间开展,谁又将成为夺冠主力呢?

特别说明:以上数据分析,纯属个人学习用,预测结果与实际情况可能偏差很大,不能用于其他用途。

翻译:杨某人

原文地址:https://blog.goodaudience.com/predicting-fifa-world-cup-2018-using-machine-learning-dc07ad8dd576

了解更多网络安全技能与喜闻乐见的“福利帖”,欢迎关注微信公众号“开源聚合网络空间安全研究院”,与你一起晋升技术达人。

qrcode_for_gh_489aa9dc41ac_258.jpg

# 机器学习 # 世界杯 # 预测趋势
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者