前言
提交完论文后瘫了两天,总结一下这次的比赛叭。作为一个对建模刚接触半年的小白参加这次美赛是对自己的提升;
在出题后一脸懵逼??ADE三个题,两个没数据,一个数据怎么这样多?!还好之前学习了机器学习的部分知识加上对python的熟悉(主要我是足球狗),我力排众议选了D题,比赛期间队友全程一脸懵逼(我怀疑到现在他们都不知道做了什么),所以对于一个初次接触建模的小白来说在这个比赛中做了主建模+编程手顺带写部分论文(emmm),总之这次比赛对自己提升很多。
思路分析及算法思路
对于这道题,选这道题的同学应该深有体会,这数据。。。太多太杂,不过还好在题目下,官方给出了参考文献,顺道在谷歌学术又爬了几篇,大致有了想法,知网也有,推荐一篇:“社会网络分析法研究足球比赛传球表现的可行性分析_李博”,对于这道题目关键和难点也是对网络的分析以及对球队战略进行评估。
比完赛问了些同学,有开始的时候被这个建立网络坑了,有人做成了图像处理,导致最后代码过于庞大,于是弃赛。
pro1
其实所谓的分析,可以理解为指标的量化。图有很多性质,我列举一些比如:稳健性,最短路径等,对于这些分析还好之前把图论过了一遍:
1.稳健性:跟据我们小学时候所学的三角形具有稳定性,当然在图网络中可以判断三角形的数目来判断这个图网络的稳定性,所用到的算法即常见的动态规划算法即寻找图网络中三角形网络的数目;
2.最短路径:判断最短路径时可以用到Dijkstra算法来寻找传球之间的最短路径,
时间为
3.中介中心性:是分析图网络的另一个重要指标。在图论中,这可衡量一个节点位于通往其他节点的路径上的程度,通过中介中心性可以判断这些球员在球场上扮演着重要的角色,因为将他们从网络中删除可以使团队从高绩效变成低绩效。
这样分析第一问算是完成,可以分析出球队的大致战术和网络结构(二元?三元)
仿照论文中我们也画出来很多比赛的传球网络图不一一列举,就发一个在球场上的传递的吧(networkx这个包很好用,建议看看他的api);
pro2
对于第二问,我首先看了官方推荐的那几篇论文,在谷歌学术上又找了几篇相关推荐的,其中几篇给我们了很好的思路;
当然第二问有很多人有疑问,对于这么多个的数据,我们是分析一场比赛的好,还是分析全部的比赛好,当时我也决定分析全部比赛的没必要(但是到第四问又分析了全部的,真香);
当然我在第二问时没有分析别的因素而是只分析了,图网络的一些特征,当然分析方法也很简单,聚类分析:我们分析了度中心性,中间性中心性,紧密性中心性,特征向量中心性,聚类系数等指标,
这些特征也可以表示一些比赛时的团队东西,举个例子:Degree Centraliy表示球员在比赛中的参与度,这些可以发散的去思考,当然你们有好的思路也可以,我的小白仅供参考。
这些东西得到后,第二问也就迎刃而解,通过这些指标可以分析战略是否普遍有效,对对手的反战略的执行效率。代码方面网上有很多现成资料,可以作为写法的参考;
pro3
个人认为第三问最**,在第三问是正了八经的分析战术,作为一个足球狗,战术可以理解为:阵型+策略。
做到这一问的时候是第二天晚上,然后我就去玩了一晚上的FIFA18【狗头】(因为有大佬认出来这个是17-18的埃弗顿),我模拟了一下不同阵容对赛季积分的影响(不考虑转会);
当然评价一个战术的有效性和时效性可以从传统的方面进行分析比如控球率,射门/射正、扑救、抢断等等,根据fullevents里面我们找到了14个评判指标,有人可能会问,why?为什么分析这个。举个例子:我们比赛中控球率低战术的执行率自然也就低也就影响比赛结果;
分析时我们自然采用了主成分分析(经典),很自然的得到了前几个最影响的因素;再聚类分析这几个;当然我们自然没有错过对比赛时的网络的分析,分析了每个球员接球传球的位置画出热点图,可以直观的展现球员在场上的活动情况,分析时用了DTW方法,因为实际中我们遇到相位的长度是可变、确定空间上相似的相位问题。
通过球员的平均出现的位置我们也可推出阵容是什么,还单独分析了几位相对活跃的球员在比赛中的跑位,这样得到打法策略战术就很直接,当然提建议是我们放在最后面说的,在回答第三问的这块时候文字建模了一下;
pro4
首先,百度名词,在题干里有跟社会挂钩的名词,那么也明白了我的模型要从球场出去回到社会,企业。去分析这些地方的和足球相似的地方,还需要了解哪方面因素对比赛的影响,很简单回归实际,在足球团团中往往会出现很多的其他因素来影响团队和比赛,毕竟足球是圆的嘛,裁判的判罚尺度及偏袒程度(写到这一个萨米很抱歉),球队中的精英数目(这个不解释),球队的抗压能力(欧冠呜呜呜,我哭了)等。这些反映到社会上也很容易联想到,企业中团队精英数目,社会弹性恢复力等等。
这块我们分析了38场,分析球队球员位置的变化,进行相似聚类并深化优化网络,对这个全部比赛进行分析,得到评判指标,名字我们起的就不分享(可能不专业),得到战术越有效即比赛比分或其他指标很出色,评判指标越高。
剩下的就是吹模型了,这个题也就收工了。
反思
因为是第一次参加建模,可以说给我一个下马威,由于线上做题团队沟通不是很方便,我的思想论文手无法理解,可能是我表达能力问题,我只能编写代码边码论文;
还有一个很重要,对友们要熟悉再熟悉,写论文的一定要懂建模;
对于出题后不要急于定方案,而是要先查文献再订方案,我的队友没有方案只能我定,我就犯了这个错误,导致第一版方案被自己否了(第一晚在崩溃的边缘),第二天查了文献才找到了代码感觉,最后完成题目;
还有个人建议以后组队就是编程手一定要有算法基础还有不要局限于matlab可以发展到python、R,本来以为这次比赛就写个代码谁知道。。比完赛也就画了句号,总结提升吧。
本文写的较快,文中的分析如有疏漏请批评指正,谢谢,如有大佬对这个题又自己更好的想法可以讨论共同提升
ps:代码和细节等出成绩后出详细的讲解(咕咕咕)【代码语解释句+python数据处理部分知识】