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
- Componentes de séries temporais e estacionariedade
- Modelos ARIMA e SARIMA
- Prophet para previsão automatizada
- LSTM para previsão de séries temporais