CR-002-M3a里程碑交付物语义变更 » 历史记录 » 修订 1
修订 1/2
| 下一页 »
Huarui Lin, 2026-04-12 19:18
CR-002: M3a 里程碑交付物语义变更(标准化与共线性归属修正)¶
| 字段 | 内容 |
|---|---|
| CR ID | CR-002 |
| 标题 | Step 3 产出特征由“标准化后”变更为“原始值”,标准化降级为可复用工具函数 |
| 发起人 | Henry Lin (PM) |
| 日期 | 2026-04-11 |
| 状态 | ✅ Approved |
| 影响范围 | M3a Done 标准、规约 4.3/4.4 执行时机、Step 5 训练流水线 |
| 1. 变更描述 | |
| 原文(项目章程 M3a Done 标准): |
② 首日(数据集第一天)所有标准化特征输出 NULL(T-1 Shift 验证)
变更为:
②features.parquet内所有特征必须为原始值;test_feature_engineering.py必须包含针对标准化工具函数的单测,验证其输入首日数据时输出全 NULL(T-1 Shift 验证在函数级闭环,而非产物级)
2. 变更原因(根因追溯)
规约 5.2 规定“每一折的训练集内部独立执行:截面标准化 → 共线性筛选”。若 Step 3 直接产出标准化特征,将导致训练时使用全局统计量,严重违反时序隔离原则(触发风险 R-3 未来数据泄露)。因此,标准化与共线性剔除的执行权必须移交至 Step 5,Step 3 仅负责暴露底层纯函数。
3. 影响分析
| 受影响模块 | 影响说明 | 应对措施 |
|-----------|---------|---------|
|feature_engineering.py| 不再直接产出标准化后的列 | 暴露apply_cross_section_standardization(df: pl.DataFrame, stats_df: pl.DataFrame) -> pl.DataFrame供 Step 5 调用 |
|standardization_params.parquet| 语义变更为“全局基准预览” | 文件头部增加is_production_ready: false标识 |
|trainer.py(Step 5) | 增加调用标准化函数的逻辑 | 逐折调用 Step 3 暴露的函数,产出真正用于训练的参数 |
由 Huarui Lin 更新于 6 个月 之前 · 1 修订