0Pricing
Learn AI with Python · Aula

LSTM para previsão de séries temporais

Preparação de sequências, LSTM sem estado versus com estado, janela de observação e previsão em várias etapas.

LSTM para previsão de séries temporais é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.

Por que usar LSTM em séries temporais?

LSTM (Memória de Longo e Curto Prazo) é uma rede neural recorrente que memoriza padrões ao longo de sequências extensas usando células de memória com portas. Ela consegue modelar dependências não lineares que ARIMA não consegue, sendo poderosa para séries complexas quando há dados suficientes.

Divisão em janelas de sequências

As LSTMs aprendem a partir de janelas: segmentos de tamanho fixo das etapas anteriores usados para prever o próximo valor. Com uma janela de 10, o modelo observa as etapas 1 a 10 para prever a etapa 11, depois as etapas 2 a 11 para prever a 12, e assim por diante.

Criando janelas no código

Uma função auxiliar transforma uma série unidimensional em pares de entrada e alvo.

import numpy as np

def make_windows(series, window):
    X, y = [], []
    for i in range(len(series) - window):
        X.append(series[i:i+window])
        y.append(series[i+window])
    return np.array(X), np.array(y)

X, y = make_windows(values, window=10)

Escalonando os dados

As redes neurais treinam melhor com entradas escalonadas. Use MinMaxScaler para mapear os valores para [0, 1] e lembre-se de aplicar inverse_transform às previsões posteriormente.

from sklearn.preprocessing import MinMaxScaler

scaler = MinMaxScaler()
scaled = scaler.fit_transform(values.reshape(-1, 1))

Reformatando para LSTM

As camadas LSTM do Keras esperam entradas no formato (samples, timesteps, features). Para uma série univariada, features é 1.

# X is (samples, timesteps); add a feature axis
X = X.reshape((X.shape[0], X.shape[1], 1))
print(X.shape)  # (samples, timesteps, 1)

Construindo o modelo

Uma arquitetura simples: uma camada LSTM(50) alimentando uma saída Dense(1) que prevê o próximo valor.

from tensorflow.keras import Sequential
from tensorflow.keras.layers import LSTM, Dense

model = Sequential([
    LSTM(50, input_shape=(X.shape[1], 1)),
    Dense(1)
])

Por que Dense(1)

Prever uma etapa à frente é uma regressão com uma única saída numérica, portanto a camada final é Dense(1) sem função de ativação. Para previsões de várias etapas, você usaria Dense(n_steps).

Compilação

Use o otimizador adam e a função de perda mse (erro quadrático médio), a escolha padrão para regressões com alvos contínuos.

model.compile(optimizer="adam", loss="mse")

Treinamento

Use fit nos dados organizados em janelas. Uma divisão de validação monitora a capacidade de generalização ao longo das épocas.

history = model.fit(
    X, y,
    epochs=50,
    batch_size=32,
    validation_split=0.2
)

Fazendo previsões

Faça previsões em novas janelas e, em seguida, aplique inverse_transform para retornar à escala original.

pred_scaled = model.predict(X_test)
pred = scaler.inverse_transform(pred_scaled)

Empilhamento e ajuste

Para séries mais difíceis, empilhe LSTMs (defina return_sequences=True em todas, exceto na última) e adicione dropout. Mais camadas capturam padrões mais profundos, mas precisam de mais dados e aumentam o risco de sobreajuste.

model = Sequential([
    LSTM(50, return_sequences=True, input_shape=(X.shape[1], 1)),
    LSTM(50),
    Dense(1)
])

Verificação rápida

Faça um teste dos seus conhecimentos sobre previsões com LSTM.

Recapitulação

Você preparou janelas, escalonou os dados com MinMaxScaler, reformatou-os para (samples, timesteps, features), criou LSTM(50) + Dense(1), compilou com adam/mse, treinou e fez previsões (retornando à escala original com inverse_transform). Isso encerra o curso de Séries Temporais. Próximo curso: Sistemas de Recomendação.

Perguntas Frequentes

A aula “LSTM para previsão de séries temporais” é grátis?

Sim — o texto completo de “LSTM para previsão de séries temporais” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.

O que vou aprender em “LSTM para previsão de séries temporais”?

Preparação de sequências, LSTM sem estado versus com estado, janela de observação e previsão em várias etapas. Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Learn AI with Python?

Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “LSTM para previsão de séries temporais”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Learn AI with Python?

Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Componentes de séries temporais e estacionariedade
  2. Modelos ARIMA e SARIMA
  3. Prophet para previsão automatizada
  4. LSTM para previsão de séries temporais
← Voltar para Learn AI with Python