# 选手能力六维图计算原理 (Six Dimensions Calculation) 本文档详细介绍了 YRTV 系统中选手能力六维图(Radar Chart)的计算原理、数据来源及具体公式。 ## 概述 能力六维图通过六个核心维度全面评估选手的综合实力: 1. **BAT (Battle / Aim)**: 正面交火与枪法能力 2. **STA (Stability)**: 表现稳定性与抗压能力 3. **HPS (High Pressure / Clutch)**: 关键时刻与残局能力 4. **PTL (Pistol Specialist)**: 手枪局专项能力 5. **SIDE (T/CT Preference)**: 攻防两端的均衡性与影响力 6. **UTIL (Utility)**: 道具使用效率与投入度 所有指标在计算前均会进行归一化处理(Normalization),映射到 0-100 的评分区间,以便于横向对比。 --- ## 详细计算公式 注:`n(col)` 表示对该列数据进行 Min-Max 归一化处理。 ### 1. BAT - 正面交火 (Battle) 衡量选手的基础枪法、击杀效率及高水平对抗能力。 **权重公式:** ```python Score = ( 0.25 * n('Rating') + # 基础 Rating 0.20 * n('KD_Ratio') + # 击杀死亡比 0.15 * n('ADR') + # 回合均伤 0.10 * n('Duel_Win_Rate') + # 1v1 对枪胜率 0.10 * n('High_Elo_KD_Diff') + # 高分局表现差值 (抗压) 0.10 * n('Multi_Kill_Avg') # 多杀能力 (3k+) ) ``` ### 2. STA - 稳定性 (Stability) 衡量选手表现的波动性以及在顺风/逆风局的发挥。 **权重公式:** ```python Score = ( 0.30 * (100 - n('Rating_Volatility')) + # 评分波动性 (越低越好) 0.30 * n('Loss_Rating') + # 败局 Rating (尽力局表现) 0.20 * n('Win_Rating') + # 胜局 Rating 0.10 * (100 - abs(n('Time_Corr'))) # 状态随时间下滑程度 (耐力) ) ``` ### 3. HPS - 关键局 (High Pressure) 衡量选手在残局、赛点等高压环境下的“大心脏”能力。 **权重公式:** ```python Score = ( 0.30 * n('Clutch_1v3+') + # 1v3 及以上残局获胜数 0.20 * n('Match_Point_Win_Rate') + # 赛点局胜率 0.20 * n('Comeback_KD_Diff') + # 翻盘局 KD 表现 0.15 * n('Pressure_Entry_Rate') + # 逆风局首杀率 0.15 * n('Rating') # 基础能力兜底 ) ``` ### 4. PTL - 手枪局 (Pistol Specialist) 衡量选手在手枪局(Round 1 & 13)的专项统治力。 **权重公式:** ```python Score = ( 0.40 * n('Pistol_Kills_Avg') + # 手枪局场均击杀 0.40 * n('Pistol_Win_Rate') + # 手枪局胜率 0.20 * n('Headshot_Kills_Avg') # 场均爆头击杀 (手枪局极其依赖爆头) ) ``` ### 5. SIDE - 攻防偏好 (Side Preference) 衡量选手在 T (进攻) 和 CT (防守) 两端的均衡性与统治力。 **权重公式:** ```python Score = ( 0.35 * n('CT_Rating') + # CT 方 Rating 0.35 * n('T_Rating') + # T 方 Rating 0.15 * n('CT_First_Kill_Rate') + # CT 方首杀率 (防守前压/偷人) 0.15 * n('T_First_Kill_Rate') # T 方首杀率 (突破能力) ) ``` ### 6. UTIL - 道具 (Utility) 衡量选手对道具的投入程度(购买频率)以及使用效果(伤害/白)。 **权重公式:** ```python Score = ( 0.35 * n('Usage_Rate') + # 道具购买/使用频率 0.25 * n('Avg_Nade_Dmg') + # 场均手雷/火伤害 0.20 * n('Avg_Flash_Time') + # 场均致盲时间 0.20 * n('Avg_Flash_Enemy') # 场均致盲敌人数 ) ``` --- ## 数据更新机制 所有特征数据均由 ETL 流程 (`ETL/L3_Builder.py`) 每日自动计算更新。 - **源数据**: `fact_match_players`, `fact_round_events`, `fact_rounds` 等 L2 层事实表。 - **存储**: 计算结果存储于 `database/L3/L3_Features.sqlite` 的 `dm_player_features` 表中。 - **展示**: 前端 Profile 页面读取该表数据,并结合队内分布 (`radar_dist`) 进行可视化渲染。