【入门级统计学】用线性回归模型尝试模拟hltv rating 2.1 算法权重
鉴于区里讨论rating 2.1算法的人很多,这里给出一个统计学中最最基本的入门级机器学习模型来模拟hltv的真实算法。整个过程并不严谨(仅花了半个小时左右时间),仅仅只是为了探讨各项数据对于rating的权重差别,而非精准地找出hltv的具体算法。相信有本科甚至高中及以上统计学/编程经历的人应该轻轻松松就能看懂并且复刻以下操作:
假设hltv用来计算rating的数据有以下几项:DPR、KAST、IMPACT、ADR、KPR,且hltv是以某种特定的线性组合来完成对rating的最终计算,那么便以这五项数据来完成线性回归建模(Linear Regression)。
数据选择:随机选择了50名选手在2025年的rating以及五大项,其中40名为训练集,10名为测试集。样本量较小,纯粹是因为我懒得去扒更多,毕竟hltv对于自动数据采集有所限制。其中KAST这项数据从百分比转换回小数来计算。
常规的线性回归模型给出了图一中的结果 —— Rating = -0.1068 + 0.3861 * DPR + 0.9465 * KAST% + 0.2368 * IMPACT - 0.0000436 * ADR + 0.7114 * KPR。
看出问题所在了吗?ADR这个变量在该模型中不具有显著性 (p-value = 0.792)。在以上公式中,我们发现DPR和KPR的权重远高于Impact;更变态的是,ADR的权重竟然是负的,也就是说一个选手的场均伤害越高,最后的rating会越低?这怎么可能呢?不难发现,实际上这几个变量之间分别具有严重的强相关性:假如一个人KPR高,他的ADR和Impact也很可能会高;假如一个人活得多,DPR低,那么他的KAST也可能相应变高。
为了减少这种相关性,引入第二种模型:岭回归(Ridge Regression)。岭回归在标准线性回归模型之上引入L2正则化概念来降低模型可能的多重共线性(multicollinearity)。使用该模型前,需要把数据缩放使其呈正态分布。最后得出来的结果为:
Rating = 1.128 - 0.0196 * DPR + 0.0299 KAST% + 0.0506 IMPACT + 0.0005 ADR + 0.0611 KPR。
将模型放至测试集进行测试,得到的误差(RMSE,即root mean squared error)不超过0.02,即使用该模型时预测的rating与真实rating之间的差别不超过0.02。
这时我们再回头分析一下这个公式,不难发现这时DPR和KAST的权重显著降低,而Impact和KPR明显变高,ADR也变为了正权重,符合我们平时的观感。
其实我猜测真实的hltv的rating模型应该是以1.0为起点进行加减计算(而非上述公式中的1.128),主要是因为hltv的数据远多于我这里随机选择的50个数据点,也会更加标准化。有兴趣的朋友可以把一整年所有比赛的单场rating和各项数据拿去训练,工作量太大这里不予展示。
再次声明,以上分析均为心血来潮,并不一定准确,只是抛砖引玉,有错误请指正。
佐藤伸治
· 湖南https://tieba.baidu.com/p/9473680990?share=9105&fr=sharewise&share_from=post&sfc=copy&client_type=2&client_version=12.65.1.1&st=1742769066&is_video=false&unique=E6251B2B0DFA5E20DDBE6DD2ECE01EA4这个楼主的思路会更贴近rating2.1的设计逻辑一点
神奇卢卡有魔法楼主
· 上海这不就是另外一个帖子里提到的思路吗,要想完全模仿hltv把rating 2.1做出来,必须有办法拿到全部的细节数据,普通用户是不可能做到的,所以只能费尽力气去找那些只有一回合就结束的半场来做推断。我的目的不是复刻hltv的算法,而是用最简便的办法尝试找出各大项间的权重是否存在较大差异