项目

一般

简介

行为

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 更新于 5 天 之前 · 2 修订