改进的多任务学习GPR模型 -by keefecui
问题描述
原始模型在交叉验证中表现尚可(R²约0.6),但在全量数据上训练后发现不同的输入都预测得到基
本一样的输出(包括均值和标准差),导致模型实际上无法区分不同输入的性能差异。
改进方法
针对GPR模型在全量数据上预测结果几乎相同的问题,实施了以下改进:
1. 核函数改进
复合核函数 :使用Matern核(nu=1.5) + RBF核 + 线性核的组合,增强模型表达能力
调整多任务核的rank :从2降低到1,减少过拟合风险
添加白噪声核 :增强数值稳定性
2. 均值函数改进
线性均值 :从常数均值改为线性均值,更好地捕捉数据趋势
3. 特征工程
添加物理意义特征
体积能量密度(VED)
功率密度(PowerDensity)
冷却速率近似(CoolingRate)
4. 训练过程优化
学习率调度 :使用余弦退火学习率调度
梯度裁剪 :防止梯度爆炸
增强正则化 :提高权重衰减,添加L2正则化
最佳模型保存 :保存训练过程中的最佳模型
5. 不确定性建模
任务特定噪声 :为每个任务设置单独的噪声参数
改进的似然函数 :使用更灵活的多任务高斯似然
使用方法
训练模型
python 2_UTSandYS_Train.py
训练过程会生成以下文件:
模型权重:
UTSandYS_multitask_gp_model.pth
似然函数:
UTSandYS_multitask_gp_likelihood.pth
预处理器:
UTSandYS_preprocessor.pkl
标准化器:
UTSandYS_scaler_uts.pkl
,
UTSandYS_scaler_ys.pkl
诊断图表:
training_progress.png
,
scatter_plots.png
预测新数据
python 3__UTSandYS_Predict_and_diagnose.py
可以在脚本中修改
input_df
来预测不同的输入参数。
模型评估
改进后的模型在以下方面有显著提升:
1. 预测差异性 :不同输入参数的预测结果有明显差异
2. 预测准确性 :全量数据上的R²值提高
3. 不确定性估计 :更合理的置信区间和标准差
4. 特征重要性 :可以分析各特征对预测的贡献