如何在matlab中通过GUI的方式来创建和训练一个神经网络?本文以一个汽油辛烷值的预测为例讲解。
首先,先将需要的数据等导入进来。
%% I. 清空环境变量
clear all
clc
%% II. 训练集/测试集产生
%%
% 1. 导入数据
load spectra_data.mat
%%
% 2. 随机产生训练集和测试集
temp = randperm(size(NIR,1));
% 训练集――50个样本
P_train = NIR(temp(1:50),:)';
T_train = octane(temp(1:50),:)';
% 测试集――10个样本
P_test = NIR(temp(51:end),:)';
T_test = octane(temp(51:end),:)';
N = size(P_test,2);
%% III. 数据归一化
%%
% 1. 训练集
[Pn_train,inputps] = mapminmax(P_train);
Pn_test = mapminmax('apply',P_test,inputps);
%%
% 2. 测试集
[Tn_train,outputps] = mapminmax(T_train);
Tn_test = mapminmax('apply',T_test,outputps);
这里,data.mat是封装好的数据,可以改换成你自己的数据。
然后通过命令启动GUI:
先选择Import,根据图示导入我们要的数据:
数据都导入后,就可以点击new来创建神经网络了。根据界面中的提示项,来设置好网络结构:
create之后我们就可以得到这个神经网络了:
这里我选的是第一层10个神经元,第二层就是输出层,就一个神经元,是线性**函数。
接下来就是点击上面的train选项,具体地设置一下训练的参数。
设置好后,点击右下角的train network!就可以看到如下图的训练窗口了:
训练好后,我们就可以进行仿真的预测。选择simulate选项:
仿真结束后,可以查看结果了:
接下来你看工作区就能找到结果已经导出了。
这个例子中,我输入一个这样的命令来更方便地查看结果:
[Tn_test' network1_outputs' network1_errors']
这就是一个简单操作流程了。
其实也无非是数据的导入、点击几个按钮完成训练、测试过程,然后查看结果罢了。
小伙伴们动手试一试吧!