4. 验证数据集构建与划分

现场故障诊断模型能否真正落地,往往不取决于算法多先进,而取决于数据集是否“像现场”。现场数据通常呈现三个棘手特征:类别极不平衡(正常样本占绝大多数,某些故障样本可能只有个位数)、标签稀缺(大量数据无标注,标注依赖专家且成本高)、工况漂移(负载、转速、环境温度变化导致同一故障的特征分布发生偏移)。因此,训练集、验证集、测试集的构建不能简单随机切分,而必须围绕“分布一致性”和“时间外推能力”来设计。

一、划分策略:先按工况分层,再按时间切分

随机切分(如 train_test_split)在现场数据上极易造成“数据泄漏”:同一段连续采集的样本被同时分到训练集和测试集,模型在测试集上表现虚高,上线后迅速失效。推荐采用“工况分层 + 时间块切分”的两级策略。

第一步,按工况标签分层。假设现场数据包含三种典型工况:空载(L0)、中载(L1)、满载(L2),每种工况下又包含正常(N)与若干故障(F1、F2)。先统计每个“工况×状态”组合的样本量,形成分层表。第二步,在每个组合内部按采集时间排序,取前 70% 作为训练集、中间 15% 作为验证集、最后 15% 作为测试集。这样测试集在时间上晚于训练集,能真实反映模型对“未来数据”的泛化能力,也便于观察工况漂移带来的性能衰减。

对于样本量极少的故障类别(例如 F2 仅 12 条),若强行按 70/15/15 切分,测试集只剩不到 2 条,评估结果毫无统计意义。此时应采用“留一法 + 交叉验证”:将稀有故障样本轮流作为验证对象,其余用于训练,最终报告平均指标与最差指标。若某类故障样本少于 5 条,建议不单独划分测试集,而是将其全部纳入验证集,并在报告中明确标注“样本不足,指标仅供参考”。

二、不平衡处理:在训练集上做,验证/测试集保持原始分布

一个常见错误是对整个数据集做 SMOTE 或欠采样后再切分,导致验证集和测试集被人为“平衡”,评估结果偏离现场真实分布。正确做法是:只在训练集内部进行重采样或加权,验证集和测试集严格保持现场原始比例。

具体操作上,可采用“类别权重 + 局部过采样”组合。以三分类为例,正常样本 8000 条、F1 故障 400 条、F2 故障 40 条,则类别权重可设为 wN=1、wF1=20、wF2=200,直接传入损失函数(如 PyTorch 的 CrossEntropyLoss(weight=...))。若使用过采样,仅对 F2 在训练集内复制或生成合成样本至 400 条左右,避免生成过多导致过拟合。验证集仍保留 40 条 F2 的原始分布,这样计算出的 F2 召回率才具有现场参考价值。

三、标签稀缺:主动学习与弱标注结合

现场标注成本高,建议采用“主动学习 + 规则弱标注”的混合流程。先用少量已标注数据训练一个初始模型,再对未标注数据计算预测熵或置信度,挑选熵最高的样本交给专家标注。每轮标注 50~100 条,重新训练并评估,通常 3~5 轮即可显著提升稀有故障的识别率。

对于有明确物理阈值的数据,可先用规则生成弱标签。例如振动烈度超过 ISO 10816 报警线时,先标为“疑似故障”,再由专家复核确认。弱标签样本在训练时赋予较低权重(如 0.3),避免噪声标签主导梯度。需要强调的是,弱标注只能用于训练集,验证集和测试集必须使用专家确认的硬标签。

四、工况漂移:用时间外推测试集量化衰减

工况漂移的验证不能只看随机划分的测试集。建议额外构建一个“时间外推测试集”:取最近一个完整月份的数据,且该月份包含至少一次工况切换(如从 L1 切换到 L2)。用训练好的模型直接推理,观察准确率、F1 和混淆矩阵的变化。若外推测试集上 F1 下降超过 15%,说明模型对工况变化敏感,需要引入工况归一化或在线自适应。

下面这张图展示了从现场原始数据到三类数据集的完整构建路径,重点标出了分层、时间切分、不平衡处理和漂移验证四个关键环节。

现场原始数据 正常 8000 · F1 400 F2 40 · 多工况 ① 工况×状态分层 L0/L1/L2 × N/F1/F2 统计各组合样本量 ② 时间块切分 前70% → 训练集 中15% → 验证集 · 后15% → 测试集 ③ 三类数据集 训练集(可重采样) 验证集(原始分布) 测试集(原始分布) ④ 不平衡处理(仅训练集) 类别权重:wN=1, wF1=20, wF2=200 F2 过采样至 400 条 验证/测试集保持原始比例 ✗ 禁止全局 SMOTE 后再切分 训练集内部处理 ⑤ 标签稀缺应对 主动学习:选高熵样本标注 弱标注:规则生成 + 低权重 0.3 每轮 50~100 条,迭代 3~5 轮 验证/测试集必须用专家硬标签 ⑥ 工况漂移验证 构建时间外推测试集 取最近一个月含工况切换数据 观察 F1 下降幅度 下降 >15% → 需工况归一化/自适应 核心原则:训练集可增强,验证/测试集必须“像现场” 分层保分布 · 时间切分保外推 · 不平衡只在训练集处理 · 漂移用外推集量化 图 4-1 现场数据不平衡、标签稀缺与工况漂移下的数据集构建路径

五、可执行的划分检查清单

在实际项目中,建议按以下清单逐项确认,避免常见陷阱:

检查项 合格标准 常见错误
时间顺序 训练集时间早于验证集,验证集早于测试集 随机打乱后切分,造成数据泄漏
工况覆盖 训练集覆盖所有工况,测试集包含至少一次工况切换 训练集只有 L0,测试集出现 L2
稀有类样本 每类测试样本 ≥ 5 条,否则改用交叉验证 F2 测试集仅 1 条,指标无意义
不平衡处理位置 仅训练集重采样/加权,验证测试保持原始分布 全局 SMOTE 后再切分
标签质量 验证/测试集使用专家确认硬标签 弱标签混入测试集
漂移评估 额外报告时间外推测试集指标 仅报告随机划分指标
实操建议:若现场数据量不足,可先按“工况分层 + 时间切分”建立基线,再通过主动学习逐步补充稀有类标注。每轮新增标注后,固定验证集和测试集不变,仅更新训练集,这样才能横向对比模型迭代效果。测试集一旦确定,在模型定稿前不应反复使用,否则会因“测试集调参”导致指标虚高。

最后需要强调,数据集构建不是一次性任务。随着设备老化、工艺调整或季节变化,现场分布会持续漂移。建议每季度重新评估一次测试集与当前数据的分布差异(如用 KL 散度或简单的特征均值对比),当差异超过阈值时,及时补充新工况样本并重新划分,使验证数据集始终与现场保持同步。