如何使用创建的“网络”神经网络对象进行预测?

时间:2013-05-06 15:03:43

标签: matlab neural-network time-series prediction

我使用 ntstool 来创建NAR(非线性自回归)网络对象,通过训练1x1247输入向量。 (每日股票价格为6年) 我已完成所有步骤并将生成的网络对象保存到工作区。

现在我对如何使用这个对象来预测y(t)毫无头绪,例如t = 2000,(我训练了t = 1的模型:1247)

在其他一些主题中,人们建议使用sim(net,t)函数 - 但是这会给我任何t值的结果。 (与net(t)函数相同)

2 个答案:

答案 0 :(得分:1)

我不熟悉特定的神经网络命令,但我认为你正在以错误的方式解决这个问题。通常,您希望及时对进化进行建模。您可以通过指定某个窗口(例如3个月)来执行此操作。

您现在正在训练的是单个输入向量,它没有关于时间演变的信息。你总是得到相同预测的原因是你只使用一个点进行训练(即使它是1247维,它仍然是1分)。

你可能想要制作这种性质的输入向量(为简单起见,假设你正在使用几个月):

[month1 month2; month2 month 3; month3 month4]

此示例包含2个训练点,演变为3个月。请注意它们重叠。

答案 1 :(得分:0)

使用网络 在训练和验证网络之后,网络对象可用于计算对任何输入的网络响应。例如,如果要查找建筑数据集中第五个输入向量的网络响应,可以使用以下内容 a = net(houseInputs(:,5)) a =   34.3922 如果尝试此命令,则输出可能会有所不同,具体取决于初始化网络时随机数生成器的状态。下面,调用网络对象以计算外壳数据集中所有输入向量的并发集合的输出。这是模拟的批处理模式形式,其中所有输入向量都放在一个矩阵中。这比一次呈现一个向量更有效。 a = net(houseInputs); 每次训练神经网络时,由于不同的初始权重和偏差值以及不同的数据划分到训练,验证和测试集中,可能导致不同的解决方案。结果,针对相同问题训练的不同神经网络可以为相同输入提供不同的输出。为确保找到具有良好准确性的神经网络,需要多次重新训练。 如果需要更高的精度,还有若干其他技术可用于改进初始解决方案。有关更多信息,请参阅改进神经网络泛化和避免过度拟合。 强文