中羽在线社区
标题: 基于【WHR全历史等级分】的顶级羽毛球男单球员实力分析 [打印本页]
作者: 彭贻豪 时间: 2022-6-4 02:31
标题: 基于【WHR全历史等级分】的顶级羽毛球男单球员实力分析
一、引言
之前逛中羽论坛时,发现有球友提到目前缺乏合理的衡量球员实力的量化指标,尤其是对于不同时期的顶级球员实力对比有着比较大的争议(虚空对比)。出于比较不同顶级球员实力的好奇心,我希望能够引入成熟的评分方法,对不同时期的羽毛球男单运动员的水平进行一个评分。
本文的第二节将会介绍评分的具体方法。在这部分中,我会介绍如何获取球员对阵数据,以及使用的评分算法。我比较了ELO等级分和WHR等级分在羽毛球领域的适用性,并最终选择了WHR等级分。如果球友不感兴趣可以略去这一部分。
本文的第三节将会展示不同时期的顶级男单球员的WHR等级分,并进行一些我个人的分析(不可避免会带有部分个人偏向)。我希望能做到仅输出数据,不输出观点。
二、评分方法介绍
1. 对阵数据的获取
羽毛球比赛的对阵数据可以在这个网站上找到,并且该网站没有限制爬取次数的防火墙。我编写了爬虫,将1989年以来的男单比赛的所有对阵数据进行了爬取,包括20000+位男单球员,以及200000+场对阵。
2. ELO等级分的不适用
获取到数据之后,就需要选择一种合适的评分算法。目前对于网球项目,已经存在非常成熟的使用ELO
等级分对不同历史时期的球员进行实力评估的方案,例如这个网站。ELO等级分是一个比较广为人知的评分方法,成功应用在了很多领域,因此我首先考虑使用ELO等级分对球员的实力进行评估。
Elo会用一个数字来衡量运动员的水平,每场比赛结束后,赢家会从输家那里获得积分。两名运动员之间的积分差异,决定一场比赛后,获得或者失去的积分。
如果评分高的运动员获胜,那么只会从评分低的运动员那里,获得一点点积分。相反,如果评分低的运动员爆冷,就会抢走评分高的运动员大量的积分。如果平局,评分低的运动员,同样会抢走评分低的运动员一定的积分。
只要运动员的场次足够多,Elo就会真实地反应出运动员的真实水平。
我实现了ELO等级分算法,并使用男单对阵数据进行训练。但是发现拟合效果非常不稳定,调整其K值参数,最终的积分排名会出现很大的变化。我研究之后,发现有以下原因:
A)ELO等级分的内蕴缺点:时滞性。一个球员如果一直不打球,他的等级分将会维持不变,无法准确评估其实力。众所周知,羽毛球是周期性备战的,许多顶尖球员都会选择性参赛,在关键赛事上发力。
由于ELO等级分是增量算法,只能“向前看”,而不能“向后看”,因此它是没法准确判断放假归来的林丹、禁赛回归的桃田、伤愈归来的桃田分别是个什么水平的,与他们进行比赛的等级分修正就会非常不合理。因此ELO等级分非常不稳定。
B)ELO等级分的内蕴缺点:通货膨胀。在无关选手水平的情况下,平均的ELO等级分会自发地出现上涨现象。为了解决这个问题,我查到的解决办法(参考网球的思路)主要是增加“缺席惩罚”。例如林丹很久没参加比赛,那么会自动下调他的等级分,让跟林丹比赛的对手没那么容易增长等级分。但这个方法最终的效果会很奇怪,因为大赛前夕有很多球员会选择备战不参赛,那么最终参加大赛的时候就会等级分很低,比较不符合常理。
C)ELO等级分没有考虑到不同赛事的重要程度。世锦赛和挑战赛在ELO算法的眼中地位相同,对于某些在小比赛实验打法的球员不太友好。
3. 使用WHR等级分
A) 我最终选择了全历史等级分(Whole-History Rating,
WHR)作为评分方法,它是ELO算法的优化版。
该评分方法的应用领域也比较多,例如著名的围棋“
野榜”(GoRatings)就是使用了此算法。该算法的优点在于,a)
会考虑一个选手在不同时间的实力变化,认为一个选手在一段时间内的表现满足正态分布;b) 使用牛顿迭代来拟合评分,使得比赛结果的贝叶斯后验概率最大。用白话来说,就是用该评分来预测比赛是非常准的。
由于并非是增量算法,WHR可以通过结果来推导积分。例如2013年的林丹获得了世锦赛冠军,那么可以反向推导出他放假归来时的等级分,并相应修改其对手的等级分。
B) 参数设置
我选择将参数w2设置为14(原论文代码推荐的值)。同时我根据不同赛事的重要程度不同,设置了不同的权重:
(由于我是00后球迷,搞不太清羽联的几次积分改革,为了不厚今薄古,仅考虑了几个顶级赛事,求轻喷)
奥运会:3
世锦赛:2.5
亚运会:2.5
汤姆斯和苏迪曼:2
全英:1.5
总决赛:1.5
其他比赛:1
这样更高等级的比赛,会有更高的权重。同理,我根据比赛中的轮次,设置不同的权重:
决赛:2.5
半决赛:2
铜牌赛:2
1/4决赛:1.5
其他轮次:1
牛顿迭代次数选择为400轮,训练大概需要40min。
三、对全历史等级分的分析
1. 球员的巅峰WHR等级分比较
我最关心的就是关公战秦琼了,下表列出了巅峰WHR等级分前20名的球员。
由于我是00后球迷,对有些老将不太熟悉,不知道通常怎么翻译,这里就用英文名代替了。
A) 可以看到,林李的WHR等级分一骑绝尘,是唯二超过3700的选手。
B)这里值得一提的是安塞龙的分数,可以看到他在今年的分数达到了历史第三。但是不能不考虑一个因素,WHR等级分假设球员在一段时间内的表现会呈正态分布,因此会根据之后的比赛结果适当修改球员的当前分数。例如2013-2014的林丹,可能就是因为2014末期的糟糕表现,导致被WHR算法认为是林丹在慢慢下滑,因此会略微低于2012年的等级分。
安赛龙目前的高分有很大的原因是无法获取之后的成绩。如果安塞龙之后的比赛表现低迷,那么目前的得分将会受到修正。
作为参照,在2020年之前,安塞龙的上一个小巅峰是2017年,他的峰值WHR等级分是3449,排在陈宏之后。
C)按照算法的设计,相差400分时胜率大概在90%。
D)这个排名是算法的结果,仅根据对阵情况进行分析,未考虑技战术,也未考虑场外因素。不能说穿越时空进行1v1男人大战,就一定符合实际情况,所以大家如果感觉不太对的也可以一笑置之了。
2. 单人世界冠军的难度(含金量)比较
这也是个热门话题,我统计了2004-2021年世锦赛、奥运会的世界冠军们,在夺冠路上的对手的WHR等级分,见下表所示。
A) 需要解释的一点,是对手的WHR往往会偏低,因为他这场输了嘛,所以WHR算法会给他减分,因此可能看起来分数会有点差距。可能这场比赛之前或是之后,对手的分数又会高起来,正态分布嘛。
B) 平均WHR看起来会比较小,因为一二轮往往是那种很菜的对手,所以拉低了均分。但是我也不敢仅仅统计1/4决赛以上的对手,毕竟安塞龙第一轮就被淘汰了。。
C) 还是一样,这个排名是算法的结果,也不能说穿越时空进行1v1男人大战,就一定符合实际情况,所以大家如果感觉不太对的可以一笑置之。
3. 顶级选手WHR变化图
这里统计的是每一年的最后一天的WHR等级分。我分5个周期画出了每年的WHR等级分前5的球员的等级分走势。由此可能可以对竞争环境做一个比较简单的判断?这里直接整的是英文名字。
四、总结
本文中列出的WHR等级分,是采用WHR算法、仅根据对阵情况计算出来的评分,没有分析技战术,也没有考虑场外因素,因此可靠性无法评估,仅供娱乐参考。具体采用的参数以及训练方法可以见第二节。由于WHR算法没有引入随机因素,因此相信是容易复现的。
希望本文能起到一个抛砖引玉的作用,有更多大佬可以使用更加优秀、科学的方法进行羽毛球的分析,大家一起进步。
五、FAQ
1. 盖德的等级分问题
我也觉得盖德的等级分有点奇怪,就把盖德的整个生涯的等级分走势图给打了出来,如下图所示。
我对盖德同志以往的战绩不太了解,不知道早年的数据符不符合大家的预期。
我观察了下其巅峰WHR是出现在2011年的苏迪曼杯之后。观察那时的战绩,我觉得大概是因为盖德在那段时间主要输的都是林丹和李宗伟两个超级高手,导致其WHR没怎么下降(因为差距挺大的),因此等级分一路飞涨。
作者: 扑克死神 时间: 2022-6-4 07:58
不是很懂…可能是我的问题
作者: wyet 时间: 2022-6-4 08:03
好像很厉害
作者: 糖囍 时间: 2022-6-4 08:28
这个好,用数据说话,用算法做规则
比那些用嘴讲的虚空对比强百倍
不同时期参考不同时期的数据
比较客观
作者: songyan850725 时间: 2022-6-4 08:29
虽然我看不懂,但是我大受震撼
作者: 懒猫蹦蹦 时间: 2022-6-4 08:32
虽然我看不懂,但是我大受震撼
作者: 凤游仙 时间: 2022-6-4 08:33
不错,虽然我有点看不懂,但楼主的尝试是非常棒的
作者: 何必为我深情 时间: 2022-6-4 08:35
好好好,这篇帖子确实够嗯
作者: 元我 时间: 2022-6-4 08:57
这个帖子还是比较细致的,考虑大赛加权和时间的decay。看出来分析的确有的地方符合人们的印象:比如11年林李的巅峰大战,的确都是两人都在巅峰。然后是其他人的巅峰也符合。唯一有疑惑的是盖德在11年的分值。楼主有没有论点解释一下盖德。其他人的分值都是符合人们印象的。
本帖最后由 元我 于 2022-6-4 09:18 编辑
作者: 元我 时间: 2022-6-4 08:57
还有一点是楼主以年为单位,如果能以月份为单位会更为精确。相信楼主改一下算法会很轻松的算出来
本帖最后由 元我 于 2022-6-4 09:19 编辑
作者: 元我 时间: 2022-6-4 08:58
ELO等级分的内蕴缺点:时滞性 elo计算会有一个衰减 你可以把这个记上同时把分值用大赛加权
作者: 元我 时间: 2022-6-4 09:00
ti这贴应该加精了
作者: 元我 时间: 2022-6-4 09:00
写的很好
作者: 元我 时间: 2022-6-4 09:03
基本上算法分析都到位 林丹少参赛的情况会分下降 但事实上只是这货不参赛 实力还在那里 这个时候对战情况没办法反映出来
本帖最后由 元我 于 2022-6-4 09:05 编辑
作者: 元我 时间: 2022-6-4 09:07
对手的平均分值反映了大赛的含金量,也符合人们的印象。
本帖最后由 元我 于 2022-6-4 09:21 编辑
作者: 元我 时间: 2022-6-4 09:26
有没有python代码能分享么,我可以换权重跑一跑
作者: wolf96_99 时间: 2022-6-4 09:27
支持支持,数据说话永远比虚空对比有力。
综合来看李老师大赛无冠,就是因为他一直没达到统治性实力,基本上总有一个人WHR压在头上。。。
作者: ylmf 时间: 2022-6-4 09:34
提示: 作者被禁止或删除 内容自动屏蔽
作者: 元我 时间: 2022-6-4 09:42
不一定有data orz。。
作者: 甘醴。 时间: 2022-6-4 09:44
好帖帮顶
作者: 元我 时间: 2022-6-4 09:45
谌龙桃田差距小的惊人。安塞龙 > 桃田
作者: 小娇妻诱人 时间: 2022-6-4 09:45
收藏了
作者: 捏大恩子 时间: 2022-6-4 09:45
能有多少人认识
作者: 漫游天子 时间: 2022-6-4 09:46
好深奥,写得很好
作者: 下饭大师 时间: 2022-6-4 09:46
楼主牛逼,这个太高深了,虽然看不懂,但还是能依稀领悟一二其中的内涵

