名嘴预测世界杯冠军(比章鱼哥、名嘴毒奶更靠谱,我有特殊的方法预测世界杯冠军!)

四年一度的世界杯进行到7月2日,8强名额仅剩4席!

如果你和我一样是一名伪球迷,请先了解以下注意事项:

  • 本届世界杯是在俄罗斯举办
  • 一共32只球队分8个小组,每组前2名进入淘汰赛
  • 比赛持续一个月
  • 共64场比赛在俄罗斯多个城市举行
  • 没有中国队,因为没出线
  • 没有意大利队、荷兰队,因为也没出线
  • 是国家队间比赛,因此没有巴萨、皇马、曼联、拜仁……
  • 比赛常规时间,上下半场各45分钟
  • 淘汰赛阶段常规时间打平,进入30分钟加时赛,再打平才是点球大战
  • 梅西是阿根廷的,C罗是葡萄牙的,内马尔是巴西的,他们都不是西班牙的
  • 大罗、小罗、卡卡、贝克汉姆都不参加
  • 世界杯是足球比赛,没有哈登、库里、杜兰特、姚明~
  • 名嘴预测世界杯冠军(比章鱼哥、名嘴毒奶更靠谱,我有特殊的方法预测世界杯冠军!)

    每到世界杯,一项保留节目就是预测当年冠军,各路大神啦、名嘴啦、章鱼啦、猫猫狗狗啦都少不了。这次我也来预测一把。但我不懂球啊怎么办?没关系,我可以用程序!(反正都是蒙呗)日本章鱼哥:生前准确率100%已经挂彩,为世界杯最惨预言帝默哀三秒

    名嘴预测世界杯冠军(比章鱼哥、名嘴毒奶更靠谱,我有特殊的方法预测世界杯冠军!)

    日本章鱼哥“拉比奥”

    数据来源

    这份数据来自 Kaggle,是从1872年到2018年共38929场比赛的结果。我们这次就用这份数据作为预测的基础。

    名嘴预测世界杯冠军(比章鱼哥、名嘴毒奶更靠谱,我有特殊的方法预测世界杯冠军!)

    名嘴预测世界杯冠军(比章鱼哥、名嘴毒奶更靠谱,我有特殊的方法预测世界杯冠军!)

    另外介绍下 Kaggle,它一个数据科学竞赛平台,强烈建议研究数据分析、机器学习这方面的同学多上去玩耍。

    建立模型

    有了这么多历史比赛数据,要怎么来预测呢?我建立了如下几条规则:

  • 太久远的数据对于当下球队的参考价值有限,所以设定一个起始年限
  • 查找对阵双方从起始年限至今的对战数据,并计算
  • 胜利概率=(胜利场次 平局场次/2)/总场次
  • 小组赛阶段,胜利概率超过一定阈值(比如0.7)的球队赢,否则为平局
  • 淘汰赛阶段,胜利概率大的球队赢
  • 如果两队从起始年限至今没有进行过比赛,就往前再多选取N年的数据(一般出现在参加大赛较少的球队)
  • 如果仍然没有交手过,则以各自对阵本届杯赛其余所有球队的战绩为基础,分别计算胜利概率。概率高的球队胜。但如果是小组赛,概率差必须高过一定阈值(比如0.1),否则为平局
  • 赛程模拟

    基于以上的规则模型,我们导入数据,通过 Python 程序模拟本届世界杯32支球队的64场比赛。

    名嘴预测世界杯冠军(比章鱼哥、名嘴毒奶更靠谱,我有特殊的方法预测世界杯冠军!)

    这样就“预测”了比赛的结果。

    预测结果

    所以,究竟这份代码 run 出怎样的结果?

    因为不同的起始年限和平局阈值会得到不一样的结果。我尝试使用 2006~2016 11个不同年限,和4组N的取值,得到共44组比赛结果。最终夺冠的次数是:

    巴西 23 次

    西班牙 12 次

    德国 6 次

    英格兰 3 次

    看来,巴西队还是毋庸置疑的夺冠热门。难怪各大菠菜网站都给他们开出最低的赔率。

    名嘴预测世界杯冠军(比章鱼哥、名嘴毒奶更靠谱,我有特殊的方法预测世界杯冠军!)

    梅西:我1打3

    C罗:我1打11

    内马尔:11个打我!

    如果对编程感兴趣,想了解更多的编程知识,关注头条号一起玩转编程