Files
yrtv/6D_README.md

111 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 选手能力六维图计算原理 (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`) 进行可视化渲染。