基于2018年世界杯赛事法国队夺冠进球数据分析
本文章仅用于个人学习,如有错漏还请指出,谢谢~
1.摘要
大部分的足球俱乐部都在使用Wyscout的比赛分析以及球探平台来帮助球队招募队员,并分析对手以及自己的球队。”Wyscout美国以及英国的总监,同时还是SMWW课程的讲师Richard Trafford说道。“平台十分的强大,你能找到每一个球员打入的进球、定位球、一对一等多种情况。通过这种高效的方法你动动手指就能搜集到强大的信息。” 以前教练们通常会通过多年积累的经验以及直觉来做决定,但是现在有越来越多的教练看到了数据分析的价值,并且通过对于数据的使用来制定战术以及比赛中的球员布置。在2015年的Sloan体育数据分析大会上,25届德甲冠军拜仁慕尼黑俱乐部的首席分析师Michael Niemeyer讲述了当时的教练瓜迪奥拉是如何开始接受并使用数据分析的方法的。 足球数据分析对于一场足球赛事而言是相当至关重要的,从对手的跑位阵型、当家射手数据、防守方法、体系空缺、跑动距离等数据就可分析挖掘出各队间的强弱点并对进行专一补强或者利用弱点击败对手。这个数据超级庞大,信息链要求也很高,个人认为在数据当先的今天很有前景,欧洲早在几十年前就很成熟的体系了,各个俱乐部都在收集这些数据信息,毕竟数据化时代,很多东西不能说是绝对的,但是都能很大一部分反应出一些真实的东西,小到一个球员进球效率,细到某个球员穿左脚在哪个方位,哪个球场,什么天气,什么阵型进球多,表现好,这些东西的采集是很大的一个数据,需要细,需要专业分析,很多球探都是要根据数据来分析这些的。
2.引言
2.1 背景
足球数据超级庞大,信息链要求也很高,,欧洲早在几十年前就很成熟的体系了,各个俱乐部都在收集这些数据信息,毕竟数据化时代,很多东西不能说是绝对的,但是都能很大一部分反应出一些真实的东西,小到一个球员进球效率,细到某个球员穿左脚在哪个方位,哪个球场,什么天气,什么阵型进球多,表现好,这些东西的采集是很大的一个数据,需要细,需要专业分析,很多球探都是要根据数据来分析这些的,这是一个大行业,数据化的今天,足球数据分析作为一个可发展性极高的方向在未来应该更为火热。
2.2 意义
大数据和足球的关系,人们理解或者是接触最多的就是对比赛结果的预测。如高盛和德银等投行就通过将FIFA排名、过往战绩、近期表现、球员身价、赌球赔率、国家经济等一系列数据综合反映出的球队实力作为预测依据去考量比赛结果。其实,在足球赛场上大数据分析,已经被运用在了战术布置、球员训练等各个领域。
比较典型的应用便是德国军团的世界杯之旅。在科隆德国体育学院里,一个志愿者团队开始了工作,在2006年世界杯上的征途指引方向,目的就是能够将世界杯冠军的奖杯带回到他们的祖国。在那届赛事中,他们第一次大展身手是在四分之一决赛迎战阿根廷队的比赛。他们通过对这支南美球队的点球主罚者的精密分析,帮助门将扑出了罗伯托•阿亚拉和埃斯特班•坎比亚索主罚的点球。德国队最终在半决赛中不敌意大利队,但是这个大数据分析团队的影响力却与日俱增,而且已经有了自己的昵称“科隆团队”。在2010年,他们打造的“梅西计划”帮助德国队在八强战中又一次重创阿根廷队——数据表明,在梅西每一次拿球的时候,德国队都应该有两名后卫在他的身旁——一个在梅西前方一码的位置,另一个在梅西后方一码的位置。最终德国队4-0完胜阿根廷队,梅西几乎全场隐身。
“科隆团队”在2006年的时候还只是由16名学生组成一个团队,负责分析31支球队;而到了2012年欧洲杯的时候,这个团队已经拥有了45名成员,负责15支球队的分析。在四年前的欧洲杯开幕之前,德国队教练组得到了一份几百页的资料;而在欧洲杯进行的过程当中,他们还得到了一份40页的简报,和记录了对手们详细情况的视频光盘。这些文件已经变得越来越精密:后卫们的转身时间,边锋们常用的进球线路,一名后卫阻断对手进攻的最佳距离——这些现代数据使得数据分析上升到了一个全新的层次。
3.方法与过程
3.1 总流程框图
3.2 具体步骤
3.2.1 数据采集
-
<一>数据采集方法选择
根据本次数据分析实验的特殊性——既足球世界杯比赛场数较少(7场)问题同球员个人数据采集问题,选择使用的采集方法为人工的视频采集同web文本、图像采集。
所需工具有:八爪鱼采集器,个人编写的图像相似识别。
八爪鱼用于爬取2018年世界杯数据中心的球员数据以及场均个人数据。
图像识别用于将网上爬取下来的图片进行分类——相同重复率设置为90%,若超过该阀值便会归类为同一图像数据集内。 -
<二>数据采集实现
八爪鱼采集器:
采集http://data.2018.163.com/得到的有关于法国的数据如下:
图像识别:(代码如下,引用openCV库C/C++实现)
#include<opencv2/opencv.hpp>
#include<iostream>
#include<vector>
#include<fstream>
#include <io.h>
#include<string>using namespace cv;
using namespace std;const char path[100] = "D:\\image\\*.jpg"; //不同的路径可以自己改,支持通配符查找,注意同时修改 line85 的图像路径/* 在不同电脑上匹配时要修改3个地方eg:想读到的原图务必在该程序文件夹下存有图片!否则会报错(1)path的路径(2)line 87 的绝对路径(3)file[]等图像字符串的大小,这里测试程序D盘只有3个图像判断,故直接写了 <3> 在line 80及line28(4)line 119 的匹配值可以修改,我设置了-0.90到0.10的区间图像都为符合的图像,可以根据自己的图像所需进行修改*/
int main()
{/*********************将文件夹中的文件保存为file[]字符串**********************/string file[3];//*struct _finddata_t fileinfo;intptr_t handle;handle = _findfirst(path, &fileinfo);int i = 1;//第1位if (!handle){cout << "输入的路径有错误" << endl;return -1;}else{file[0] = fileinfo.name;//试着读出第一个图象存到第0位,如果可以读出就继续,不然就退出//cout << fileinfo.name << endl;while (_findnext(handle, &fileinfo) == 0){file[i] = fileinfo.name;//成功读出后接下去,解释了i为什么起始设置为1//cout << fileinfo.name << endl;i++;}}if (_findclose(handle) == 0) cout << "文件句柄成功关闭" << endl; //不要忘了关闭句柄,至关重要else cout << "文件句柄关闭失败..." << endl;cout << "文件夹下存有图片:" << endl;for (int i = 0;i < 3;i++) {cout << file[i] << endl;}/*******************************原图直方图化************************************/string image;cout << "原图:" << endl;cin >> image;Mat srcImage = imread(image);imshow("【原图】", srcImage);Mat srcHsvImage;cvtColor(srcImage, srcHsvImage, CV_BGR2HSV);MatND srcHist;//H、S 通道int channels[] = { 0, 1 };int histSize[] = { 30, 32 };float HRanges[] = { 0, 180 };float SRanges[] = { 0, 256 };const float *ranges[] = { HRanges, SRanges };//进行原图直方图的计算calcHist(&srcHsvImage, 1, channels, Mat(), srcHist, 2, histSize, ranges, true, false);//归一化normalize(srcHist, srcHist, 0, 1, NORM_MINMAX);/*****************文件夹图像直方图化********************/for (int n = 0;n < i;n++) {Mat compareImage[3];//*double g_dCompareRecult[3];//*直方图对比字符串MatND compHist[3];//*直方图计算字符串Mat compareHsvImage[3];//*直方图计算字符串string str1 = "D:\\image\\";//***********************修改路径一定要把这个修改了,因为我后面没文件绝对路径************************str1 += file[n];//************************表示为绝对路径compareImage[n] = imread(str1);//在比较直方图时,最佳操作是在 HSV 空间中操作,所以需要将 BGR 空间转换为 HSV空间cvtColor(compareImage[n], compareHsvImage[n], CV_BGR2HSV);//采用 H-S 直方图进行处理//首先得配置直方图的参数//H、S 通道int channels[] = { 0, 1 };int histSize[] = { 30, 32 };float HRanges[] = { 0, 180 };float SRanges[] = { 0, 256 };const float *ranges[] = { HRanges, SRanges };//对需要比较的图进行直方图的计算 calcHist(&compareHsvImage[n], 1, channels, Mat(), compHist[n], 2, histSize, ranges, true, false);//注意:这里需要对两个直方图进行归一化操作normalize(compHist[n], compHist[n], 0, 1, NORM_MINMAX);//对得到的直方图对比g_dCompareRecult[n] = compareHist(srcHist, compHist[n], 1);//cout << "方法一:两幅图像比较的结果为:" << g_dCompareRecult << endl;//g_dCompareRecult = compareHist(srcHist, compHist, 1);cout << "利用卡方法:"<<"第"<< n+1 <<"张图片两幅图像比较的结果为:" << g_dCompareRecult[n] << endl;//g_dCompareRecult = compareHist(srcHist, compHist, 2);//cout << "方法三:两幅图像比较的结果为:" << g_dCompareRecult << endl;//g_dCompareRecult = compareHist(srcHist, compHist, 3);//cout << "方法四:两幅图像比较的结果为:" << g_dCompareRecult << endl;if ((g_dCompareRecult[n] >- 0.90) && (g_dCompareRecult[n] < 0.1)) {imshow("最为匹配图像为:", compareImage[n]);}}waitKey(0);return 0;
}
通过以上代码实现对射门位置图像的设别。
3.2.2 数据清洗整理
因本次分析设计是对法国进球的数据分析,故此对以上采集得到的“法国进球”数据进行整合,分析进球瞬间法国球员的运动状态以及进球的角度球门位置。
为此主要分析:(1)控球率 (2)传球数 (3)进球是否为点球 (4)进球(除点球外)是定位球、角球或是运动战进球 (5)进球时间及进球球员 (6)进球球员位置
首先对以上八爪鱼采集得到的数据进行筛选数据元素:
有用数据为:
比分、进球、射门、射正、控球率、传球、越位、角球。
然后对图像数据进行采集筛选得到数据元素:
进球运动球、进球点球、进球角球、进球定位球、点球、进球死角球比、进球球门位置、禁区(点球除外)、禁区外(点球除外)、进球时间、进球球员、进球球员定位
使用Excel整理工具人工清洗后得到下列数据:
将上表数据设置为本次数据分析的数据主要模板进行分析。
3.2.3 建立可视化数据模型
进球数据表:
进球占比:
进球位置:
将球门划分为九个区域:
球门分9部分:左上、左下、左中;右上、右下、右中;正上、正下、正中。
其中:左上、左下、右上、右下视为死角球
统计总数据为(除点球外):
- 禁区:8 禁区外:3
- 定位球:2 角球:1 运动球:8 点球:3
- 左上:2 左下:7 左中: 右上: 右下: 右中:1 正上:1 正下:2 正中:2
- 正常球:6 死角球:8
进球时间线:
** 其中标红为防守队员乌龙球。 **
进球路线图:
3.2.4 分析数据
(1)根据“进球数据表”各场比赛的进球射门射正可建立方程计算球队射门进球转化率:
由上表可知,存在进球、射门、射正三个元素。根据数据得出相关系数
△S=F进球*x射正/y射门
S1=26/8=1.5,S2=14/10=0.4,S3=01/3=0,S4=44/8=2,S5=22/10=0.4,S6=15/13=0.38,S7=4*6/7=3.43
相关系数:S=(1.5+0.4+0.4+2+0+0.38+3.43)/7=1.16
若单场系数与总平均系数相减越大,表示该场射门表现越好,反之越差。
故计算得:
△S1=1.5-1.16=0.34
△S2=0.4-1.16=-0.76
△S3=0-1.16=-1.16
△S4=2-1.16=0.84
△S5=0.4-1.16=-0.76
△S6=0.38-1.16=-0.78
△S7=3.43-1.16=1.16
可知数据可知进球时法国压制对手难易度如下:
法国VS克罗地亚—>法国VS阿根廷—>法国VS秘鲁—>法国VS乌拉圭—>法国VS澳大利亚—>法国VS比利时—>法国VS丹麦
查询相关资料可知当场表现与数据筛选后的情况完全相符,在克罗地亚与阿根廷场面上完全占据上风,与比利时和丹麦打得异常焦灼。克罗地亚连续的加时赛使得全队体能储备下降严重,球队状态不佳;阿根廷球员人均年龄老龄化程度较大,体力不支无法与法国青春风暴相比,单靠梅西独木难支;而在面对丹麦时对方拥有绝对优势的制空权以及身体对抗能力;面对比利时又碰上豪华的个人能力极强的比利时整编队。
以上数据分析可得法国进球时场次的进攻射门球转化率总体表现并不高,特别是其中进球比数据能够知道有3/7的球是通过定位球或者点球获得,可知主要依靠的还是前锋的个人能力进球,而非通过不断的配合进行运动战进球。
故此法国选择的战术并非传控而是防守反击。
(2)由进球分布可知,法国进球中,由左下角打入的球数高达7个,占据了总进球数的一半,无论是运动战还是定位战术中,打左下角的球路都异常的多。对此查阅资料可知,法国所对的这七支队中,以高大形的守门员仅为2名,且刚好就是比利时和丹麦守门员,该类守门员由一大特点,及下地时对球门死角的防守更为出色;反观阿根廷之类的守门员,基本都是依靠超强的弹跳来补缺身高上的不足,这种守门员在面对平快球及有角度的球时发挥的作用巨大,但是选位好始终比不上拥有高大身材的守门员具有的对下方死角的防守范围大,故此法国队对于左下角或者右下角的射门绝对是一个正确的选择。而左下角还是右下角还有一个决定的因素,及进球球员的顺逆脚,由球员表可知:
其中除了2个乌龙球外,球员右脚进的球达到了7个,其中还要除去点球由当家射手左脚球员格里兹曼的3个左脚点球,右脚进球可算为7/9,可见左下角射门肯定为最优选。
(3)进球时间分析:
由时间进球表上图可知在45:00-70:00这一时间段内法国队的进球效率是最高的,在发生在半场休息结束后的这一20分钟的时间段内进球达到了8个;其中球员姆巴佩的进球数是最多的,该球员的特点是带球速度极快。在法国队体系内拥有姆巴佩这一球员属性对于第一个分析得出的结论:“法国善于打防守反击战术”而言显然是最为致命的“武器”。经过拥有优秀视野和长传能力的博格巴以及把握能力极强类似影锋的格里兹曼进行辅助拉扯空间,给姆巴佩的启动进球造就了最好的环境。在中场休息过后,对于刚刚休息回归的对方球员们显然无法突然间防守住一个爆发极强的且速度世界上前十的球员快速冲击,且姆巴佩才20岁,体力相较而言显然是最好的。故此对于该结论而言,显然姆巴佩才是本届世界杯上法国夺冠的最大功臣而非进球最多的格里兹曼。
(4)进球助攻路线分析:
进球路线图上的助攻路线可知,除去点球进球其中依靠传中进球的球达到了8个,占到了2/3的总数,未靠传中的球中其中还有帕瓦尔的中场世界波以及姆巴佩的长途奔袭大禁区外进球这两个神仙球。而对这类球路而言,格里兹曼是最大的受益者,作为一名前插身后的前锋对于传中球的喜爱不言而喻。他在其中的支点作用给球队带回了大量的球权,而且大多数的球基本上都是在小禁区内的拉扯秒传。且对于法国队而言,球队中拥有瓦拉内以及坎特这样的防守型后腰卫而言,博格巴可以更加放心的去组织进攻,而法国后场的瓦拉内、乌姆蒂蒂、门迪、帕瓦尔、恩宗齐都是任意球高手,在防守反击体系中都能极大的发挥各自的作用。法国26岁的平均年龄,作为本届大赛的最年轻球队,以其丰沛的体力及高超的技术在数据上已经大大领先了其他球队,唯有比利时的传控能与之一争,两个球队相较如同一软一硬洪拳对咏春般精彩绝伦。唯有技战术上的高下可以制敌取胜。
3.2.5 分析结论
法国队的青春风暴如同长枪一般不断冲击对手的防线,特别是加以技战术加持后,显得无可匹敌一般。法国夺冠的经历,离不开教练布置的防守反击战术,更离不开5个人:瓦拉内、坎特、博格巴、姆巴佩以及格里兹曼。2个防守者1个组织者以及1个拉扯一个冲刺,赋予了法国雄鸡前进的力量。
对于法国队本次夺冠,防守反击战术至关重要,其中还需要利用各个球星的特性加以配合。
对此阵容最合理配置应为:
1号 门将 洛里斯5号 后卫 乌姆蒂蒂2号 后卫 帕瓦尔4号 后卫 瓦拉内
21号 后卫 卢卡斯-埃尔南德斯
14号 中场 马图伊迪6号 中场 博格巴
13号 中场 坎特7号 前锋 格列兹曼
10号 前锋 姆巴佩9号 前锋 吉鲁
使用的阵型应为 4231,吉鲁单箭头做球队高支点。列兹曼分列右边前锋和左边前锋,中场马图伊迪作为前腰、博格巴和坎特双后腰。后卫线上,瓦拉内和乌姆蒂蒂搭档中卫,埃尔南德斯和帕瓦尔一左一右,门将为洛里斯。
阵容主要依靠下底传中为主,其中吉鲁作为中锋高支点负责禁区内拿球分球以及定位球的争抢,格里兹曼负责禁区前插拉扯拿球权,姆巴佩负责B2B前后场带球及开火权,坎特负责后场拦截,博格巴负责中场组织,马图伊迪负责前场分球带球。传球以长传调度为主,阵容收缩程度要求较低,边卫要求前插。球队射门主要以偏低方配球,且大禁区有机会便能射门,因为数据表示在大禁区射门的射正率相对较高,且大多数进球都处在大禁区边缘处,以远射为主。球队整体偏向大开大合,利用自己的身体优势及速度冲击对方,利用高点进行下底传中破解密集防守。防守反击能最大程度的拉开对方的中后场距离,由此利用速度拉扯打开缺口进球。