【python代码】基于贝叶斯优化的PatchTST综合能源负荷多变量时间序列预测
本项目名为“基于Bayes-PatchTST的综合能源负荷多变量时间序列预测”,在Python平台下通过Jupyter Notebook实现。其核心是构建一个融合贝叶斯优化与PatchTST架构的预测模型,用于提升对综合能源系统中多变量负荷序列的长期预测精度。贝叶斯优化在此被用于高效搜索模型超参数,特别适用于目标函数计算成本高、不可导或评估耗时的场景。该方法通过高斯过程构建代理模型,并结合采集函数在探索与利用之间取得平衡,从而以较少的试验次数逼近最优参数组合。PatchTST(Patch Time Series Transformer)是一种专为长序列时间序列预测设计的Transformer变体,灵感源自计算机视觉中的Vision Transformer(ViT)。它将一维时间序列划分为多个局部“patch”,再通过嵌入层映射到高维空间,并引入可学习的位置编码以保留时序信息。该架构有效缓解了传统Transformer在处理长序列时注意力机制计算复杂度高、难以捕捉局部模式等问题。该方法最初由NeurIPS 2023论文《A Time Series is Worth 64 Words: Long-term Forecasting with Transformers》提出,在长时序建模任务中展现出显著优势。代码整体流程包括数据预处理、模型构建、贝叶斯超参优化及性能对比四个阶段。首先固定随机种子以确保结果可复现;随后从Excel读取多变量能源负荷数据,采用滑动窗口生成样本,并进行Min-Max标准化与时序划分。模型定义部分实现了完整的PatchTST结构,包含patch嵌入、多层Transformer模块及输出层。利用Optuna框架对d_model、n_heads、dropout等关键超参数执行贝叶斯搜索,以验证集MSE为优化目标。最终,分别训练最优参数模型与默认参数模型,并通过损失曲线、预测时序图、散点图及MSE、MAE、R²等指标全面评估性能,结果表明贝叶斯优化显著提升了预测准确性,验证了自动化调参在时间序列任务中的实用价值。