基于贝叶斯Bayes算法优化LSTM长短期记忆网络的多输入单输出回归预测模型思路框架

前言

前面在【MATLAB第8期】讲解了基于贝叶斯Bayes算法优化LSTM长短期记忆网络的时间序列预测模型,即单输入数据时间序列预测,见本人知乎主页。

思路

本次结合上文说的原理,简要说明如何根据单输入时间序列数据,修改成多输入单输出回归预测模型。

  • **1、**首先要理解的知识点在于,单列时间序列数据,实现预测也是需要人工构建输入输出关系,即在上篇文章提到的过的用滑动窗口(时间滞后)的形式,若滑动窗口为30,则相当于用前30个数据作为输入,后1个数据作为输出,从而构建输入输出之间的非线性映射关系。
    所以,第一要取消之前滑动窗口的参数,直接导入现成的目标数据(多输入单输出数据),即能满足数据输入和输出要求。
    **2.**其次就是数据处理方式,原代码数据是只针对一列数据进行归一或者标准化处理,那么在其调用函数中,包含循环算法,以及相关的数据处理公式,去套多输入单输出模型时,因数据结构有误,程序大概率会报错。

例如:

opt.dataPreprocessMode为数据预处理,'None'代表无处理,'Data Standardization'代表标准化处理
  • 要理清,如果套入多输入单输出数据时,这里的数据预处理代码,究竟是要表达是基于全部的数据特征(所有列数据)进行预处理,还是对单列分别进行预处理。
    第1种情况是考虑对全部数据,包含输入和输出进行预处理,需要研究归一化公式怎么写,反归一化公式怎么写。 第2种情况跟平常一样,对训练集输入/
    训练集输出/测试集输入/测试集输出分别进行预处理,利用mapminmax、mapstd等函数进行。
  • 3.实操结果(数据跟时间序列数据一样,只不过我设置滑动窗口为10,建立了10输入1输出的样本) 归一化和标准化都是考虑在-1到1之间,选用的是上述第2种情况进行处理。

预测结果:


机器学习多输出模型实现 多输入单输出模型_回归

训练数据拟合


机器学习多输出模型实现 多输入单输出模型_回归_02

测试数据拟合


机器学习多输出模型实现 多输入单输出模型_回归_03


全部数据拟合

本次将回归模型和时间序列模型一同打包。