Claude-skill-registry-data mcm-c-coder

Coding specialist for COMAP MCM/ICM Problem C (C题数据处理与建模落地). Use when you need to implement reproducible data pipelines, feature engineering, model training/validation, bootstrap intervals, and figure/table generation.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry-data
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry-data "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/mcm-c-coder" ~/.claude/skills/majiayu000-claude-skill-registry-data-mcm-c-coder && rm -rf "$T"
manifest: data/mcm-c-coder/SKILL.md
source content

MCM/ICM C题代码手(数据处理与建模落地)

目标

  • 把题面附件数据变成“可复现的分析流水线”(读取→清洗→特征→训练→评估→出图/表)。
  • 确保:无泄露、可重复、可解释、输出能直接用于论文。

默认技术栈(可根据项目约束调整)

  • 包管理:
    uv
    (默认)
  • Python:
    pandas/numpy/scipy
  • 建模:
    scikit-learn
    (通用),必要时
    statsmodels
    (统计推断)
  • 可视化:
    matplotlib/seaborn

默认项目骨架(建议)

目标:让“拿到题面数据 → 一键复现图表/表格/区间”的路径最短。

  • data/raw/
    :题面原始附件(只读)
  • data/processed/
    :清洗后的数据(可复现生成)
  • src/
    :特征、训练、评估核心逻辑
  • scripts/
    :可执行入口(例如
    scripts/run_all.py
  • outputs/figures/
    :论文用图(png/pdf)
  • outputs/tables/
    :论文用表(csv/tex)
  • outputs/predictions/
    :预测与区间结果(csv)

uv 依赖管理(默认约定)

  • 使用
    pyproject.toml
    管理依赖,
    uv.lock
    锁定版本。
  • 依赖分组建议:
    • runtime
      pandas numpy scipy scikit-learn matplotlib seaborn
    • dev
      ruff black
      (可选)

可复现要求:报告中出现的任何图表/表格,必须能由

uv
环境运行脚本生成。

工作流

  1. 建立数据入口(I/O 层)

    • 读取 csv/tsv/xlsx 时固定:编码、缺失值标记、日期解析、dtype。
    • 对每个原始文件输出:行数、列数、主键唯一性、时间范围。
  2. 数据清洗(Clean)

    • 统一:列名风格、单位、时区/日期格式。
    • 处理:
      • 重复(按主键去重或聚合)。
      • 缺失(删除/插补/单独类别/用模型可接受的方式)。
      • 异常(winsorize/截断/规则过滤)。
  3. 特征工程(Features)

    • 时间序列/事件序列:滚动窗口、滞后项、变化率、累计量。
    • 类别:one-hot/target encoding(注意泄露)。
    • 文本(如 2020C):TF-IDF/情感词典/简易主题(优先轻量可解释)。
  4. 切分与验证(No Leakage)

    • 时间序列:滚动窗口验证(不要随机打乱)。
    • 结构化独立样本:train/valid/test + CV。
    • 任何“当天决策”题(如交易策略):严格使用
      <= t
      数据。
  5. 训练与基线对比

    • 至少实现:
      • baseline 模型(简单稳健)。
      • improved 模型(更强但仍可解释)。
    • 输出统一对比表:指标均值 + 波动(std 或区间)。

5.1 实验记录(Minimal Reproducibility)

  • 固定并输出:随机种子、数据版本(文件名+时间戳)、特征列表、训练/验证切分规则、关键超参。
  • 强制保存:
    • 训练配置(json/yaml/py dict 皆可)
    • 关键中间产物(清洗后数据、特征矩阵索引、预测结果)
  1. 不确定性区间(推荐 bootstrap)
    • 对预测或性能指标做 bootstrap:
      • 输出 90%/95% 区间。
      • 明确 resampling 单位(行/天/比赛/国家等),避免破坏相关结构。

6.1 炫技模块(选做,但必须“能复现 + 能验收 + 能成图”)

  • 原则:每加一个高级模块,至少多产出 1 张图/1 张表/1 个区间,并能在报告中解释“带来什么改进”。
  • 时间序列/策略题:Rolling Origin (Time Series CV)
    • 做法:训练集永远只用过去,测试点随时间滚动。
    • 交付物:不同窗口/步长下的误差箱线图或均值±区间。
  • 分布无关预测区间:Conformal/Ensemble Interval
    • 做法:用校准集残差构造区间(避免强分布假设)。
    • 交付物:empirical coverage(覆盖率)+ 平均区间宽度。
  • 变化点检测(Change Point)
    • 做法:对关键序列(得分差、胜率、热度、价格收益等)做变化点标注。
    • 交付物:变化点标注图 + 变化点前后特征差异表。
  • 概率校准(Calibration)
    • 做法:若输出概率/风险,补充 calibration curve 或 reliability diagram。
    • 交付物:Brier/LogLoss + 校准曲线。
  • Ablation / Sensitivity
    • 做法:删除关键特征/改变关键超参/改变切分策略,观察性能与区间变化。
    • 交付物:消融对比表(含区间)。
  1. 出图出表(论文友好)
    • 统一图风格:字号、线宽、配色、注释。
    • 每张图必须能回答一个子问题(不要炫技)。
    • 输出:
      • 关键结果图(趋势/对比/重要性)。
      • 数据质量图(缺失热力图/异常分布)。

质量门槛(交付前自检)

  • 同一份代码重复运行结果一致(固定随机种子/版本)。
  • 训练/验证划分方式在报告中可解释且无泄露。
  • 所有图表都有标题、轴标签、单位、数据来源(题目附件/外部数据)。
  • 如使用“炫技模块”:必须能一键复现到图表与数值(不要只在正文描述)。
  • 默认交付口径:
    • 图:
      outputs/figures/
    • 表:
      outputs/tables/
    • 预测/区间:
      outputs/predictions/