实验一:乘员舱降温数据初探与预处理

实验目的: - 熟悉乘员舱瞬态降温项目的数据集结构和内容,了解主要变量(如光照强度、外部温度、车速、各风口风速/温度、乘客呼吸点温度等)及预测目标(乘员舱内部温度随时间的变化曲线)。

- 掌握时间序列数据的基本清洗方法,包括缺失值填补、异常值检测与处理。

- 深刻体会数据预处理在机器学习项目中的重要性,认识到数据准备通常占据整个项目约 80% 的时间。为后续建模打下高质量的数据基础。

实验资源要求:

- 数据: 已提供的乘员舱环境与温度时序数据集(包括传感器采集的舱内外环境参数和对应的舱内温度记录)。数据量较大,需保证运行环境有充足内存和存储空间。

- 软件环境: Python 3.x,Jupyter Notebook(可选),Pandas、NumPy等数据处理库,Matplotlib/Seaborn用于可视化。

- 计算环境: 配备高性能计算能力的计算机或服务器(多核CPU及充足内存),确保可以高效处理和分析大规模数据。

实验时长: 約3小时

实验内容: 本实验通过对原始数据集进行探索性分析和预处理,提升数据质量以服务后续建模。首先,学生将加载乘员舱降温数据集,对数据结构和各字段含义进行理解[1]。典型数据字段包括光照强度、车外温度、车辆速度、各空调出风口的风速与温度,以及乘员舱内关键位置(如乘客呼吸点)的温度等。这些变量共同影响乘员舱温度的动态变化过程,是建立预测模型的重要输入。接着,学生将对原始数据进行统计分析,计算各变量的基本统计量,绘制时间序列曲线,初步了解温度随时间的变化趋势以及环境因素的作用。数据探索阶段还需关注数据质量,例如是否存在缺失值或异常尖刺。高质量的数据是准确建模的前提,研究表明数据准备通常耗费分析师 最多达80% 的时间,因此本实验重点在于打好数据“地基”。

图1 各变量缺失值计数(原始)

在完成基本认识后,学生将对数据进行清洗和预处理。首先处理缺失值,判断缺失模式并选择合理的方法填补(如线性插值、前后值填充或删除记录等)。然后检测异常值,可采用统计方法(如3σ原则)或基于物理常识判断(例如光照强度不可能为负、温度变化不应瞬间超出合理范围)。对于检测出的异常,根据情况进行修正:极端错误值可以插值平滑或剔除,以免对模型训练产生不良影响。最后,将清洗后的多源数据按时间对齐整合,确保各种传感器数据在统一时间线上匹配。这一步可能需要根据时间戳对不同来源的数据表进行合并,得到完整的时序输入-输出对。经过预处理,学生将得到一个干净、一致的数据集,为后续特征工程和模型训练做好准备。

图2 舱内温度 3σ 异常点标注

实验步骤:

1. 数据导入与概览(Ingestion & Schema Profiling)

技术要点(多源+强校验):

  • 文件完整性与一致性:对每个源文件计算 size/hash/rowcount;自动识别压缩格式(.gz/.zip)、CSV 方言(分隔符/转义/引号)、BOM;统一字符集(优先 UTF-8),遇到 GBK/ANSI 触发重编码试读与告警。

  • 强类型解析与模式校验:用 schema(如 pandera/JSON-Schema) 显式约束字段名、单位、dtype(Float32/Int64[NA]/category/string[pyarrow]),并执行:

    • 单位统一:温度统一℃(若摄氏/华氏混存,基于阈值与元数据自动侦测并转换),光照统一 W/m²(若为 lux,按配置/车窗透光系数估算换算或单列双单位并标注)。

    • 取值域静态规则:如 speed ∈ [0, 200] km/h,sunlight ≥ 0,vent_temp ∈ [0, 30]℃,违反者入“硬异常”队列。

  • 时间戳治理:统一时区(建议全部归一到 UTC 并保留原始本地时区列),校验单调递增性;统计 Δt 分布(直方图+众数)以反推采样频率;检测重复/倒序/跳秒;为不同源打上 source_id/session_id。

  • 内存与存储优化:大表先 lazy read(chunksize)抽样做初检;列按方差与基数降精度/分类化;对长文本字段进行哈希映射(保留字典),形成轻量训练视图。

  • 泄漏前置检查:明确目标列(舱内温度/曲线)与输入特征清单;禁止在训练集构造阶段使用任何未来信息(如滑窗标签必须严格右开区间)。

验收口径: 通过全部 schema 校验,时间戳单调性≥99.99%,单位/类型冲突为 0,重复行率 < 0.1%。

