足球是世界上最火爆的运动之一,世界杯期间也往往是球迷们最亢奋的时刻。比赛狂欢季除了炸出了熬夜看球的铁杆粉丝,也让足球竞猜也成了大家茶余饭后最热衷的话题。甚至连原来不怎么看足球的人,也是暗中努力恶补了很多足球相关知识,想通过赛事竞猜先赚一个小目标。今天我们将介绍如何用机器学习来预测足球比赛结果!
本 Chat 采用 Python 编程语言,使用 人工智能建模平台 Mo 作为在线开发环境进行编程,通过获取 2000 年到 2018 年共 19 年英超的比赛数据,然后基于监督学习中逻辑回归模型、支持向量机模型和 XGBoost 模型,对英超比赛结果进行预测。
下面我们一起来看看预测英超比赛结果的机器学习步骤:
主要流程步骤
获取数据和读取数据的信息
数据清洗和预处理
特征工程
建立机器学习模型并进行预测大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!
总结与展望
1. 获取数据和读取数据的信息
首先我们进入 Mo 工作台 ,创建一个空白项目,点击 开始开发 进入内嵌 JupyterLab 的 Notebook 开发环境。
接着我们需要在项目中上传 数据集 。
英超每年举办一个赛季,在每年的 8 月到第二年的 5 月进行,共有 20 支球队,实行主客场双循环赛制,每个赛季共 38 轮比赛(其中 19 场主场比赛,19 场客场比赛),每轮比赛共计 10 场比赛,所以每个赛季,英超共有 380 场比赛。
数据集地址 大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!
数据集中特征说明文档
如果您已经在 MO 平台新建项目,可以在平台直接导入数据集,流程如下:
1.1 读取 csv 数据接口解释
采用 Pandas 读取、写入数据 API 汇总网址
读取 csv 数据一般采用 pandas.read_csv():
pandas.read_csv(filepath_or_buffer, sep =',' , delimiter = None)
filepath_or_buffer:文件路径
sep:指定分隔符,默认是逗号
delimiter:定界符,备选分隔符(如果指定改参数,则sep失效)
usecols: 指定读取的列名,列表形式
下面开始我们的表演:
1.2 时间列表
获取每一年的数据后,将每一年的年份放入到 time_list 列表中:
['2000','2001','2002','2003','2004','2005','2006','2007','2008','2009','2010','2011','2012','2013','2014','2015','2016','2017','2018']
1.3 用 Pandas.read_csv() 接口读取数据
读取时将数据与 res_name 中的元素名一一对应。
1.4 删除特定文件的空值
经过查看第 15 个文件读取的第 381 行为空值,故采取删除行空值操作。
1.4.1 删除空值的接口
Pandas.dropna(axis=0,how='any')
axis: 0 表示是行;1表示是列
how:'all'表示只去掉所有值均缺失的行、列;any表示只去掉有缺失值的行、列
1.4.2 接口运用
DivDateHomeTeamAwayTeamFTHGFTAGFTRHTHGHTAGHTR...BbAv<2.5BbAHBbAHhBbMxAHHBbAvAHHBbMxAHABbAvAHAPSCHPSCDPSCA375E024/05/15HullMan United0.00.0D0.00.0D...1.9925.00.501.761.712.272.193.203.762.27376E024/05/15LeicesterQPR5.01.0H2.00.0H...2.4128.0-1.001.981.931.981.931.534.946.13377E024/05/15Man CitySouthampton2.00.0H1.00.0H...2.6628.0-1.002.001.942.031.931.604.356.00378E024/05/15NewcastleWest Ham2.00.0H0.00.0D...2.2525.0-0.501.821.782.202.101.764.014.98379E024/05/15StokeLiverpool6.01.0H5.00.0H...1.9925.00.252.072.021.881.853.563.602.17
5 rows × 68 columns
1.5 删除行数不是 380 的文件名
考虑到英超一般是 19 个球队,每个球队需要打 20 场球,故把行数不是 380 的数据删除掉,并找到器原 CSV 文件一一对应。
1.6 查看某一个数据集前n行数据
文件名.head(n)
n:默认是5,想获取多少行数据就填写数字值。
读取数据前五行操作:
DivDateHomeTeamAwayTeamFTHGFTAGFTRHTHGHTAGHTR...IWALBHLBDLBASBHSBDSBAWHHWHDWHA0E019/08/00CharltonMan City40H20H...2.72.203.252.752.203.252.882.103.23.101E019/08/00ChelseaWest Ham42H10H...4.21.503.406.001.503.606.001.443.66.502E019/08/00CoventryMiddlesbrough13A11D...2.72.253.202.752.303.202.752.303.22.623E019/08/00DerbySouthampton22D12A...3.52.203.252.752.053.203.202.003.23.204E019/08/00LeedsEverton20H20H...4.51.553.505.001.573.605.001.613.54.50
5 rows × 45 columns
读取数据前10行:
DivDateHomeTeamAwayTeamFTHGFTAGFTRHTHGHTAGHTR...IWALBHLBDLBASBHSBDSBAWHHWHDWHA0E019/08/00CharltonMan City40H20H...2.72.203.252.752.203.252.882.103.203.101E019/08/00ChelseaWest Ham42H10H...4.21.503.406.001.503.606.001.443.606.502E019/08/00CoventryMiddlesbrough13A11D...2.72.253.202.752.303.202.752.303.202.623E019/08/00DerbySouthampton22D12A...3.52.203.252.752.053.203.202.003.203.204E019/08/00LeedsEverton20H20H...4.51.553.505.001.573.605.001.613.504.505E019/08/00LeicesterAston Villa00D00D...2.52.353.202.602.253.252.752.403.252.506E019/08/00LiverpoolBradford10H00D...8.01.354.008.001.364.008.001.334.008.007E019/08/00SunderlandArsenal10H00D...2.14.303.201.703.303.102.053.753.001.908E019/08/00TottenhamIpswich31H21H...4.71.453.606.501.503.506.501.443.606.509E020/08/00Man UnitedNewcastle20H10H...5.01.403.757.001.403.757.501.403.757.00
10 rows × 45 columns大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!
读取最后 5 行操作:
评论留言