神经网络和算法,预测过去的未来结果

Raz*_*t4x 17 algorithm prediction neural-network

我正在研究一种算法,我给它一些输入,我给它们输出,并给出输出3个月(给或拿)我需要一种方法来查找/计算可能是未来的输出.
现在,给出的这个问题可能与证券交易所有关,我们给出了证明约束和某些结果,我们需要找到下一个.
我偶然发现神经网络股票市场的预测,你可以谷歌它,或者你可以在这里,这里这里阅读它.

要开始制作算法,我无法弄清楚层的结构应该是什么.
给定的约束是:

  • 输出始终为整数.
  • 输出始终在1到100之间.
  • 没有确切的输入,就像股票市场一样,我们只知道股票价格会在1和100之间波动,所以我们可能(或不是)认为这是唯一的输入.
  • 我们有过去3个月(或更长时间)的记录.

现在,我的第一个问题是,我需要输入多少个节点?

输出只有一个,很好.但正如我所说,我应该为输入层采用100个节点(假设股票价格总是整数,并且总是btw 1和100?)

隐藏层怎么样?那里有多少个节点?比方说,如果我在那里采用100个节点,我认为这不会对网络进行太多训练,因为我认为对于每个输入我们还需要考虑所有先前的输入.

比如说,我们在第4个月的第1天计算输出,我们应该在隐藏/中间层有90个节点(为了简单起见,想象每个月是30天).现在有两种情况

  • 我们的预测是正确的,结果与我们预测的相同.
  • 我们的预测失败了,结果与我们的预测不同.

无论情况如何,现在当我们计算第4个月第2天的输出时,我们不仅需要那些90个输入,而且还需要最后的结果(而不是预测,它是否相同!)所以我们现在我们的中间/隐藏层有91个节点.

依此类推,它每天都会增加节点数量,AFAICT.

所以,我的另一个问题是,如果动态变化,我如何定义/设置隐藏/中间层中的节点数.

我的最后一个问题是,有没有其他特殊的算法(对于这种事物/东西),我不知道?我应该使用而不是搞乱这个神经网络的东西?

最后,有什么东西,我可能会失踪,可能会导致我(而不是我正在做的算法)预测输出,我的意思是任何警告,或任何可能使我错过的东西,我可能会失踪?

Sta*_*tan 25

作为你的问题的答案,有很多东西要讲.实际上,您的问题通常涉及时间序列预测的问题,以及神经网络应用于此任务的问题.我在这里只写了几个最重要的键,但在阅读完之后你应该深入研究Google的查询结果time series prediction neural network.有很多作品详细介绍了这些原则.还存在各种软件实现(带有源代码)(这里只是c ++中代码的一个例子).

1)我必须说,数据预处理和选择正确的输入/输出因子的问题是99%,而使用的混凝土仪器只有1%,无论是神经网络还是其他.正如附注,神经网络可以在内部实现大多数其他数据分析方法.例如,您可以将神经网络用于与SVD密切相关的主成分分析(PCA),在另一个答案中提到.

2)输入/输出值严格适合特定区域是非常罕见的.现实生活中的数据可以被认为是绝对值无限制的(即使它的变化似乎产生了一个通道,它可以在一瞬间被分解),但神经网络只能在稳定的条件下运行.这就是为什么数据通常首先转换为增量(通过计算第i个点和i-1之间的增量,或log从它们的比率中取得).无论如何,我建议您使用您的数据,尽管您声明它在[0,100]区域内.如果你不这样做,神经网络很可能退化为一个所谓的天真预测器,它产生一个预测,每个下一个值等于之前的值.

然后将数据归一化为[0,1]或[-1,+ 1].第二个适用于时间序列预测的情况,其中+1表示向上移动,-1表示向下移动.对你网中的神经元使用hypertanh激活函数.

3)您应该向NN提供从a获得的输入数据 sliding window日期.例如,如果您有一年的数据且每个点都是一天,您应该选择窗口的大小 - 例如,一个月 - 并从过去到未来逐日滑动.刚好在窗口右边界的那一天是NN的目标输出.这是一个非常简单的方法(有更复杂的方法),我之所以提到它只是因为你问如何处理连续到达的数据.答案是 - 您不需要每天更换/扩大您的NN.只需使用具有固定窗口大小的常量结构并"忘记"(不向NN提供)最旧的点.重要的是,您不要将所有数据视为单个输入,而是将其划分为许多小向量并在其上训练NN,因此网络可以推广数据并找到规律性.

4)滑动窗口的大小是您的NN输入大小.输出大小为1.您应该使用隐藏的图层大小来发现更好的性能.从输入和输出之间的值开始,例如sqrt(in*out).

根据最新研究,回归神经网络似乎在时间序列预测任务中运行得更好.


小智 6

他说,我同意斯坦的观点

1)我必须说数据预处理的问题是99%

我已经将神经网络应用了25年以上用于各种航空航天应用,包括直升机飞行控制 - 设置输入/输出数据集就是一切 - 所有其他都是次要的.

令我惊讶的是,在smirkman的评论中,神经网络很快就被"放弃了,因为它们没有产生任何有价值的东西" - 这告诉我,与神经网络合作的人几乎没有经验.

鉴于该主题讨论了神经网络股票市场预测 - 我会说我已经使它成功了.测试结果可从我的网站www.nwtai.com下载.

我不会泄露它是如何完成的,但是有足够的有趣数据可以让你更加认真地使用神经网络进行探索.