kaggle竞赛分享:NFL大数据碗(上篇) (2)

这里竞赛需要的并不是具体的码数,而是码数对应的概率分布,也就是所有码数在一次进攻中的概率,所以需要这样一个转换类,如下:

kaggle竞赛分享:NFL大数据碗(上篇)

缺失值处理

训练数据上看,缺失情况不严重,缺失字段如下:

kaggle竞赛分享:NFL大数据碗(上篇)

这里对缺失的处理根据不同类型的字段采取不同的方式:

天气相关字段,由于天气具有连续性,因此采用前向填充较为合理:

kaggle竞赛分享:NFL大数据碗(上篇)

体育场类型,严格来说应该是通过baidu、google等去搜索,但是NFL的相关信息baidu搜到的太少,google上看也没找到,所以用取值最多的来填充:

kaggle竞赛分享:NFL大数据碗(上篇)

FieldPosition,这个字段的缺失不同于以上两个,通过对数据的分析,它的缺失源于在中线开球时,此时没法明确指出是在哪个半场,所以缺失,这里用一个特别的值来填充,“Middle”;

OffenseFormation,进攻队形,实际缺失了5条,统一用取值最多的来填充即可;

DefendersInTheBox,防守方在混战线附近的人数,通过观察数据可以通过球队、对手、以及防守组成员来填充DefendersInTheBox:

kaggle竞赛分享:NFL大数据碗(上篇)

Orientation 球员方位-角度,Dir 球员移动-角度,只有一条缺失,且该球员正常上场了的,应该是技术型缺失,用mean填充即可;

异常、重复等处理

StadiumType:存在不同名但是同意思的情况,这里要整理后归一处理,避免对模型产生干扰;

kaggle竞赛分享:NFL大数据碗(上篇)

存在PossessionTeam既不是HomeTeamAbbr也不是VisitorTeamAbbr,共有120场比赛中出现这种情况;

kaggle竞赛分享:NFL大数据碗(上篇)

草皮字段处理;

kaggle竞赛分享:NFL大数据碗(上篇)

Location字段也存在重复含义但是不同值的情况需要归一;

kaggle竞赛分享:NFL大数据碗(上篇)

EDA:探索性数据分析

下面是通过matplotlib绘制的一场比赛中的多个进攻防守回合的展示图,黑色三角形是QB,红色是进攻方,淡蓝色是防守方:

kaggle竞赛分享:NFL大数据碗(上篇)

可以清楚的看到每次进攻不同的站位,以及整个推进的过程,这里我记录的一份NFL比赛手记,爱国者vs乌鸦,新老QB的正面交锋,非常精彩,可以对照着看一下;

特征工程

这里由于我个人对橄榄球的了解也并不是很多(强推电影弱点),所以特征工程部分做的并不是很好,从结果看Top61%也反映除了这个问题,但是我依然觉得具有一定的参考意义,下面我会分析每个新特征构建的目的,以及我的想法;

WindSpeed,WindDirection:直观看,对比赛影响应该不大,可能存在某些传球手喜欢顺风或者逆风,但是影响应该很小,所以我这里选择丢弃;

PlayerHeight:转为球员身高,身高无疑对比赛是有关系的;

PlayerBirthDate:生日转为岁数,岁数可以表示一个球员的身体状况是否处于巅峰等;

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zydgwg.html