(西班牙)人工智能准不准,学习数据说的算!
这个数据是1872年以来所有国际足球比赛的数据。欧洲杯是1960年开始的,不需要1970年之前的数据。
我们使用的环境和工具是: 、 numpy 、 和 -learn 。
思路是:首先对两组数据集进行探索性分析,找出与预测相关的特征,对数据进行处理,然后使用机器学习模型进行训练欧洲杯分析预测,最后将模型配置到数据集上。
让我们开始我们的代码。
首先导入需要的库:
下载数据:
看一下导入的数据:
然后进行数据预处理; 对两组数据集进行分析后,利用得到的数据集来分析和预测未来事件; 并建立与机器学习模型相关的特征。
下面我们输出进球数的差异和结果:
作为一名西班牙球迷,我想重点关注一下西班牙比赛的统计结果:
第一届欧洲杯于 1960 年举行。创建一个年份列来过滤 1960 年之后的比赛:
这里的597是指西班牙总共有597场比赛。
我们使用每个国家的胜率和主队来预测比赛结果,因此可以删除比赛地点和时间等信息。
选择参加欧洲杯的球队:
筛选出自1960年以来参加过欧洲杯的球队,并删除重复的球队:
删除不会影响游戏结果的数据:
将结果数字化:
使用()函数对输入数据进行数字处理,转换为[0,1]数据,以便加载到模型中。
按照70%训练数据集和30%测试数据集将数据分为X集和Y集:
查看我们的数据:
接下来我们将使用逻辑回归的分类算法。 逻辑回归是这样一个过程:面对回归或分类问题,建立成本函数,然后通过优化方法迭代求解最优模型参数,然后进行测试来验证我们的解决方案。 对模型质量感兴趣的同学可以看一下我的课程,了解其背后的原理。
这里逻辑回归的应用就是将上述两组数据集和实际比赛结果输入到算法中,对模型进行比较和训练。 经过训练欧洲杯分析预测,可以获得可以预测比赛结果的模型。
现在将数据输入算法:
这个结果考虑了加时赛的结果(不包括最后的点球)。 一般来说,有三种结果:A队胜、平局、B队胜。 随机猜测的准确率为33%。
考虑到欧洲杯比赛场地通常不在参赛球队所在国,因此需要灵活的主客场调整方式;
根据FIFA排名,假设FIFA排名较高的球队拥有更多的球迷欧洲杯分析预测,并具有一定的主场优势:
终于到了预测比赛结果的时候了!
您可以看到前八名的预测结果:
至此,我们已经完成了前八名的预测。 当然,事实上,前八名的预测有5支球队是正确的。 为了对前4名进行更准确的预测,我们以实际晋级的前8名球队作为预测目标,再次进行了分析。 结果如下:
模型预测的前四名分别是:西班牙、比利时、丹麦和英格兰。 其中,比利时与意大利的比赛中,两队的获胜概率其实相差不大,也正是这场比赛,模型没有猜对。 但不管怎样,我对这个结果还是很满意的。 如果这一切都是正确的,我会感到有点惊讶。