本篇假设读者熟悉python编程、matplotlib和pandas软件包的使用。
代码还是用到了足球数据解析软件kloppy和机器学习软件包scikit-learn,它们都是开源软件。
开发环境和数据集参考本系列的第一篇。
为了方便,代码中不再使用公制单位作为球场中的位置坐标,直接使用数据集中的原始单位码(yard)。
数据集使用了Statsbomb公司(https://www.statsbomb.com)的开放数据(https://github.com/statsbomb/open-data)。
xG是Expected Goal的缩写,用于表示一次射门可能的得分机会,在某些其他运动中也有使用(比如冰球)。一次射门的xG通常是一个[0,1]之间的数字,如果一次射门进球了,那么它的xG就是1。数字越大表示可能进球的概率越大。虽然xG看起来像是概率,但媒体经常会把球员多场比赛的xG表现或者球队xG加起来衡量其表现,因此xG更像一个数学期望。
目前xG还没有一个特别统一的定义。
看起来xG像是数据分析人员才会关心的指标,实际上xG已经兴起并且被媒体接受,一些发布比赛结果以及简单统计数据的网站,往往会同时发布球员和球队的xG数据。比如爱奇艺在直播今年赛季欧冠的时候,也会展现球队的xG数据,爱奇艺把xG称为“预期进球”。
sky sports dominic calvert lewin xG
这里举例,计算xG可能会使用到下面一些要素:
位置:射门发生球场的哪个位置;
射门部位:球员使用头或者左脚还是右脚射门?这个数据在我们使用的公开数据集里是有的;
传球类型:射门球员得到的传球是直塞、回传还是定位球?是高球还是地面球?这些数据在statsbomb公开数据集也有;
每一次射门都与数千次具有相似特征的射门进行比较,以确定这次射门进球的可能性。这个可能性就是预期目标总数大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!。0的 xG 是确定失误,而1的 xG 是确定的进球。如果 xG 为0.5,则表示如果尝试同样的射门10次,则预计会进5球。点球的xG固定为0.75。
xG的一些用途如下:比较 xG 和实际得分可以衡量一个球员的射门能力或运气;XG 可以用来评估球队在各种情况下的能力,比如面对空门、任意球、角球等等;在国外会在betting中使用xG;
注意不同实体发布的xG的计算模型并不一致,也没有哪家的数据特别权威。
在xG基础上派生出了很多关联的指标,比如xGA,xGBuildup,xGChain等等,但都不如xG这么流行,每家媒体的指标也不同,因此就不一一展开了。
计算xG采用了从历史数据中提取特征,并进行拟合。
过程还是机器学习老一套,确定特征、提取特征、划分数据集、拟合、评估。大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!
特征选取首先要局限于事件数据能提供的范围。这里使用了射门事件,根据Statsbomb开放数据的特点,这里使用了如下的特征:守门员位置射门距离与角度射门位置射门时封堵球员的数量射门时5码范围内对方干扰球员的数量进攻类型,是定位球还是正常进攻射门的身体部位射门的技巧,比如凌空抽射是否是第一次触球上半场还是下半场该事件持续时间
看起来挺多特征的,Statsbomb开放数据里面的信息挺丰富,特别是射门数据,甚至还包含了射门瞬间其他球员的位置,称为“冻结帧”。
目标集是进球与否。
机器学习常用的拟合方法很多,如果特征选择和预处理做得好,拟合方法没那么重要,这里没有使用最近的网红算法XGBoost,而是使用了简单的Logistic回归。
对于数据中的一些枚举类型,比如射门身体部位等,简单的采用了LabelEncoder编码器。
我们选取开放数据中西甲2020~2021赛季巴塞罗那的比赛(有数据的一共35场)
接下来进行特征提取:
一些以字符串为字面量的枚举类型无法直接参与计算,需要映射为数字。这里采用了LabelEncoder对特征进行编码:
划分数据集:
接下来进行拟合与预测大佬们都在玩{精选官网网址: www.vip333.Co }值得信任的品牌平台!
与statsbomb数据中自带的xG数据进行比较
得到结果如下:
第一列为算法计算出来的xG,第二列是Statsbomb数据自带的xG,第三列是进球与否。
不清楚Statsbomb的xG算法,但应该是类似思路,手头也没有Statsbomb那么丰富的数据,因此结果有差异。
以上
文章声明:以上内容(如有图片或视频在内)除非注明,否则均为足球直播_足球免费在线高清直播_足球视频在线观看无插件-24直播网原创文章,转载或复制请以超链接形式并注明出处。
本文作者:admin本文链接:https://ebuytc.com/post/226.html
还没有评论,来说两句吧...