Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 构建股票预测的LSTM_R_Keras_Lstm - Fatal编程技术网

R 构建股票预测的LSTM

R 构建股票预测的LSTM,r,keras,lstm,R,Keras,Lstm,我正在R中使用keras构建我的第一个LSTM模型。我相信我的问题在于我的输入形状,我将感谢您的帮助 我使用t时的收盘股票收益率来预测t+1时的收益率 所以我认为我的输入形状应该等于1 这是我的密码: #LSTM Model model <- keras::keras_model_sequential() %>% layer_lstm(units = 50, return_sequences = TRUE, dropout = 0.2, weights = 0.01, inp

我正在R中使用keras构建我的第一个LSTM模型。我相信我的问题在于我的输入形状,我将感谢您的帮助

我使用t时的收盘股票收益率来预测t+1时的收益率 所以我认为我的输入形状应该等于1

这是我的密码:

#LSTM Model 
model <- keras::keras_model_sequential() %>% 
  layer_lstm(units = 50, return_sequences = TRUE, dropout = 0.2, weights = 0.01, input_shape = 1
             )%>% 
  layer_lstm(units = 100, return_sequences = FALSE, dropout = 0.2, weights = 0.01
            )%>%
  layer_dense(units = 1, activation = 'linear')

model %>% compile(
  optimizer = optimizer_rmsprop(),
  loss = "mse"
)
有没有关于我做错了什么的想法和我应该做什么的建议

谢谢你抽出时间

我相信我提供的信息应该足以回答我的问题。如果没有,下面是我获取数据和结果的完整代码

#Downloading Stock Price and normalize to returns    
BRI_Price <-quantmod::getSymbols("BBRI.JK", src = "yahoo", from = as.Date("2015-01-01"), to = as.Date("2017-02-17"), by = "day", auto.assign = FALSE) 
Returns_Closing <-quantmod::dailyReturn(BRI_Price$BBRI.JK.Close) 

#Training and Testing Data 
train_size <- round(.9*nrow(Returns_Closing)) 
test_size <- nrow(Returns_Closing) - train_size 
train <- Returns_Closing[0:train_size,] 
test <- Returns_Closing[train_size:nrow(Returns_Closing),] 

#Reshape into X=t and Y=t+1 
x_train <- Returns_Closing[1:train_size,] 
y_train <- Returns_Closing[2:train_size+1] 
x_test <- Returns_Closing[train_size:nrow(Returns_Closing),] 
y_test <- Returns_Closing[468:nrow(Returns_Closing),] 

#LSTM Model 
model <- keras::keras_model_sequential() %>% 
layer_lstm(units = 50, return_sequences = TRUE, dropout = 0.2, weights = 0.01, input_shape = 1 )%>% 
layer_lstm(units = 100, return_sequences = FALSE, dropout = 0.2, weights = 0.01 )%>% 
layer_dense(units = 1, activation = 'linear') 

model %>% 
compile( optimizer = optimizer_rmsprop(), loss = "mse" ) 
#train the model 
Train_Model <- model %>% fit( x = x_train, batch_size = 100, epochs = 1, validation_data = list(x_test, y_test) )
#下载股票价格并将其正常化为回报

BRI_Price您的培训数据集的形状。检查这个。你的训练数据集的形状是什么。看看这个。
#Downloading Stock Price and normalize to returns    
BRI_Price <-quantmod::getSymbols("BBRI.JK", src = "yahoo", from = as.Date("2015-01-01"), to = as.Date("2017-02-17"), by = "day", auto.assign = FALSE) 
Returns_Closing <-quantmod::dailyReturn(BRI_Price$BBRI.JK.Close) 

#Training and Testing Data 
train_size <- round(.9*nrow(Returns_Closing)) 
test_size <- nrow(Returns_Closing) - train_size 
train <- Returns_Closing[0:train_size,] 
test <- Returns_Closing[train_size:nrow(Returns_Closing),] 

#Reshape into X=t and Y=t+1 
x_train <- Returns_Closing[1:train_size,] 
y_train <- Returns_Closing[2:train_size+1] 
x_test <- Returns_Closing[train_size:nrow(Returns_Closing),] 
y_test <- Returns_Closing[468:nrow(Returns_Closing),] 

#LSTM Model 
model <- keras::keras_model_sequential() %>% 
layer_lstm(units = 50, return_sequences = TRUE, dropout = 0.2, weights = 0.01, input_shape = 1 )%>% 
layer_lstm(units = 100, return_sequences = FALSE, dropout = 0.2, weights = 0.01 )%>% 
layer_dense(units = 1, activation = 'linear') 

model %>% 
compile( optimizer = optimizer_rmsprop(), loss = "mse" ) 
#train the model 
Train_Model <- model %>% fit( x = x_train, batch_size = 100, epochs = 1, validation_data = list(x_test, y_test) )