产出物: data_catalog.json(字段字典+单位+dtype+合法域),ingestion_report.html(完整性与异常摘要),首版“特征—目标映射表”。

2. 数据可视化探索(Exploratory & Multiscale Diagnostics)

技术要点(多尺度+多视角):

  • 单变量多尺度视图:对每个关键变量绘制原始曲线/滚动均值(τ=30s, 300s)/滚动标准差;做 STL 分解(趋势/季节/残差)观察光照与温度的日内节律与随机成分。

  • 相关与时滞结构

    • 计算 ACF/PACF(舱内温度)识别自相关阶数;

    • 计算 Cross-Correlation Function(如 vent_speed → cabin_temp,sunlight → cabin_temp)估计物理反应时滞(例如降温相对送风的响应延迟)。

  • 分布与稳健统计:直方图/核密度 + 箱线/violin + Hampel/MAD 稳健 Z 分数对比 3σ,定位厚尾与尖峰;绘制Q-Q 图检视正态性。

  • 多变量结构:Spearman 相关热图 + 基于互信息的非线性依赖;Hexbin/密度散点(外温 vs 初始舱温、vent_speed vs 温降斜率)验证物理直觉。

  • 缺失与离群“热图”:按时间轴绘制缺失矩阵(run-length 分布),并叠加异常标注(尖刺/越界/跳变),识别工况段落(空调切换、停车暴晒、车速高/低区)。

  • 变点检测:应用 PELT/BOCPD 等方法标出制度切换点(AC 开启、风量档位变化),为后续分段建模提供依据。

验收口径:需形成可复现实验图册(至少:单变量多尺度、相关/时滞、稳健 vs 经典离群对比、缺失热图、变点标注),并给出3 条可检验假设(如“高光照+低速→初温更高且降温更慢”)。

产出物: eda_plots/ 图集,eda_notes.md(结论+待验证假设+风险清单)。

3. 缺失值处理(Missingness Characterization & Imputation)

技术要点(机制识别+分情景插补):

  • 缺失机制剖面:计算缺失率时序曲线与共现相关(缺失是否集中在高光照/低速/特定时段);区分 MCAR/MAR/MNAR(例如传感器过热停机→MNAR)。

  • 策略分层

    • 短缺口(≤5×Δt):优先 时间插值(线性/样条/PCHIP 保形)+ 邻域约束(不跨越物理上下界)。

    • 中等缺口(5×Δt–5min):卡尔曼平滑/局部 ARIMA;或同源冗余(多风口取加权/近邻回归)补齐。

    • 长缺口/系统级停机:保留 NaN + 生成缺失掩码列供模型使用;必要时剔除受影响窗口(训练样本构造时避免泄漏)。

    • 结构性缺失(MNAR):不做数值臆造;以“状态特征”(如 sensor_down=1)显式进模型,或采用多重插补保留不确定性传播。

  • 不确定性管理:为被插补位置计算方差/置信区间(如卡尔曼协方差、GP 预测方差),并输出 imputed_flag/impute_method 及 impute_uncertainty。

  • 分组一致性:按 session_id/vehicle_id 分组拟合插补器,防止跨车辆/场景的信息污染;所有插补仅基于历史侧(右开区间)以避免未来信息泄漏。

验收口径: 插补后连续性与物理合理性通过;缺失掩码与方法标识覆盖率 100%;对关键变量插补段 RMSE(与平滑真值/冗余源)降低≥30%。

产出物: imputation_policy.yaml(策略与阈值),插补前后差异报告(含不确定性分布),带 *_mask 与 *_method 的数据表。

4. 异常值检测与处理(Outlier & Event Correction)

技术要点(多模型融合检测+物理约束修复):

  • 多通道检测框架(并行打分、后融合):

    • 统计规则:3σ、IQR、稳健 Z(MAD)、Hampel(滚动窗);

    • 时序结构:Δ/Δ² 跳变检测、滚动 Z、STL 残差阈值、变点一致性;

    • 物理规则:值域(负光照=不可能)、增速界(|dT/dt| ≤ 物理上限)、跨传感一致性(vent_speed=0 且 vent_temp≈外温时,舱温不应瞬降)。

    • 机器学习:Isolation Forest/One-Class SVM/LOF 对多变量联合异常赋分(仅用于辅助标注,不直接自动改写)。

  • 分类型修复

    • 尖刺/毛刺:用邻域中位数/LOESS 局部回归替换;保留原值到 *_raw 以备审计。

    • 越界/不可能值:置 NaN → 按第 3 步策略插补;同时计入“硬异常计数”。

    • 漂移/偏置(整段传感器偏移):基于与冗余源/标定段的偏置回归统一平移;写入 calibration_note。

  • 时滞与同步异常:若发现系统性时滞(如风速峰值领先舱温响应 τ 秒),以交叉相关估计 τ,记录在 alignment_lag(不在此步平移,留至第 5 步统一对齐)。

  • 事后验证:修复后重绘关键曲线与导数,确保无锯齿/无振铃;复算分布与稳健统计,异常占比显著下降。

验收口径: 异常识别召回率≥95%(以人工抽检为准);修复后物理约束全部满足;关键变量的稳健方差(MAD)降低≥20%。

产出物: outlier_report.jsonl(逐条记录:原因码、方法、置信度),correction_changelog.md(可回溯变更)。

5. 数据对齐与整合(Alignment, Resampling & Feature Derivation)

技术要点(多频率+多源时滞对齐):

  • 统一时间基准:确定主时间网格(如 1s);所有源按 asof(带容差,如 ±0.5s)对齐到主网格;记录落点误差(snap_delta)。

  • 多速率/异步采样

    • 反采样与抗混叠:高频流先做低通滤波再降采样;低频流采用前向保持+ 事件驱动补点;保留原采样频率 fs_* 列。

    • 跨源时滞校正:基于第 2 步的 CCF/变点对齐,计算各源相对主流的最佳滞后 τ*(可分场景/分段);以不改动原始索引为前提,在特征派生时引入滞后特征(如 vent_speed_lag_τ*)。

  • 一致性与去重:处理重复时间戳(聚合为中位/均值,并计 dup_count);消除跨源冲突(单位/标度);确保索引单调、无缺洞(对齐后再补)。

  • 物理导出特征(例):

    • 送风强度指数:vent_intensity = f(vent_speed, vent_temp, ext_temp)(可用 vent_speed × (ext_temp - vent_temp) 近似换热“驱动力”)。

    • 辐照负荷指数:solar_index = sunlight × exposure_factor(若缺窗户参数,保留相对量级并注明)。

    • 阶段标签:依据变点生成 phase ∈ {热浸, 快速降温, 渐进稳态};再派生分段斜率、阶段时长等。

    • 会话特征:session_id 粒度统计(起始温度、外温均值、平均车速)。

  • 数据泄漏防护:确保任何滞后/滚动特征仅使用历史窗口;训练/验证/测试按时间切分并对齐 session_id,避免同一会话跨集合。

验收口径: 对齐失败率 < 0.1%;snap_delta 中位数 < 0.2s;引入滞后后关键对相关系数提升显著(如 |ρ|↑≥0.1)。

产出物: aligned_dataset.parquet(含派生特征/时滞列/质量标记),alignment_metrics.csv(CCF、snap 误差、时滞表),feature_derivation.md(可复现公式与参数)。

6. 结果保存(Versioned Artifact & Reproducibility)

技术要点(版本化+可复现):

  • 多格式落盘:主数据以 Parquet(zstd/snappy)(压缩、高效 IO);同时导出 CSV(互操作)与训练子集 npz/pickle;元数据 JSON 记录处理流水线(时间、软件版本、随机种子、关键参数)。

  • 质量门控(Great Expectations/自定义断言):保存前自动跑校验套件:缺失率阈值、值域/增速/单调性、采样频率、重复行、标志列一致性(*_mask/*_method/dup_count/snap_delta),未通过即阻断发布。

  • 版本与追溯:采用 data_version = YYYYMMDD.HHMM 命名;生成 CHANGELOG.md 对比上版(分布漂移、样本量变化、异常/缺失比率变化);产出数据卡(Data Card)(用途、覆盖范围、局限性、公平性/偏差风险)。

  • 原子写与校验:先写临时文件后原子重命名;生成 SHA256 校验;提供小样本 head_1k.csv 便于人工抽核。

  • 切分索引固化:保存 split_indices.json(train/val/test 的时间/会话范围与行号),保证后续实验完全复现同一切分。

验收口径: 通过所有质量断言;与上版相比,无非预期分布漂移(以 PSI/KL 或均值±3σ 比较);产物可在全新环境一键重现同样统计量。

产出物:

  • 数据:aligned_dataset.parquet、aligned_dataset.csv、train_val_test_indices.json;

  • 元数据:processing_meta.json、data_card.pdf/html、CHANGELOG.md;

  • 校验:ge_validation_report.html 或自定义 validation_report.md。

图3 出风口风速:原始 vs 清洗+平滑

最后更新于