假设我有这个矩阵,A:
A=[ 25 11 2010 10 23 75
30 11 2010 11 24 45
31 12 2010 19 24 44
31 12 2010 22 27 32
1 1 2011 14 27 27
2 12 2011 15 28 30
3 12 2011 16 24 42 ];
前5列表示某些测量参数的输入,最后一列表示相应的输出。行数是进行这些测量的次数。
我想使用Matlab神经网络GRNN和函数newgrnn(或任何其他NN函数)来训练数据到第5行并测试剩余的2行输入以评估它们的相应输出。我已经尝试了很多次这样做,但它总是给我错误,程序运行不正常。我已经查看了newgrnn帮助示例,但它仅用于一个输入,而在此示例中我有5个输入。
我的问题是我们如何将输入和输出放在newgrnn函数结构中。实际上,我有一个非常大的矩阵,有22个输入和一个输出,我的矩阵的大小是26352乘23但上面只是示例。
答案 0 :(得分:2)
由于您没有提供任何您尝试过的例子以及您从尝试中获得的错误,我将不得不给您一个相当通用的答案。
net = newgrnn(P,T,spread)需要三个输入,
P R-by-Q matrix of Q input vectors T S-by-Q matrix of Q target class vectors spread Spread of radial basis functions (default = 1.0)
因此,如果矩阵A
总是只有最后一列是输出(目标类向量),那么输出(目标类向量)为A[1:5,end]
,输入为A[1:5,1:(end-1)]
。这些分别是“前5行A
,最后一列”和“前5行A
,以及除最后一列之外的所有行”。
然后(只需按照newgrnn
帮助文件中的示例,您就必须调整到您自己的特定A
):
net = newgrnn( A[1:5,1:(end-1)], A[1:5,end] )
% predict new values
Y = sim(net, A[6:7,1:(end-1)])
我认为您还应该阅读indexing arrays and matrices的Matlab帮助文件。