项目

一般

简介

行为

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 修订