作者: GC-MS 时间: 2022-6-4 09:49
这比长篇幅说胜率的好很多
作者: 羽我同醉 时间: 2022-6-4 09:49
话题太高端,人心太浮躁
作者: 秋名山柯基 时间: 2022-6-4 09:50
好帖帮顶
作者: 大鱼97 时间: 2022-6-4 09:51
终于有不是光会算个胜率就觉得自己做了分析的朋友出现了
作者: mellower 时间: 2022-6-4 09:52
一个小勘误,安塞龙峰值3644应该是2021年而不是2022年吧
作者: 橘子rrp 时间: 2022-6-4 09:52
提示: 该帖被管理员或版主屏蔽
作者: alike! 时间: 2022-6-4 09:53
支持楼主
作者: 大厨子不下厨 时间: 2022-6-4 09:53
虽然我看不懂,但是我大受震撼
作者: 何必为我深情 时间: 2022-6-4 09:54
提示: 该帖被管理员或版主屏蔽
作者: 元我 时间: 2022-6-4 09:54
2021是3632
作者: 元我 时间: 2022-6-4 09:54
。。。。。
作者: zuudi 时间: 2022-6-4 09:56
这就是程序猿吗,爱了爱了(楼主顶住,可能有人来喷你虚空对比了
)
作者: 123瓦全 时间: 2022-6-4 09:56
写的真不错
作者: 2267543013 时间: 2022-6-4 09:57
兄弟,发一篇期刊吧
作者: 大表叔 时间: 2022-6-4 09:57
不明觉厉
作者: 贞德 时间: 2022-6-4 09:58
很厉害啊,不过感觉巅峰战力差距都蛮小的。李炫一巅峰竟然是2013年吗?
作者: 元我 时间: 2022-6-4 10:00
选手在一段时间内 这里一段时间你的参数是多少。
作者: ∨月神守护∨ 时间: 2022-6-4 10:00
数据流比印象流靠谱多了。而且这种排行计算方式有论文论证,优缺点都会考虑到
作者: 和. 时间: 2022-6-4 10:00
牛的 好帖帮顶
作者: LeeAnn 时间: 2022-6-4 10:01
y爷爷你这看球时间太早了,只能说respect


