Algorithm 神经网络和算法,从过去预测未来结果
我正在研究一个算法,在这个算法中,我得到了一些输入和输出,并且给出了3个月的输出(给予或接受),我需要一种方法来找到/计算未来的输出。Algorithm 神经网络和算法,从过去预测未来结果,algorithm,neural-network,prediction,Algorithm,Neural Network,Prediction,我正在研究一个算法,在这个算法中,我得到了一些输入和输出,并且给出了3个月的输出(给予或接受),我需要一种方法来找到/计算未来的输出。 现在,给出的这个问题可能与股票交易有关,我们得到了一定的约束和一定的结果,我们需要找到下一个。 我偶然发现了神经网络股票市场预测,你可以,或者你可以读到它,然后 要开始制作算法,我无法确定层的结构应该是什么。 给定的约束条件是: 输出将始终是整数 输出将始终在1和100之间 我们没有确切的输入,就像股票市场一样,我们只知道股票价格会波动1和100,所以我们可以
现在,给出的这个问题可能与股票交易有关,我们得到了一定的约束和一定的结果,我们需要找到下一个。
我偶然发现了神经网络股票市场预测,你可以,或者你可以读到它,然后 要开始制作算法,我无法确定层的结构应该是什么。
给定的约束条件是:
- 输出将始终是整数
- 输出将始终在1和100之间 我们没有确切的输入,就像股票市场一样,我们只知道股票价格会波动1和100,所以我们可以(或不)把这看作是唯一的输入。
- 我们有过去3个月(或更长)的记录
- 我们的预测是正确的,结果和我们预测的一样
- 我们的预测失败了,结果与我们的预测不同
最后,我是否遗漏了任何可能导致我(而不是我正在做的算法)预测输出的东西,我是指任何警告,或任何可能导致我遗漏的出错的东西?成千上万想要赢得100万美元的人对这类问题进行了特别深入的研究 早些时候提交的意见书通常是基于。后来提交的意见书使用和。获胜者综合运用了几种技巧 阅读优秀的文章会给你很多关于从过去预测未来的最佳方法的见解。您还可以找到不同方法的大量源代码 有趣的是,神经网络很快就被抛弃了,因为它们没有产生任何有价值的东西(我个人还没有看到一个非平凡的神经网络产生任何有价值的东西) 如果你刚开始,我建议SVD作为第一条道路;它非常容易制作,并且常常对数据产生令人惊讶的见解
祝你好运 对于你的问题,有很多可以回答的。事实上,您的问题解决了时间序列预测的一般问题,以及神经网络在这项任务中的应用。我在这里只写了几个最重要的关键点,但在读了这些之后,你可能会深入研究Google的查询结果
时间序列预测神经网络
。有很多作品详细介绍了这些原则。各种软件实现(带有源代码)也确实存在()
1) 我必须说,99%的问题是关于数据预处理和选择正确的输入/输出因子,只有1%的问题是关于要使用的具体仪器,无论是神经网络还是其他什么。作为补充,神经网络可以在内部实现大多数其他数据分析方法。例如,您可以使用神经网络进行主成分分析(PCA),这与SVD密切相关,在另一个答案中提到
2) 很少有输入/输出值严格适合特定区域。现实生活中的数据可以被认为是绝对值无界的(即使它的变化似乎产生了一个通道,它也可以在瞬间被分解),但神经网络只能在稳定的条件下运行。这就是为什么数据通常首先转换为增量(通过计算第i点和第i-1点之间的增量,或从它们的比率中提取log
)。我建议您无论如何都要使用您的数据,尽管您声明它位于[01100]区域内。若你们不这样做,神经网络很可能会退化为一个所谓的朴素预测器,它会产生一个预测,下一个值等于上一个值
然后将数据标准化为[0,1]或[-1,+1]。第二种方法适用于时间序列预测的情况,其中+1表示上移,而-1表示下移。对网络中的神经元使用hypertanh激活功能
3) 您应该向NN提供从日期的滑动窗口获得的输入数据。例如,如果你有一年的数据,而每一点都是一天,你应该选择窗口的大小——比如说,一个月——然后逐日滑动,从过去到未来。窗口右边界处的一天是NN的目标输出。这是一种非常简单的方法(有更复杂的方法),我之所以提到它,是因为您询问如何处理不断到达的数据。答案是-你不需要每天改变/放大你的NN。只有你