【Mo 人工智能技术博客】用算法预测足球比赛结果!

adminadmin 02-07 10 阅读 0 评论

  【Mo 人工智能技术博客】用算法预测足球比赛结果!【Mo 人工智能技术博客】用算法预测足球比赛结果!

  足球是世界上火爆的运动,今天我们将使用英超比赛的历史结果统计信息来预测未来英超比赛的结果。英超一年一个赛季,每年20个球队参赛,共计380场比赛。

  我们下载英超在2005年-2018年的比赛数据。用 pandas 把历年的 csv 数据都导入进来。

  我们看看05-06年的前五条。

  【Mo 人工智能技术博客】用算法预测足球比赛结果!【Mo 人工智能技术博客】用算法预测足球比赛结果!

  我们看到包括数据包括 Date(比赛的时间),Hometeam(主场队伍名),Awayteam(客场队伍名),FTHG(主场球队全场进球数),HTHG(主场球队半场进球数),FTR(全场比赛结果)等等大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!。更多数据的介绍可以参考这里。大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!

  我们挑选 Hometeam,Awayteam,FTHG,FTAG,FTR 这五列数据,作为我们的原始的特征数据,后面基于这些原始特征,我们再构造一些新的特征。

  因为这个比赛是一年一个赛季,是有先后顺序的,那我们就可以统计到截止到本场比赛之前,整个赛季内,主客场队伍的净胜球的数量。

  例如,我们看376行, 截止到这一场比赛之前,本赛季,主场曼联队的净胜球数是34, 客场查尔顿队的净胜球数是-10。

  

  我们还可以统计整个赛季主客场队伍截止到当前比赛周的累计得分。一场比赛胜利积3分, 平局积1分,输了积0分。我们根据本赛季本周之前的比赛结果来统计这个值大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!。

  我们处理得到HTP(本赛季主场球队截止到本周的累计得分), ATP (本赛季客场球队截止到本周的累计得分)。

  我们再看376行,截止到这一场比赛,本赛季,曼联队一共积了80分, 查尔顿队积了47分。

  【Mo 人工智能技术博客】用算法预测足球比赛结果!【Mo 人工智能技术博客】用算法预测足球比赛结果!

  前面我们构造的特征反映了一只队伍本赛季的历史总表现,我们看看队伍在最近三场比赛的表现。我们用 HM1 代表主场球队上一次比赛的输赢,AM1 代表客场球队上一次比赛是输赢。同理,HM2 AM2 就是上上次比赛的输赢, HM3 AM3 就是上上上次比赛的输赢。

  【Mo 人工智能技术博客】用算法预测足球比赛结果!【Mo 人工智能技术博客】用算法预测足球比赛结果!

  然后我们把比赛周的信息也放在里面,也就是这一场比赛发生在第几个比赛周。

  接下来,我们把这几年的比赛的信息都合并到一个表里面。然后我们把我们刚才计算得到的这些得分数据,净胜球数据除以周数,就得到了周平均后的值。

  【Mo 人工智能技术博客】用算法预测足球比赛结果!【Mo 人工智能技术博客】用算法预测足球比赛结果!

  前面我们根据初始的特征构造出了很多的特征。这其中有一部分是中间的特征,我们把这些中间特征抛弃掉抛弃掉。因为前三周的比赛,每个队的历史胜负信息不足,我们弃掉前三周的数据。

  我们的标签是FTR(全场比赛结果),我们看一下是主场胜利的多呢?还是客场胜利的多?

  通过统计结果看到,主场获胜的比例接近50%,所以对于这个三分类的问题,标签比例是不均衡的。

  我们把它简化为2分类问题,也就是主场球队会不会胜利,这也是一种解决标签比例不均衡的问题的方法。

  接下来我们来切分数据,使用 sklearn 来进行数据切分真的超级简单,一行就搞定了。而且它会自动的进行一个 shuffle, 也就是混洗数据。 这里有一个设置,stratify就是让切分出来的 test set 能保持 y 的比例。

  下面我们分别使用线性回归,支持向量机和 xgboost这三种不同的模型,来看看他们的表现。

  我们先定义一些辅助函数,记录模型的训练时长和评估时长,计算模型的准确率和 f1 分数。

  然后分别初始化,训练和评估这三个模型。

  从 f1 分数 和 准确率来看 xgboost 效果最好。 那我们选择它来作为我们最终的分类器。

  然后我们可以把模型保存下来,以后用来做预测。

  然后我们尝试来进行一个预测。

  我们看到育德结果是主场队伍会赢。

  接下来我们就可以把模型部署起来,让其他的人也可以用啦。 http://momodel.cn 提供了很方便的模型部署功能。

  我们把模型用代码包装起来,处理模型的输入输出,然后存为一个 handler.py 文件,

  然后在 app_spech.yml 中定义用户需要的输入,以及handler.py的输出。

  具体的部署过程可以参考帮助文档。

  今天我们一起制作了一个预测英超足球比赛结果的应用,大家可以在项目源码地址 fork 这个项目,试一试使用其他比赛的数据,比如中超,来做出自己的应用哦。

  当然,大家可以看到,做预测需要用户去计算一场比赛主客场队伍的相关信息,然后一个个输入,实在是太麻烦了,直接让用户选择比赛的队伍,然后程序去计算这些历史比赛信息不就可以了吗?我们下节课就讲讲怎么样自动的从网络上获取并处理历史比赛的结果,让用户只输入比赛双方的队名,就能使用这个应用,敬请期待哦。

  我们处理得到 HTGS (本赛季主场球队截止到当前比赛周的进球总数),ATGS (本赛季客场球队截止到当前比赛周的进球总数),HTGC (本赛季主场球队截止到当前比赛周的丢球总数),ATGC (本赛季客场球队截止到当前比赛周的丢球总数)。

  ——————————————————————————————————————————

  Mo (网址:http://momodel.cn)是一个支持 Python 的人工智能建模平台,能帮助你快速开发训练并部署 AI 应用。

【Mo 人工智能技术博客】用算法预测足球比赛结果!

【Mo 人工智能技术博客】用算法预测足球比赛结果!

The End 微信扫一扫

文章声明:以上内容(如有图片或视频在内)除非注明,否则均为欧洲直播在线观看免费_足球无插件免费观看_专业的直播足球网站原创文章,转载或复制请以超链接形式并注明出处。

本文作者:admin本文链接:https://yuandanbs.com/post/224.html

上一篇 下一篇

相关阅读

发表评论

访客 访客
快捷回复: 表情:
评论列表 (暂无评论,10人围观)

还没有评论,来说两句吧...

取消
微信二维码
微信二维码
支付宝二维码