LSTM模型仅精准预测感染者颗粒物数值,其余预测异常求解决方案
针对感染者/易感者可吸入颗粒物预测问题的解决方案
关于拆分模型的可行性
拆分模型本身是合理的思路,但你之前尝试后没成功,大概率是拆分后的数据处理、模型适配没做到位,而非思路错误。感染者和易感者的数值分布差异极大,分开建模能让模型各自专注于不同的数据分布,理论上能缓解模型被高值感染者主导的问题。
具体优化步骤
1. 先验证数据分布推测
先量化感染者与易感者的数值差异:
- 统计两者的均值、中位数、方差、极值,绘制箱线图对比分布
- 计算每个案例中感染者数值与易感者均值的倍数关系,确认是否存在数量级差距
这一步能明确问题根源,为后续调整提供依据。
2. 优化拆分模型的数据集构建
- 感染者模型:提取所有案例中「感染者对应列的数值」作为目标变量,输入特征保留原案例的所有参数
- 易感者模型:不要直接拆分列,而是将每个案例中的6个易感者数值都拆成独立样本——比如一个案例对应6条易感者样本,每条样本的输入是该案例的参数,目标是对应易感者的数值。这样能大幅增加易感者的训练样本量,避免模型因样本不足拟合差。
3. 约束模型输出为非负值
易感者模型出现负数输出,核心是没有对输出做约束:
- 在模型输出层添加激活函数:比如用
Softplus(平滑版ReLU,输出恒正),或LeakyReLU(避免ReLU在0处梯度消失,同时限制输出下限) - 自定义损失函数时加入负值惩罚:如果预测值
y_pred < 0,则损失项加上k * abs(y_pred)(k为大于1的系数,比如5-10,根据实际情况调整),强制模型规避负值
4. 调整损失函数平衡两类样本的权重
之前用的MSE、MAE会被高值感染者的误差主导,导致易感者的学习优先级被压低:
- 采用加权损失:给易感者样本的损失分配更高权重,比如易感者损失乘以2-5(根据数据差异程度调整),让模型更关注易感者的预测误差
- 对目标值做归一化:按感染者/易感者分别做归一化(比如将感染者数值除以其最大值,易感者数值除以自身最大值),缩小两类数据的数值差距,让损失函数对两类样本的误差更敏感
5. 数据与模型结构适配
- 易感者数据若普遍偏低、噪声大,可先做平滑处理(比如滑动平均),或增加特征工程(如加入环境参数:通风量、空间体积等,如果数据集包含的话)
- 调整模型容量:感染者模型可适当增加层数/神经元数(适配高变异性数据),易感者模型用更简单的结构(比如1-2层全连接)+ 正则化(Dropout、L2正则),避免过拟合
总结
拆分模型能解决问题,但需要配套调整数据集构建方式、输出约束、损失函数权重等环节。先从验证数据分布入手,再针对性优化拆分后的模型训练流程,逐步调整就能改善易感者的预测效果。
内容的提问来源于stack exchange,提问作者kailak
相关产品推荐
相关产品推荐

