S16 V4:小幅参考修正与完整复刻
V4仍预测整个世界赛的每局总体选取率、禁用率、综合BP热度、条件平均选取手数和BP步数。角色选取率以同一世界赛总局数作分母,五路之和等于总体选取率。当前没有世界赛实际结果。
1. 继承的S15历史模型
w(g) ∝ exp(-ln(2)·age/45 - 0.25·patch_gap) × importance(g) × exp(0.8·clip((pre_game_Elo-1500)/400,-1,1)) × event_size^(-0.25) × first_game_factor
V3的17项特征、6组频率岭回归、5组位置岭回归和训练系数完全保留。S1539个历史窗口;前27个选择ridge0.03、残差混合0.75、位置混合0.5。队伍实力用赛前Elo,比赛重要性、参赛队45%混合、第一局1.4、版本距离和45天半衰期均沿用。
S15 shared coefficients · Declared V4 priors
2. 数值与机制改动
patch_delta(c,r) = clip(1.25 × numeric(c,r) + 1.25 × mechanism(c,r) + 1.0 × system(c,r), -1.6, 1.6)
numeric仍逐项采用有利方向log(新/旧)×技能重要性×分路关联;冷却、耗蓝、承伤等反向编码。机制改动保留各自重要性先验,系统类不额外放大。26.19按职业历史版本暴露衰减,26.20直接施加。先完成历史回归和角色掩码,再乘exp(delta),并重新投影。不是把所有英雄增加25个百分点;1.25增加的是版本响应系数。
1.25是固定、未训练的敏感性假设,不代表找到了正确弹性。页面同时列1.0、1.25、1.5;不同英雄随具体数值幅度、技能重要性、机制和分路关联产生不同变化。沿用V3的推推棒急速负方向更正。
3. 职业选手主分路练习
player_counts(c) = Σ eligible_game 2^(-age_days/10)
player_share(c,r) = (player_counts(c,r) + 20 × patched_professional_pick(c,r)/2) / (Σ_c player_counts(c,r) + 20)
practice_candidate(c,r) = 2 × mean_over_19_team_starters(player_share(c,r))
practice_pick = patched_professional_pick + clip(0.05 × (practice_candidate - patched_professional_pick), -0.02, 0.02)
只使用参赛队首发、已核对的公开账号、窗口内单排、实际分路与选手正式分路相同的对局。不同账号按选手合并;先按人平均,避免高局数选手主导。缺失选手恰好贡献职业基线,而不是零。5%是最大混合,实际可信度还由20局伪样本和覆盖率收缩。
新职业分路候选至少3局、至少1名参赛选手;单人练习仍属于弱证据,不会被当成全赛事必选。当前146账号、2361窗口记录、1781主分路、580补位排除;39/95人有可用样本。只有55账号翻页跨过起点,保留历史不全的账号不能声称完整30天。
4. 韩服大师以上分路参考
kr_effective_blend(c) = 0.05 × observed_eligible_kr_games(c) / (observed_eligible_kr_games(c) + 2000)
new_role_share(c) = (1-kr_effective_blend) × current_role_share + kr_effective_blend × observed_eligible_kr_role_share
只重新分配同一英雄现有选取量,不直接把排位选取率搬到世界赛。新KR候选分路需至少500局、占该英雄排位选取至少5%、该分路玩家选取率至少0.25%,且该英雄已有职业选取。424条可见分路之外是未知,缺失仍向职业先验回退;门槛未过的无职业记录分路不启用。
职业参考按每局版本,仅对尚未经历的改动乘exp(有利方向加权log幅度):16.18补26.19+20,16.19仅补26.20,16.20不再补两版。调整后的英雄权重重新缩放为原有效局数,不因加强制造更多可信度;未知版本不做精确修正。韩服没有逐局版本,不额外乘版本倍率。两源均在职业版本先验后小幅混合;没有声称排位变化的因果来源已证明。禁用率没有用排位胜率直接修正,仅受最终总量投影影响。
5. 新分路与BP位置约束
support = historical_role OR qualified_practice_role OR qualified_kr_role
Σ_c pick(c,r)=2; Σ_c ban(c)=10; Σ_r pick(c,r)+ban(c)≤1
mean_BP_step = mean_pick_rank + 6 + 4 × P(pick_rank≥7)
新分路点预测上限0.5个百分点,投影后也检查上限。版本冲击和epsilon本身不能新增分路。无选取时位置为空。排位没有BP顺序,新分路的位置借用职业英雄总体与该职业分路位置的50:50先验,位置未被排位“训练”。整体平均位置按预测分路选取率加权。
6. 误差与验证范围
新增层没有S15误差、训练误差或“提升准确度”数值。S15赛前精确30天职业练习未恢复;仅197条15.18部分韩服快照,缺下路/辅助,不能训练本层。不能把当前S16排位数据放进过去时间窗口,会泄漏未来信息。S15已学习系数保持哈希不变。
基线V3的13个S16窗口/210局:选取RMSE5.3696pp,热度RMSE8.5959pp,英雄分路RMSE2.4542pp,加权选取手数MAE1.4602,加权BP步数MAE2.4612。这些是原V3的回溯误差,不是V4的误差。完整S15训练与末7窗口误差在基线报告。
V4验证包括252份OP.GG原始响应与5张韩服原表重放、UTC窗口、本人身份、实际分路、去重、关闭参考严格回到V3、强版本冲击不能凭空生分路、已生效版本不重复补改动、追加未来/过旧练习记录不改变输入、总量与合法位置矩。80次历史系列赛bootstrap固定排位观测及新增先验,不涵盖排位缺失或参数不确定性。
7. 复刻
python -X utf8 research/scripts/forecast_s16_worlds_v4.py
python -X utf8 research/scripts/render_s16_forecast_v4.py
python -X utf8 research/scripts/audit_s16_forecast_v4.py --skip-raw
node research/scripts/check_s16_dashboard.cjs s16_preparation/outputs_v4
以上从仓库冻结数据复刻,不需要联网。完整来源重放需取得未提交的raw压缩响应后去掉--skip-raw。联网重新采集用collect_s16_solo_reference.py;现有acquisition_config固定窗口,刷新时应另存快照,不覆盖旧数据作未来回测。
Coverage · Role evidence · Audit · Input hashes · Baseline errors
8. 示例(总体世界赛分母)
| Champion | Role | V3 % | V4 % | Pro games / players | KR champion share % |
|---|---|---|---|---|---|
| Lucian | top | 0.0000 | 0.0638 | 8 / 3 | 4.24 |
| Lucian | mid | 0.0000 | 0.1990 | 18 / 5 | 8.20 |
| Lucian | bot | 18.5917 | 17.7782 | 23 / 8 | 87.50 |
| Aurora | top | 0.3351 | 0.3888 | 5 / 2 | 14.28 |
| Aurora | mid | 7.8643 | 8.0454 | 9 / 5 | 84.49 |
| Azir | mid | 1.4818 | 1.4747 | 1 / 1 | 89.83 |
| Tahm Kench | top | 0.0000 | 0.0142 | 1 / 1 | 23.63 |
| Tahm Kench | sup | 1.1627 | 1.1788 | 0 / 0 | 74.04 |