【问题标题】:Matlab NN inputs & output maniuplationMatlab NN 输入和输出操作
【发布时间】:2012-01-23 04:10:58
【问题描述】:

假设我有这个矩阵,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 列代表一些测量参数的输入,最后一列是相应的输出。行数就是进行这些测量的次数。

我想使用带有函数 newgrnn(或任何其他 NN 函数)的 Matlab 神经网络 GRNN 来训练数据到第 5 行,并测试剩余的 2 行输入以评估它们相应的输出。我已经尝试了很多次,但它总是给我错误并且程序没有正确运行。我查看了 newgrnn 帮助示例,但它仅适用于一个输入,而在此示例中我有 5 个输入。

我的问题是我们如何将输入和输出放入 newgrnn 函数结构中。实际上,我有一个非常大的矩阵,有 22 个输入和一个输出,我的矩阵大小是 26352 x 23,但以上只是示例。

【问题讨论】:

  • 你已经尝试过很多次了——你到底尝试了什么?你能告诉我们一些你尝试过的代码吗?

标签: matlab neural-network


【解决方案1】:

由于您没有给出任何示例来说明您尝试了什么以及您从尝试中得到了什么错误,所以我必须给您一个相当笼统的答案。

看看the newgrnn help file

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)]。它们分别表示“A 的前 5 行和最后一列”和“A 的前 5 行以及除最后一列之外的所有行”。

然后(只需按照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 帮助文件。

【讨论】:

  • 谢谢。但我认为应该转置提取的矩阵以使输入和输出矩阵具有相同的列数。如果我运行上面的 newgrnn 代码,它会给出:???在 80 个输入和目标中使用 ==> newgrnn 时出错,列数不同。
  • 啊,你是对的,P 需要是 RQ 列,T 需要是 SQ 列。转置会消除这个错误,但我对神经网络的了解还不够,无法告诉你这是否是明智的做法。但既然您使用 5 行 A 来预测另外 2 行,为什么不尝试看看它是否给了您期望的结果?
猜你喜欢
  • 1970-01-01
  • 2011-05-13
  • 2015-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-02
  • 2018-09-09
  • 1970-01-01
相关资源
最近更新 更多