作者: 元我 时间: 2022-6-4 10:01
你的参数如果设置是1年,建议改成3个月 以一年为周期衡量,时间太长
本帖最后由 元我 于 2022-6-4 10:03 编辑
作者: panlaoshi 时间: 2022-6-4 10:04
桃田是我觉得最不属于这上面,运气比较好,拿了一个世锦赛冠军,打的好也就两年。林李两个人统治了整个羽坛差不多十年,基本上是碾压其他选手,李宗伟的运气和最后一分的保守心态,让他没拿到一个世界冠军。林李同时代的高水平选手太多了,包括女单女双男双混双,可以说是羽毛球最好的十年。现在都是些啥?李炫一拿了两次奥运第四,打,打的相当不错,盖德在职业生涯最后还能赢林丹一局。谌龙的水平当年是仅次于林李,因为他的反手和防守非常好,不过打团体赛就算了
作者: Major233 时间: 2022-6-4 10:04
建议给出原始文献doi
作者: 李梓嘉001 时间: 2022-6-4 10:04
确实看不太懂,感觉有点道理
作者: 和. 时间: 2022-6-4 10:04
需要客观的统计 而不是虚空对比和反虚空的互怼 (@qiushenglindan)
作者: Concerello 时间: 2022-6-4 10:04
l
作者: 凤游仙 时间: 2022-6-4 10:05
巅峰战力大家都差别不大,但成绩就天差地别了
作者: ylmf 时间: 2022-6-4 10:07
提示: 作者被禁止或删除 内容自动屏蔽
作者: LeeAnn 时间: 2022-6-4 10:07
除去历史数据和规则改动因素。顺便查了查,三次打入世界羽毛球锦标赛男子单打的决赛还有两次打入世界杯羽毛球赛决赛都没夺冠,这是不是有点类似于李宗伟?
作者: 晴转雨夹雪 时间: 2022-6-4 10:09
hhhh,发表了这么多废话评论,结果连帖子都没认真看
作者: 201001 时间: 2022-6-4 10:09
楼主这个贴超级强大。很想知道,08和12的林丹会排在什么位置


