cs2_dataset_demo
收藏资源简介:
HLTV CS2 Demos Dataset 是一个包含从 HLTV.org 抓取的 Counter-Strike 2 比赛演示数据集,附带每张地图的紧凑分析 JSON。每个元数据 Parquet 文件中的一行代表一个 .dem 文件(即一张比赛的 CS2 地图)。数据集包含丰富的元数据,如地图名称、补丁版本、回合数、玩家统计数据(如 KAST、ADR、评分等),以及每回合的胜负和结束原因。数据集还包含 .dem 二进制文件和每场比赛的 meta.json 文件。数据集的规模在 10 万到 100 万之间,适用于电子竞技分析、机器学习研究等场景。数据集的使用示例包括通过 DuckDB 查询、使用 `datasets` 库进行流式处理,以及通过 `hf` CLI 进行部分下载。数据集的使用者需遵守原始比赛的组织者条款。
数据集概览
HLTV CS2 Demos Dataset 是一个用于分析《反恐精英2》(CS2)竞技比赛的数据集,包含从 HLTV.org 抓取的比赛demo(.dem文件)以及紧凑的地图级分析JSON文件。
基本信息
- 许可证: CC-BY-4.0
- 语言: 英语
- 标签: counter-strike, csgo, cs2, esports, hltv, demos
- 数据规模: 100,000 到 1,000,000 条记录
- 配置: 默认配置,训练集数据存储在
data/metadata-*.parquet文件中
数据结构
数据集中每一行代表一个 .dem 文件(即一张已进行的CS2地图)。一个Bo3赛事最多贡献3行数据(2-0或2-1)。
目录结构
data/ # 元数据Parquet文件 metadata-<machine>-<uuid>.parquet demos/ shard-<machine>-<uuid>/ <match_id>/ meta.json # HLTV侧车文件(队伍、赛事、demo ID等) <demo1>.dem # Bo3地图1 <demo1>.analysis.json <demo2>.dem <demo2>.analysis.json <demo3>.dem # 若Bo3以2-0结束则不存在 <demo3>.analysis.json
模式(每行包含)
| 高级列 | 类型 | 来源 |
|---|---|---|
file_name |
string | .dem 文件路径 |
analysis_file_name |
string | <demo>.analysis.json 路径 |
meta_file_name |
string | 每场比赛的 meta.json 路径 |
match_id |
string | HLTV数字ID(同一Bo3中的各图一致) |
event, team1, team2 |
string | HLTV /results 行数据 |
score1, score2 |
int32 | 整个Bo3的比分 |
format |
string | bo3 / bo5 或单场比赛的地图名 |
match_date |
timestamp | UTC时间,来自HLTV |
map_index |
int32 | 该地图在Bo3中的位置(1、2、3) |
map_name |
string | 例如 de_overpass |
patch_version |
string | CS2构建版本,如 "14141" 对应 1.41.4.1 |
rounds_played |
int32 | 该地图实际进行回合数 |
winner_side |
string | ct 或 t |
嵌套列(完整分析)
| 列 | 类型 |
|---|---|
header |
struct<map_name, patch_version, server_name, network_protocol, demo_version_name> |
match |
struct<map_name, patch_version, tick_rate, first_tick, last_tick, total_ticks, rounds_played, score_ct, score_t, winner_side> |
teams |
list<struct<side_start, players: list<struct<name, steamid>>>> |
players |
list<struct<name, steamid, side, n_rounds, kills, headshots, deaths, assists, hs_rate, adr, dmg, kast, kast_rounds, rating, impact>> |
rounds |
list<struct<round_num, start, freeze_end, end, official_end, winner, reason, bomb_plant, bomb_site, duration_ticks>> |
kills |
list<struct<tick, round_num, attacker_name, attacker_steamid, attacker_side, victim_name, victim_steamid, victim_side, assister_name, assister_steamid, weapon, headshot, distance, noscope, thrusmoke, penetrated, attackerblind, dmg_health, hitgroup>> |
meta |
struct(镜像自磁盘上的 meta.json) |
访问方式
-
使用 DuckDB 直接查询(无需下载)
- 通过
hf://路径在 DuckDB ≥ 0.10.3 中运行SQL。 - 示例:
FROM hf://datasets/blanchon/cs2_dataset_demo/data/*.parquet LIMIT 3;
- 通过
-
使用 Hugging Face
datasets库流式读取- 代码示例:
load_dataset("blanchon/cs2_dataset_demo", split="train", streaming=True)
- 代码示例:
-
使用
HfFileSystem流式读取单个文件- 可随机访问 Parquet 行组或
.analysis.json文件。
- 可随机访问 Parquet 行组或
-
使用
hfCLI 部分下载- 支持按模式下载,如只下载元数据或特定比赛的demo文件。
示例工作流
- 使用SQL筛选出感兴趣的比赛(基于元数据)。
- 仅下载匹配的
.dem文件进行本地分析。
数据收集与许可
- Demo 从 HLTV 的公共
/download/demo/<id>端点镜像。 - 最终用户有责任遵守原始赛事方的条款。
- 该数据集用于CS2竞技比赛的研究、分析和机器学习用途。




