求教在MATLAB中BP算法最后怎么由测试数据得到实际输出啊 100

clearall;clc;p=[2.52.52.5;1.0532.1052.368;2.3682.1051.053;2.1431.4292.143;2.8573.5712... clear all;
clc;
p=[2.5 2.5 2.5;1.053 2.105 2.368;2.368 2.105 1.053;2.143 1.429 2.143 ;2.857 3.571 2.857;3.947 2.895 2.632;2.632 2.895 3.974];
%输入样本
t=[0 0 0;0 0 1;0 1 0;0 1 1;1 0 0;1 0 1;1 1 0];%期望输出
net=newff(p,t,{15,3},{ 'tansig','purelin'},'trainlm');%创建BP神经网络,采用默认初始化参数对网络进行初始化,训练函数采用trainlm
net.trainParam.epochs=5000;
%设置训练循环次数
net.trainParam.goal=0.0001;
%设置最小误差指标
[net,tr]=train(net,p,t);
%对网络进行训练
貌似训练可以完成,但是
想请问一下训练完成后如何输入测试样本数据1.103 2.155 2.418得到实际输出的0.0704 -0.1001 1.0299啊啊
展开
 我来答
匿名用户
2015-03-15
展开全部
首先对于数据进行归一化,我就不用matlab里面的代码了
maxP = max(max(p));
p = p';
Input = p(:, 1:4)./maxP;
Target = p(:, 2:5)./maxP;

netP = newff(Input, Target, 10);
netP = train(netP, Input, Target);

上面这个神经网络预测下一年的P值

P09_13 = zeros(6, 5)
for i = 1:5
if i == 1
P09_13(:, i) = sim(net, p(:, 5));
else
P09_13(:, i) = sim(net, P09_13(:, i-1));
end
end

以上得到09-13年预测出来的p值

下面求p-t之间的关系
Input = p./maxP;
Target =t./maxP;

net = newff(Input, Target, 10);
net = train(net, Input, Target);
以上代码求出了p-t对应关系
preliminaryResult = zeros(1, 5);
for i = 1:5
preliminaryResult = sim(net, P09_13(:, i));
end

result = preliminaryResult.*maxP;

result里面是09-13年预测出来的房价。

我没给你实际跑这个程序,明天就交论文你这个点求助我就不说你什么了。
匿名用户
2015-03-15
展开全部
用训练得到的权值乘以样本数据,就可以得到输出啊
追问
说详细点,用什么程序,格式是啥,100分呢,求给力啊!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式