基于贝叶斯Bayes算法优化LSTM长短期记忆网络的多输入单输出回归预测模型思路框架
前言
前面在【MATLAB第8期】讲解了基于贝叶斯Bayes算法优化LSTM长短期记忆网络的时间序列预测模型,即单输入数据时间序列预测,见本人知乎主页。
思路
本次结合上文说的原理,简要说明如何根据单输入时间序列数据,修改成多输入单输出回归预测模型。
**1、**首先要理解的知识点在于,单列时间序列数据,实现预测也是需要人工构建输入输出关系,即在上篇文章提到的过的用滑动窗口(时间滞后)的形式,若滑动窗口为30,则相当于用前30个数据作为输入,后1个数据作为输出,从而构建输入输出之间的非线性映射关系。
所以,第一要取消之前滑动窗口的参数,直接导入现成的目标数据(多输入单输出数据),即能满足数据输入和输出要求。
**2.**其次就是数据处理方式,原代码数据是只针对一列数据进行归一或者标准化处理,那么在其调用函数中,包含循环算法,以及相关的数据处理公式,去套多输入单输出模型时,因数据结构有误,程序大概率会报错。
例如:
opt.dataPreprocessMode为数据预处理,'None'代表无处理,'Data Standardization'代表标准化处理
opt.dataPreprocessMode为数据预处理,'None'代表无处理,'Data Standardization'代表标准化处理
1
要理清,如果套入多输入单输出数据时,这里的数据预处理代码,究竟是要表达是基于全部的数据特征(所有列数据)进行预处理,还是对单列分别进行预处理。
第1种情况是考虑对全部数据,包含输入和输出进行预处理,需要研究归一化公式怎么写,反归一化公式怎么写。 第2种情况跟平常一样,对训练集输入/
训练集输出/测试集输入/测试集输出分别进行预处理,利用mapminmax、mapstd等函数进行。
3.实操结果(数据跟时间序列数据一样,只不过我设置滑动窗口为10,建立了10输入1输出的样本) 归一化和标准化都是考虑在-1到1之间,选用的是上述第2种情况进行处理。
预测结果:
:
训练数据拟合
测试数据拟合
全部数据拟合
本次将回归模型和时间序列模型一同打包。