作者: 元我 时间: 2022-6-4 10:10
跟他说过好多次了,他不一定熟悉这套算法。他们一起做很合适。或者我和数据帝一起做。楼主的衡量周期是一年,太长,改短一点更合理。以及楼主只看了高级别赛事。其他地方楼主做的没什么问题。
作者: 风影c_jc 时间: 2022-6-4 10:11
很震撼啊
作者: 元我 时间: 2022-6-4 10:11
楼主说了要向后调整,但是楼主选的window是一年,这个时间太长。楼主如果把时间变成三个月,那么安塞龙2022前三个月已经定下来了。楼主现在的data point一年调整一次,不能动态的反应实力变化。比如李拿督2011上半年肯定比下半年高。另外安塞龙2021分数比桃田高。你可以去看看
本帖最后由 元我 于 2022-6-4 10:13 编辑
作者: 球打想我 时间: 2022-6-4 10:12
好文

作者: 詹大侠 时间: 2022-6-4 10:12
可怜的摸摸他,2020年走势图直接腰斩了
作者: ylmf 时间: 2022-6-4 10:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: biubiu鼠 时间: 2022-6-4 10:14
这才是真正的大佬
作者: 时间机器制造者 时间: 2022-6-4 10:14
楼主,私以为亚运会的权重过高,应该和全英一样为2比较好,全英基本是全球范围内高手都来参加的赛事,含金量不输亚运会,亚运会权重和世锦赛权重一样值得商榷
作者: 何必为我深情 时间: 2022-6-4 10:14
数据太多看着费劲,不如设计一套算法直接给出结果
作者: 周大羽 时间: 2022-6-4 10:14
感觉像是大学生毕业论文或者建模大赛作品的精简版
作者: 张box 时间: 2022-6-4 10:15
不错,用心啦
作者: 翘腿沙发 时间: 2022-6-4 10:15
参考看看就行,别太当真
作者: 破晓的木偶 时间: 2022-6-4 10:15
膜拜算法大佬,研究之细致令人佩服,这可以发顶刊吧

