在R神经网络页面中,我正在使用神经网络功能来尝试预测股票价格。
训练数据包含高,低,开,关等列。
myformula <- close ~ High+Low+Open
neuralnet(myformula,data=train_,hidden=c(5,3),linear.output=T)
我的问题,鉴于以下数据示例,您可以告诉我该公式会是什么样的。
我有一个包含“High”,“Low”,“Open”,“Close”列的表,它有两行值,每行代表一天的蜡烛棒。所以数据中的两行是前两天的蜡烛棒。我的目标是预测下一根蜡烛是什么,即“开”,“高”,“低”,“关闭”给出前两个烛台。 / p>
我的神经网络将一次呈现以前的dtata 1蜡烛棒。我想知道下一个烛台是什么,所以我的R公式会是什么样的。
由于 让我知道
答案 0 :(得分:4)
我的神经网络将一次显示一个蜡烛棒的先前数据。我想知道下一个烛台是什么,所以我的R公式会是什么样的。
在前馈神经网络*中,您必须指定要用于预测的要素和要预测的目标。在上面的示例中,功能是例如prev_close
,目标为close
。正如您在训练数据中看到的那样,您还没有prev_close
,这就是我的答案的全部要点,您需要首先正确地制定问题。
如果您拥有close
,则无法为此训练FF NN。您需要创建prev_close
,然后公式为close ~ prev_close
。
*可以对序列进行递归神经网络(RNN)训练,并根据输入序列输出预测,但这是一整套蠕虫 子>
我编写了这个荒谬简单的*示例,只是为了说明问题的表达式,它预测close
,基于最后两个close
值。我选择了一个带有1个神经元的隐藏层。我已设置linear.output=TRUE
,因为我们正在预测连续值(regression problem as discussed before,而neuralnet
documentation表示如果该值没有激活函数act.fct
是真的)
*如果你用这个交易你肯定会丢失你的衬衫。这只是为了说明如何在神经网络中构建这样的预测问题。不要将它用于真实。
我想澄清的一点是,如果您在列中有价格,则必须为预测创建要素
prev_close_1 | prev_close_2 | close
NN提出的问题是根据close
和prev_close_1
预测prev_close_2
,因此公式close ~ prev_close_1 + prev_close_2
以下是网络架构
注意作为先前关闭值的输入和输出:预测的接近值。
library(neuralnet)
N = 10
prices <- data.frame(close=1:N) # Dummy straight line uptrend for N periods
print(prices)
shift <- function(x, n){
c(x[-(seq(n))], rep(NA, n))
}
# Form the training dataframe
train <- data.frame(
prev_close_1=prices$close,
prev_close_2=shift(prices$close, 1),
close=shift(prices$close, 2)
)
# When shifting the columns for time lag effect, some rows will have NAs
# Let's remove NAs
train <- na.omit(train)
print(train)
nn <- neuralnet(
formula=close ~ prev_close_1 + prev_close_2,
data=train,
hidden=c(1), # 1 neuron in a single hidden layer
linear.output=TRUE # we want regression not classification
)
print(prediction(nn))
plot(nn)
这就是你所拥有的,它只是历史股票价格
close
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 10
这就是你需要的,功能和目标,尝试在下面的训练数据框中形成行,以了解移位/滞后。
prev_close_1 prev_close_2 close
1 1 2 3
2 2 3 4
3 3 4 5
4 4 5 6
5 5 6 7
6 6 7 8
7 7 8 9
8 8 9 10
prev_close_1 prev_close_2 close
1 1 2 2.994291864
2 2 3 4.017828301
3 3 4 5.002914789
4 4 5 5.968855729
5 5 6 6.978644849
6 6 7 8.030810042
7 7 8 9.051063456
8 8 9 9.945595495