Aplicativo de aprendizado profundo da linguagem R: previsão do preço das ações e rede neural recorrente (RNN)

Índice

1. O que é previsão de série temporal?

2. Introdução à Rede Neural Recorrente (RNN)

3. Preparação e pré-processamento de dados

4. Construa um modelo de previsão do preço das ações

5. Treinamento e ajuste de modelo

6. Previsão e Avaliação

7. Aplicações práticas de previsão de séries temporais


introdução

A previsão de dados de séries temporais sempre foi um desafio importante na ciência de dados e nas finanças. A previsão do preço das ações é uma das tarefas de alto nível que possui imenso valor para investidores e traders. Redes Neurais Recorrentes (RNN) em tecnologia de aprendizagem profunda têm bom desempenho na previsão de séries temporais.Este blog explorará em profundidade como usar a linguagem R e RNN para prever preços de ações.

1. O que é previsão de série temporal?

Uma série temporal é uma série de pontos de dados organizados em ordem temporal. A previsão de séries temporais visa prever valores futuros com base em observações passadas. Um exemplo clássico é uma série temporal de preços de ações, em que cada ponto de dados representa o preço das ações durante um período de tempo. Prever alterações nos preços das ações pode ajudar os investidores a tomar decisões, mas também é uma tarefa desafiadora porque os preços das ações são afetados por muitos fatores.

2. Introdução à Rede Neural Recorrente (RNN)

RNN é um modelo de aprendizado profundo adequado para dados sequenciais. Possui uma estrutura de loop interno e pode lidar com sequências de entrada de comprimento variável. RNN tem um bom desempenho na previsão de séries temporais porque é capaz de capturar as dependências temporais na sequência e ajuda a compreender tendências e padrões na sequência.

3. Preparação e pré-processamento de dados

Antes de iniciarmos a modelagem, precisamos preparar e pré-processar os dados da série temporal dos preços das ações. Isso inclui carregamento de dados, limpeza, normalização e outras etapas.

A seguir está um exemplo de preparação de dados e pré-processamento de código R:

# 安装并加载必要的R包
install.packages("quantmod")
library(quantmod)

# 下载股票价格数据
getSymbols("AAPL", from = "2000-01-01", to = "2022-01-01")

# 提取收盘价格数据
closing_prices <- Cl(AAPL)

# 归一化数据
min_price <- min(closing_prices)
max_price <- max(closing_prices)
normalized_prices <- (closing_prices - min_price) / (max_price - min_price)

4. Construa um modelo de previsão do preço das ações

A seguir, construiremos um modelo RNN para prever o preço normalizado das ações. A arquitetura de uma RNN geralmente inclui uma ou mais camadas recorrentes e uma camada de saída.

Aqui está um exemplo simplificado de modelo RNN:

# 安装并加载Keras包
install.packages("keras")
library(keras)

# 创建RNN模型
model <- keras_model_sequential() %>%
  layer_lstm(units = 50, return_sequences = TRUE, input_shape = c(look_back, 1)) %>%
  layer_lstm(units = 50) %>%
  layer_dense(units = 1)

# 编译模型
model %>% compile(loss = "mean_squared_error", optimizer = "adam")

5. Treinamento e ajuste de modelo

O treinamento do modelo é uma etapa fundamental na previsão de séries temporais. Usaremos dados de treinamento para treinar o modelo e dados de validação para monitorar o desempenho do modelo. O processo de treinamento pode exigir várias rodadas de iteração e ajuste de parâmetros.

Aqui está um exemplo simples de treinamento de modelo:

# 分割数据集为训练集和验证集
train_size <- floor(0.67 * length(normalized_prices))
train_data <- normalized_prices[1:train_size]
test_data <- normalized_prices[(train_size + 1):length(normalized_prices)]

# 创建训练数据生成器
train_generator <- function(data, look_back) {
  X <- Y <- numeric(0)
  for (i in look_back:length(data)) {
    X <- c(X, data[(i - look_back + 1):i])
    Y <- c(Y, data[i + 1])
  }
  return(list(X = array(X, dim = c(length(X) / look_back, look_back, 1)), Y = Y))
}

# 训练模型
look_back <- 10
train_gen <- train_generator(train_data, look_back)
model %>% fit(train_gen$X, train_gen$Y, epochs = 100, batch_size = 1, verbose = 2)

6. Previsão e Avaliação

Após concluir o treinamento do modelo, podemos usá-lo para fazer previsões e avaliar seu desempenho. Normalmente, aplicamos o modelo ao conjunto de dados de teste e calculamos a diferença entre os valores previstos e reais.

Aqui está um exemplo simples de previsão e avaliação:

# 创建测试数据生成器
test_gen <- train_generator(test_data, look_back)

# 进行预测
predicted_prices <- model %>% predict(test_gen$X)

# 反归一化预测值
predicted_prices <- predicted_prices * (max_price - min_price) + min_price

# 计算均方根误差(RMSE)
rmse <- sqrt(mean((predicted_prices - test_data[(look_back + 1):length(test_data)])^2))

7. Aplicações práticas de previsão de séries temporais

A previsão de séries temporais é amplamente utilizada em finanças, previsão do tempo, previsão de vendas, gerenciamento de tráfego e outras áreas. A previsão do preço das ações é um dos cenários de aplicação importantes, que pode ajudar os investidores a formular estratégias de negociação e gestão de risco.

Acho que você gosta

Origin blog.csdn.net/m0_52343631/article/details/132904484
Recomendado
Clasificación