作者: Shezarr 时间: 2022-6-4 10:18
看完了,感觉很科学,结果也很有趣。应该是有很好的参考价值的,数据中的信息也值得进一步挖掘。
作者: 元我 时间: 2022-6-4 10:18
至少还要做这么几件事:对不同的权重各跑一次,对不同的time window跑。当然楼主做的已经不错了
作者: ylmf 时间: 2022-6-4 10:22
提示: 作者被禁止或删除 内容自动屏蔽
作者: 虐猫狂人薛定谔 时间: 2022-6-4 10:27
深度好贴,这不得加个精?
作者: 飞羽-焦糖 时间: 2022-6-4 10:28
我认为可以再细致一点,这篇文章还有很多东西可以再补充,比如周期可以不以1年为单位,我个人理解为1年为单位可以省去很多计算时间 ,要是好好做的话也可以算的更细一点。然后还有比赛权重方面,全英的比重2.5,亚运会2比较合适。 因为亚运会毕竟是洲内比赛,对其他地区的选手不公平。比如今年的22年杭州亚运会,安赛龙,安东森等无论是实力还是排名都是时下世界前5的名将就无法参加。 而全英每年所有选手都参加了。
作者: zy_he 时间: 2022-6-4 10:28
重大比赛的权重调整可能导致排名的变化,所以这个权重是需要讨论的
作者: 羽动—心弦 时间: 2022-6-4 10:29
这感觉可以给我作毕设啊
作者: 飞羽-焦糖 时间: 2022-6-4 10:30
飞羽-焦糖 发表于 2022-06-04 10:28
我认为可以再细致一点,这篇文章还有很多东西可以再补充,比如周期可以不以1年为单位,我个人理解为1年为单位可以省去很多计算时间 ,要是好好做的话也可以算的更细一点。然后还有比赛权重方面,全英的比重2.5,亚运会2比较合适。 因为亚运会毕竟是洲内比赛,对其他地区的选手不公平。比如今年的22年杭州亚运会,安赛龙,安东森等无论是实力还是排名都是时下世界前5的名将就无法参加。 而全英每年所有选手都参加了。
这篇就有点像精简版的论文了
,好好搞一下可以发,我觉得对于羽毛球人来说还是很有意义的。
作者: shenglr 时间: 2022-6-4 10:31
这个能当本科毕设
作者: 元我 时间: 2022-6-4 10:34
。。。
作者: abc123的春天 时间: 2022-6-4 10:37
楼主厉害,挺好的!参考文献能说下吗?
作者: abc123的春天 时间: 2022-6-4 10:40
我不太会算法这种,89以后的弄出来也不错了,往前的比赛只能保证八强或者半决赛开始有记录,80年开始的我在慢慢从新加坡报纸上扒
作者: fubizhengzy 时间: 2022-6-4 10:40
辛苦了
作者: HugoWang 时间: 2022-6-4 10:41
大佬我的项目靠你这篇文章了
作者: 叁仟 时间: 2022-6-4 10:43
参考文献呢?
作者: 叁仟 时间: 2022-6-4 10:44
没有参考文献,这论文格式不规范
作者: 平韵律 时间: 2022-6-4 10:47
这个挺好
作者: 天空中的云 时间: 2022-6-4 10:49
不明觉厉,反正不管怎么搞,丹哥yyds
作者: abc123的春天 时间: 2022-6-4 10:50
楼主这个就是把剩下的归为一类了,如果c按比如现在的1000,750,500级别分别设系数,再换到每年会比较繁琐吧,级别我倒是这四十年的都有确定的,另外就是如果加上羽联遗漏的比赛,我那些也就是放在excel里面的,程序能抓吗,我在慢慢试图把89年以前的比赛记录做出来。
每年3个月分一次倒确实不错,按节点正好是全英,汤尤杯,世锦赛,年终4个,还可以
作者: JAAASONCHEN 时间: 2022-6-4 10:52
工作量很不错,可以当一个本科毕设了
作者: 彭贻豪 时间: 2022-6-4 10:54
是这样的,巅峰whr是精确到每一次比赛的,但是第三节列数据的时候是以年为单位,因为怕太杂乱了
作者: Return归来 时间: 2022-6-4 10:54
火钳刘明
作者: 左翼 时间: 2022-6-4 10:54
很有意思!希望论坛能有更多此类不单靠一张嘴的强证帖!
作者: 彭贻豪 时间: 2022-6-4 10:55
这个是算法拟合的目标,不需要我设置参数。建议可以读下原论文哈哈
作者: invincible吖 时间: 2022-6-4 10:56
期待一个更详尽的分析
作者: 春风和煦暖人心 时间: 2022-6-4 10:56
帮顶
作者: 彭贻豪 时间: 2022-6-4 10:56
可以看下whr的链接,里面有原始文献
作者: 彭贻豪 时间: 2022-6-4 10:58
哈哈是这个等级分算法的名字叫“全历史评分”,但是没有之前的数据
作者: windsky2010 时间: 2022-6-4 10:58
牛啊,数据帝
作者: 大雄838 时间: 2022-6-4 10:58
曾经日不落帝国 能和 现在的小日本 打一架么?
作者: 远方& 时间: 2022-6-4 10:59
2017年的世锦赛打错了
欢迎光临 中羽在线社区 (https://bbs.badmintoncn.com/) |
X3.2 |