神经网络结果输出中的移位(matlab)

神经网络结果输出中的移位(matlab),matlab,Matlab,我希望有人能澄清我对情况的误解,进一步描述…我只是为了教育目的写了一个非常简单的代码 x = getX(); y = getY(); net = feedforwardnet([50,25]); net.trainParam.epochs = 500; net.trainParam.showWindow = false; n1 rain(net,x,y,'showResources','no','useParallel','yes','useGPU','yes'); r = n1(x); 然后

我希望有人能澄清我对情况的误解,进一步描述…我只是为了教育目的写了一个非常简单的代码

x = getX();
y = getY();
net = feedforwardnet([50,25]);
net.trainParam.epochs = 500;
net.trainParam.showWindow = false;
n1 rain(net,x,y,'showResources','no','useParallel','yes','useGPU','yes');
r = n1(x);
然后我检查它是如何工作的我使用了一个数据集,它看起来像:

DataSet4Check:
  X     Y
1 2 3   1
2 3 4   2
3 4 5   3
4 5 6   4
etc.
我认为数字的绝对值在这里不起主要作用,上面给出的数据集只是为了说明集合中的一种模式。。。我得到了一个非常透明的结果:

CheckResult:
R   Y
1   1
2   2
3   3
etc.
但是我稍微改变了数据集:

Second DataSet:
X2      Y2
1 2 3   -1
2 3 4   0
3 4 5   1
4 5 6   2
etc.
我得到了一个完全出乎意料的结果

Scond Result
R2   Y2
1    0
2    1
3    2
4    3
NN输出滞后于TargetData一步,X2和Y2的前两个刚从NN结果中消失。。。谁能解释一下我的例子到底错在哪里


感谢埃德万斯

任务已解决。我刚刚欺骗了NN())

你能稍微扩展一下吗?我试图复制你的问题,但我做不到。培训数据集有多大?为什么第二个结果Y2从0开始而不是从-1开始?谢谢你的回答!嗯,数据集足够大了。它可能有3到1.8万个例子。我问题中的数字值只是为了简单起见。实际数字相差更大。不同的集合包含不同的数据范围,例如:在第一个集合中从100到5000;从-1.5到1.5秒;从第三节的100.9到500.1。这些数字只是来自不同类型传感器的数据流。我的主要目标是在一张图上得到完整的集合。再次感谢!数字?图表我不明白。因此,据我所知,当您使用第一个数据集(X,Y)进行训练,然后使用相同的输入(X)进行测试时,它工作正常(R=Y),但当您使用不同的数据集(X2,Y2)进行重新训练,并使用该输入(X2)进行测试时,输出会发生移位(R2=/=Y2)。我的理解行吗?数据集2有多大?谢谢你的打扰!任务解决了。