标签:
alldata = load(‘alldata.txt‘);
alldata = alldata(:,:);
|
clc;
clear;
%导入300组数据
alldata = load(‘alldata.txt‘);
alldata = alldata(:,:);
%输入输出数据
input = alldata(:,2:33);
outputtemp = alldata(:,1);
%输出数据需要处理一下
output = zeros(300,2);%预先分配内存
for i=1:300
switch outputtemp(i)
case 0
output(i,:) = [1 0];%意思是如果数据结果是0,则输出层的状态是[1 0],或者用第一个输出节点表示
case 1 %能直接识别带小数位的数据
output(i,:) = [0 1];
end
end
%从中随机抽取280组数据作为训练数据,20组数据作为预测数据
k = rand(1,300);
[m,n] = sort(k);
input_train = input(n(1:280),:)‘;
output_train = output(n(1:280),:)‘;
input_test = input(n(281:300),:)‘;
output_test = output(n(281:300),:)‘;
%输入输出数据进行归一化处理
[inputn,inputps] = mapminmax(input_train);
[outputn,outputps] = mapminmax(output_train);
%网络结构构建32-6-2
net=newff(inputn,outputn,6);
%网络参数配置(迭代次数,学习率,目标)
net.trainParam.epochs=100;
net.trainParam.lr=0.1;
net.trainParam.goal=0.0004;
%网络训练
net=train(net,inputn,outputn);
%BP网络预测
%预测数据归一化
inputn_test=mapminmax(‘apply‘,input_test,inputps);
%网络预测输出
an=sim(net,inputn_test);
%网络输出反归一化
BPoutput=mapminmax(‘reverse‘,an,outputps);
%结果分析
figure(1)
plot(BPoutput,‘:og‘)
hold on
plot(output_test,‘-*‘);
legend(‘预测输出‘,‘期望输出‘)
title(‘BP网络预测输出‘,‘fontsize‘,12)
ylabel(‘函数输出‘,‘fontsize‘,12)
xlabel(‘样本‘,‘fontsize‘,12)
%预测误差
error=BPoutput-output_test;
figure(2)
plot(error,‘-*‘)
title(‘BP网络预测误差‘,‘fontsize‘,12)
ylabel(‘误差‘,‘fontsize‘,12)
xlabel(‘样本‘,‘fontsize‘,12)
figure(3)
plot((output_test-BPoutput)./BPoutput,‘-*‘);
title(‘神经网络预测误差百分比‘)
errorsum = sum(abs(error))
|
function output = annforecastthi(input_test)
%ANNFORECAST
% 输入长度为32的行矩阵,输出为1或2
A = load(‘annnet.mat‘);
B = fieldnames(A);
net = A.(B{1});
net = network(net);
C = load(‘anninputps.mat‘);
D = fieldnames(C);
inputps = C.(D{1});
E = load(‘annoutputps.mat‘);
F = fieldnames(E);
outputps = E.(F{1});
%BP网络预测
%预测数据归一化
inputn_test=mapminmax(‘apply‘,input_test‘,inputps);
%网络预测输出
an=sim(net,inputn_test);
%网络输出反归一化
BPoutput=mapminmax(‘reverse‘,an,outputps);
%结果分析
%根据网络输出找出数据属于哪类
output=find(BPoutput(:,1)==max(BPoutput(:,1)));
end
|
---待续
如何在Android App中使用matlab的神经网络代码
标签:
原文地址:http://www.cnblogs.com/bellkosmos/p/5593420.html