四年一度的世界杯本周就要开赛啦!若是你和我同样是一名伪球迷,请先了解如下注意事项:算法
每到世界杯,一项保留节目就是预测当年冠军,各路大神啦、名嘴啦、章鱼啦、猫猫狗狗啦都少不了。此次我也来预测一把。但我不懂球啊怎么办?不要紧,我能够用程序!(反正都是蒙呗)编程
数据来源机器学习
这份数据来自 Kaggle,是从1872年到2018年共38929场比赛的结果。咱们此次就用这份数据做为预测的基础。工具
可从文末项目中获取。学习
另外介绍下 Kaggle,它一个数据科学竞赛平台,强烈建议研究数据分析、机器学习这方面的同窗多上去玩耍。区块链
创建模型网站
有了这么多历史比赛数据,要怎么来预测呢?我创建了以下几条规则:人工智能
赛程模拟3d
基于以上的规则模型,咱们导入数据,经过 Python 程序模拟本届世界杯32支球队的64场比赛。code
这样就“预测”了比赛的结果。
预测结果
因此,究竟这份代码 run 出怎样的结果?
由于不一样的起始年限和平局阈值会获得不同的结果。我尝试使用 2006~2016 11个不一样年限,和4组N的取值,获得共44组比赛结果。最终夺冠的次数是:
巴西 23 次
西班牙 12 次
德国 6 次
英格兰 3 次
看来,巴西队仍是毋庸置疑的夺冠热门。难怪各大菠菜网站都给他们开出最低的赔率。
可是抛开巴西队不谈,在个人结果中,英格兰队的表现异常得好。这主要源于他们近几年对战巴西的良好战绩:1胜2平0负。而相比之下,阿根廷恐怕又要“没戏”了。
另外,塞内加尔和伊朗值得关注下,他们这几年对战其余球队的战绩不错,或许会成为黑马:
2012年以来
塞内加尔 4胜3平1负
伊朗 5胜6平3负
历史战绩查询工具
固然,我这个模型是很粗糙的。不过原本嘛,足球是圆的,拿历史数据预测比赛结果也就是娱乐一下,给看球增长点乐趣。若是你有本身的规则想实现,也能够在我代码的基础上进行修改。代码和数据的获取方法见文末说明。
另外,我把部分数据导出,作了一个在线查询的小工具,方便你直接查询任意两支球队之间的对战历史。
能够选择不一样的年限。同时我还自创了一套“赔率”计算,以供参考。
主队综合胜率=总场数/(主队胜场+客队负场)
由于这个赔率模型基于的更可能是历史战绩,而强队的对手可能是强队,弱队的对手可能是弱队,致使赔率上的差别并无市面上的那么大,但总的来看也基本符合胜负关系。若是你发现有某场比赛计算出的结果和别人开出的结果差别很大,那或许这会是场会爆冷的比赛哦
预测结果仅供参考,若有雷同纯属巧合。
最后,我忽然想到,我们国足对这32支球队的战绩如何呢?若是在另外一个平行宇宙中有幸参赛,大概会是个什么结果?因而……
2014年以来:2胜, 5平, 8负
2002年以来:8胜, 19平, 35负
彷佛只有和从未交过手的巴拿马在战绩上能够一战。
好吧,当我没说。仍是让咱们安心享受世界杯的欢乐吧!
════
其余文章及回答:
如何自学Python | 新手引导 | 精选Python问答 | Python单词表 | 区块链 | 人工智能 | 双11 | 嘻哈 | 爬虫 | 排序算法 | 我用Python | 高考
欢迎搜索及关注:Crossin的编程教室