簡體   English   中英

R中的神經網絡預測股票收益

[英]Neural network in R to predict stock return

我正在使用神經網絡包並使用神經網絡函數來訓練我的數據並計算以進行預測。

x <- neuralnet( X15  ~ X1 + X2 + X3 + X8, norm_ind[1:15000,],2,act.fct="tanh",linear.output=TRUE)
pr <- compute(x,testdata)

我面臨的問題是pr$net.result值對於所有數據點幾乎都是恆定的。

我正在預測股票回報並提前一天提供股票實際回報作為目標函數,即公式中的X15 我得到的輸出幾乎是恆定的,如下所示。 誰能告訴我需要做什么?

1084 0.00002217204168
1085 0.00002217204168
1086 0.00002217204168
1087 0.00002217204168
1088 0.00002217204168
1089 0.00002217204168
1090 0.00002217204168
1091 0.00002217204168
1092 0.00002217204168
1093 0.00002217204168
1094 0.00002217204168
1095 0.00002217204168
1096 0.00002217204168
1097 0.00002217204168
1098 0.00002217204168
1099 0.00002217204168
1100 0.00002217204168

在通過neuralnet教授神經網絡之前,強烈建議縮放您的數據:

learn <- scale(learn)
# be honest and use the mean and scaling inferred from the training set -
# the test set could in principle contain only one element causing an incorrect scaling
test <- scale(test, center = attributes(learn)$`scaled:center`, scale = attributes(learn)$`scaled:scale`)
model <- neuralnet(formula, learn, ...)
compute(model, test)$net.result

神經網絡對數據的移動和縮放很敏感。 此外,初始權重是從與標准正態分布相似的分布中隨機選擇的。

例如,參見 Yoshua Bengio [1] 的一篇優秀論文中的第 3.2 章“預處理”(以及更多)。

現代更新:現代網絡通常通過使用歸一化層來接近這種敏感性,可能使用經過訓練的參數。 最著名和最受歡迎的是批量歸一化 [2]。

[1] http://arxiv.org/abs/1206.5533

[2] https://en.wikipedia.org/wiki/Batch_normalization

我遇到了類似的問題,我認為可能是由於傳統神經網絡中的局部最小值問題。 您可能必須超越神經網絡包才能獲得您想要的東西。

最可能的問題是對於可用的訓練數據量,您有太多的輸入變量。

這是有關此主題的好信息

https://stats.stackexchange.com/questions/65292/r-neuralnet-compute-give-a-constant-answer

我不確定這是否是問題所在,但只有 2 個隱藏節點可能會導致此問題。

嘗試將你的neuralnet函數中的learningrate參數設置為learningrate=0.01東西

默認值為 NULL,我發現在使用 nnet() 執行類似測試時會導致類似問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM