好的测试误差和错误的相对产出

4视图(30天)
我的问题我的神经网络。我使用Matlab fitnet trainlm和验证停止,没有前后处理数据。测试错误很好所以我想新输入的输出是正确的,但这不是。我不需要使用新的输入正常化,因为没有前后处理功能。训练后我使用新的输入一步生成输出,因为我可以知道只有一步一次新的输入。有人有相同的问题吗?代码似乎是正确的:
网= fitnet (hiddenLayerSize);
net.inputs {1}。processFcns = {};
net.outputs {2}。processFcns = {};
网。divideFcn =“divideblock”;
(净,tr) =火车(净、输入目标);
输出=净(输入);

接受的答案

格雷格·希斯
格雷格·希斯 2015年3月30日
有什么类似的结果(注意,故意省略分号)
我[N] =大小(x)
[O N] =大小(t)
MSE00 =意味着(var (t ', 1))
minmaxxt =极大极小([x; t])
图(1)
情节(x, t)
持有
网= fitnet (H);
净tr y [e] =火车(净,x, t);
NMSE = mse (e) / MSE00
情节(x, y,“r”。)
接下来,使用tr获取trn / val /测试和重复的指标对于每个子集i = trn, val,结核菌素
持有
i = 1:3
[Ii倪]=大小(xi)
(倪Oi) =大小(ti)
MSE00i =意味着(var (ti ', 1))
minmaxxiti =极大极小([xi, ti])
NMSEi = mse (ei) / MSE00i
情节(xi, ti)
情节(xi,咦,“r”。)
结束
这是确保数据的目的是静止的,即的统计3子集相媲美
然后,如果任何新的数据似乎来自同一来源,它可以验证通过比较这三个子集。
希望这个有帮助。
谢谢你的正式接受我的答案
格雷格
1评论
埃米利亚诺·罗索
埃米利亚诺·罗索 2015年3月31日
谢谢你的partecipation。我尝试你的建议,一切都很好,但我的问题不是解决了。当我说相对的输出是错误的我的意思是输出到同一个计算测试集不匹配错误之前获得。2000年我开始这段代码输入:
网= fitnet (hiddenLayerSize);
net.inputs {1}。processFcns = {};
net.outputs {2}。processFcns = {};
网。divideFcn =“divideblock”;
(净,tr) =火车(净、输入目标);
net.divideParam。trainRatio = 65/100;
net.divideParam。valRatio = 10/100;
net.divideParam。testRatio = 25/100;
[m, n] =大小(输入);
scartN =圆(n / 100 * 75) + 1;
测试= scartN: n
targetstest (1, test-scartN + 1) =目标(1、测试);
i = 1: m
inputstest(我test-scartN + 1) =输入(我测试);
结束
结束
outputstest =净(inputstest);
错误= gsubtract (targetstest outputstest);
图中,ploterrhist(错误);
我决定不使用的东西:
输入= cell2mat (gmultiply(输入,tr.testMask));
避免在数组南,我检查tr测试/ val /测试部门控制指标。
我做了同样的训练后使用1500输入:
net.divideParam。trainRatio = 87/100;
net.divideParam。valRatio = 13/100;
net.divideParam。testRatio = 0;
培训和验证集的大小几乎相同,数据是相同的。培训不受不同初始随机权重的影响,因为我试过很多次训练网络,它每次都工作得很好。唯一的区别在于,我省略了训练的测试集,取而代之的是单步预测的测试集(数据是相同的)使用:
newoutputs =净(newinputs);(500倍- 25% 2000)
这不会影响神经网络的性能。我可以记得错误和输出直接从:
[净,tr, Y, E, Pf, Af) =火车(网、P、T,π,Ai)
但我想为未来的实际使用测试代码。现在的问题是,对于我的porpouse,测试很好但不是输出错误。我不明白为什么输出不匹配的目标。
希望有人帮我……

登录置评。

更多的答案(0)

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!