课程设计
平台:Matlab App designer
功能实现:LSTM长短期记忆网络回归预测
目的:
1.Matlab代码编写能力进阶;
2.学会利用Matlab GUI设计图形交互界面,开发有趣的应用;
演示:
1.设计GUI界面,界面上需要能够改变长短期记忆网络的基本参数,包括LSTM层数,训练次数,初始学习率等。输出结果包括预测曲线及根均方差、平均绝对误差、平均绝对百分误差三个指标。具体界面如下:
2. 网络输入和网络输出两个按钮,是用来分别选择LSTM网络的输入和输出的。其中,网络输入的数据必须是m行×n列的,其中m是数据量,n是特征数,即自变量;网络输出的数据必须是m行×a列的,其中a是输出量,即因变量。
以经典的波士顿房价预测为例,统计了13个影响房价的指标,如下所示。数据集中有506个实例,每个实例中有13个指标和1个房价数据。因此,在处理数据的时候,网络输入的应该是个506×13的数组;网络输出应该是个506×1的数组。
演示一下预测效果。在点击开始训练后,会跳出对话框要求输入每层的隐藏元数量。(注:这些数值没有科学依据,仅仅是演示一下):
训练进度图:
3.网络训练好一次后,会将网络模型和预测的数据全部都保存到当前路径下的Net.mat文件中,以便后续的处理。该界面还支持单次预测和批量预测。单次预测时,在输入框中输入影响房价的13个指标值,即可给出预测的房价;演示时以输入13个1为例。批量预测时,网络输入应该为m行×13列的数据,预测数据曲线会显示在图上;演示时就以原训练输入为例。
4. 此外,界面上有功能菜单,实现重置、退出、软件介绍等功能。
总结一下,该界面能够实现基于LSTM长短期记忆网络的回归预测,前提是要事先按照要求处理好输入数据和输出数据的格式。界面上没有显示误差比较图等,如果有必要的话可以很轻松就加上。
欢迎交流
代码事宜,私信博主(V: wwggdd22)