论文实验笔记之一:用matlab跑神经网络

来源:互联网 发布:数据泄漏防护系统 破解 编辑:程序博客网 时间:2024/04/29 10:33

%取数据(72×3的数据,第三列为target)

load('E:\matlab\cm2.mat');
r=data;

%取训练集

dd = r';
P = dd(1:2, 1:48);
T = dd(3, 1:48);

%取测试集

V = dd(1:2, 49:72);
VT = dd(3, 49:72);

%数据归一化
%[P,inP]=mapminmax(P);
%[T,outT]=mapminmax(T);
%V = mapminmax('apply', V, inP);

%初始化神经网络,minmax取数据范围大小,单隐层,隐层5个神经元,输出层一个神经元

%tansig(logsig)隐层激励函数,purelin(线性函数)为输出层激励函数,trainlm为训练函数

net = newff(minmax(P), [5 1], {'tansig', 'purelin'}, 'trainlm');

%权值初始化

net = init(net);

net.trainParam.epochs = 300;%迭代次数上限
net.trainParam.goal = 1;%误差阈值
net.trainParam.show = 50;%每50次迭代显示一次结果
net.trainParam.lr = 0.05;%学习率

%训练

[net, tr] = train(net, P, T);

%模拟,仿真

A = sim(net, V);
B = sim(net, P);

%计算MSE和RMSE

E = abs(VT - A);
MSE = mse(E);
r = sqrt(MSE);

%计算MAPE

t = 0;
for i = 1:24
    t = t + E(i) / VT(i);
end
t = t / 0.24;


0 0
原创粉丝点击