LSTM untuk Peramalan Deret Waktu
Persiapan urutan, LSTM tanpa status vs dengan status, jendela tinjauan ke belakang, peramalan multilangkah.
LSTM untuk Peramalan Deret Waktu adalah pelajaran Learn AI with Python gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn AI with Python, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn AI with Python mencakup 4 pelajaran total.
Mengapa menggunakan LSTM untuk Deret Waktu?
LSTM (Memori Jangka Pendek Panjang) adalah jaringan saraf berulang yang mengingat pola sepanjang urutan panjang menggunakan sel memori berpintu. LSTM dapat memodelkan dependensi nonlinier yang tidak dapat dimodelkan ARIMA, sehingga sangat efektif untuk deret kompleks jika tersedia cukup data.
Pembentukan Jendela Urutan
LSTM belajar dari jendela: potongan berukuran tetap dari langkah-langkah sebelumnya yang digunakan untuk memprediksi nilai berikutnya. Dengan jendela berukuran 10, model melihat langkah 1-10 untuk memprediksi langkah 11, lalu langkah 2-11 untuk memprediksi langkah 12, dan seterusnya.
Membuat Jendela dalam Kode
Fungsi pembantu mengubah deret 1D menjadi pasangan masukan/sasaran.
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)Penskalaan Data
Jaringan saraf dilatih lebih baik menggunakan masukan yang diskalakan. Gunakan MinMaxScaler untuk memetakan nilai ke [0, 1], dan ingatlah untuk menggunakan inverse_transform pada prediksi nanti.
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaled = scaler.fit_transform(values.reshape(-1, 1))Mengubah Bentuk untuk LSTM
Lapisan LSTM Keras mengharapkan masukan berbentuk (sampel, langkah waktu, fitur). Untuk deret univariat, jumlah fiturnya adalah 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)Membangun Model
Arsitektur sederhana: satu lapisan LSTM(50) yang mengalir ke keluaran Dense(1) untuk memprediksi nilai berikutnya.
from tensorflow.keras import Sequential
from tensorflow.keras.layers import LSTM, Dense
model = Sequential([
LSTM(50, input_shape=(X.shape[1], 1)),
Dense(1)
])Mengapa Dense(1)
Peramalan satu langkah ke depan merupakan regresi dengan satu keluaran numerik, sehingga lapisan terakhir adalah Dense(1) tanpa aktivasi. Untuk peramalan beberapa langkah, gunakan Dense(n_steps).
Kompilasi
Gunakan pengoptimal adam dan kerugian mse (galat kuadrat rata-rata), pilihan standar untuk regresi dengan sasaran kontinu.
model.compile(optimizer="adam", loss="mse")Pelatihan
Latih model menggunakan data berjendela. Pemisahan validasi memantau kemampuan generalisasi di setiap putaran pelatihan.
history = model.fit(
X, y,
epochs=50,
batch_size=32,
validation_split=0.2
)Prediksi
Lakukan prediksi pada jendela baru, lalu gunakan inverse_transform untuk mengembalikannya ke skala asli.
pred_scaled = model.predict(X_test)
pred = scaler.inverse_transform(pred_scaled)Menumpuk dan Menyetel
Untuk deret yang lebih sulit, tumpuk beberapa LSTM (tetapkan return_sequences=True pada semua lapisan kecuali lapisan terakhir) dan tambahkan dropout. Lapisan yang lebih banyak dapat menangkap pola yang lebih mendalam, tetapi memerlukan lebih banyak data dan meningkatkan risiko pencocokan berlebihan.
model = Sequential([
LSTM(50, return_sequences=True, input_shape=(X.shape[1], 1)),
LSTM(50),
Dense(1)
])Pemeriksaan Singkat
Uji pengetahuan Anda tentang peramalan menggunakan LSTM.
Ringkasan
Anda telah menyiapkan jendela, melakukan penskalaan dengan MinMaxScaler, mengubah bentuk menjadi (sampel, langkah waktu, fitur), membangun LSTM(50) + Dense(1), melakukan kompilasi dengan adam/mse, melatih model, dan membuat prediksi dengan mengembalikannya ke skala asli menggunakan inverse_transform. Kursus Deret Waktu berakhir di sini. Kursus berikutnya: Sistem Rekomendasi.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “LSTM untuk Peramalan Deret Waktu” gratis?
Ya — teks lengkap “LSTM untuk Peramalan Deret Waktu” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn AI with Python, upgrade ke CoddyKit PRO. Kursus Learn AI with Python mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “LSTM untuk Peramalan Deret Waktu”?
Persiapan urutan, LSTM tanpa status vs dengan status, jendela tinjauan ke belakang, peramalan multilangkah. Kamu berlatih Learn AI with Python dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Learn AI with Python?
Tidak diperlukan pengalaman sebelumnya. Learn AI with Python di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “LSTM untuk Peramalan Deret Waktu” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn AI with Python ini?
Ya. Setiap pelajaran Learn AI with Python menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Komponen Deret Waktu dan Stasioneritas
- Model ARIMA dan SARIMA
- Prophet untuk Peramalan Otomatis
- LSTM untuk Peramalan Deret Waktu