Zaman Serisi Tahmini için LSTM
Dizi hazırlama, durumsuz ve durumlu LSTM, geriye bakış penceresi, çok adımlı tahmin.
Zaman Serisi Tahmini için LSTM, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.
Zaman Serileri için Neden LSTM?
LSTM (Uzun Kısa Süreli Bellek), kapılı bellek hücrelerini kullanarak uzun dizilerdeki kalıpları hatırlayan yinelenen bir sinir ağıdır. ARIMA'nın modelleyemediği doğrusal olmayan bağımlılıkları modelleyebilir; bu da yeterli veri sağlandığında karmaşık seriler için onu güçlü kılar.
Dizi Pencereleri
LSTM'ler pencerelerden öğrenir: bir sonraki değeri tahmin etmek için kullanılan, geçmiş adımların sabit uzunluktaki kesitleri. Pencere uzunluğu 10 olduğunda model, 11. adımı tahmin etmek için 1-10. adımları görür; ardından 12. adımı tahmin etmek için 2-11. adımları görür ve bu şekilde devam eder.
Kodda Pencere Oluşturma
Bir yardımcı işlev, tek boyutlu bir seriyi girdi/hedef çiftlerine dönüştürür.
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)Verileri Ölçeklendirme
Sinir ağları, ölçeklendirilmiş girdilerle daha iyi eğitilir. Değerleri [0, 1] aralığına eşlemek için MinMaxScaler kullanın ve daha sonra tahminlere ters dönüşüm uygulamayı unutmayın.
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
scaled = scaler.fit_transform(values.reshape(-1, 1))LSTM için Yeniden Şekillendirme
Keras LSTM katmanları, (samples, timesteps, features) biçiminde şekillendirilmiş girdiler bekler. Tek değişkenli bir seride features değeri 1'dir.
# X is (samples, timesteps); add a feature axis
X = X.reshape((X.shape[0], X.shape[1], 1))
print(X.shape) # (samples, timesteps, 1)Modeli Oluşturma
Basit bir mimari şöyledir: bir sonraki değeri tahmin eden LSTM(50) katmanına bağlı bir Dense(1) çıktı katmanı.
from tensorflow.keras import Sequential
from tensorflow.keras.layers import LSTM, Dense
model = Sequential([
LSTM(50, input_shape=(X.shape[1], 1)),
Dense(1)
])Dense(1) Neden Kullanılır?
Bir adım sonrasını tahmin etmek, tek bir sayısal çıktıya sahip bir regresyon problemidir; bu nedenle son katman, etkinleştirme işlevi olmayan Dense(1) katmanıdır. Birden çok adım için tahmin yaparken Dense(n_steps) kullanabilirsiniz.
Derleme
Sürekli hedefler üzerinde regresyon için standart seçim olan adam iyileştiricisini ve mse (ortalama karesel hata) kaybını kullanın.
model.compile(optimizer="adam", loss="mse")Eğitim
Pencerelere ayrılmış veriler üzerinde modeli eğitin. Bir doğrulama bölmesi, eğitim dönemleri boyunca genelleme performansını izler.
history = model.fit(
X, y,
epochs=50,
batch_size=32,
validation_split=0.2
)Tahmin Yapma
Yeni pencereler üzerinde tahmin yapın, ardından özgün ölçeğe dönmek için ters dönüşüm uygulayın.
pred_scaled = model.predict(X_test)
pred = scaler.inverse_transform(pred_scaled)Katmanları Üst Üste Ekleme ve Ayarlama
Daha zor seriler için LSTM'leri üst üste ekleyin (return_sequences=True değerini son katman dışındaki tüm katmanlarda ayarlayın) ve dropout ekleyin. Daha fazla katman daha derin kalıpları yakalar; ancak daha fazla veriye ihtiyaç duyar ve aşırı öğrenme riskini artırır.
model = Sequential([
LSTM(50, return_sequences=True, input_shape=(X.shape[1], 1)),
LSTM(50),
Dense(1)
])Hızlı Kontrol
LSTM ile tahmin konusundaki bilginizi test edin.
Özet
Pencereler hazırladınız, MinMaxScaler ile ölçeklendirdiniz, (samples, timesteps, features) biçiminde yeniden şekillendirdiniz, LSTM(50) + Dense(1) oluşturdunuz, adam/mse ile derlediniz, eğittiniz ve tahmin yaptınız (özgün ölçeğe dönmek için ters dönüşüm uygulayarak). Zaman Serileri kursu burada sona eriyor. Sıradaki kurs: Öneri Sistemleri.
Sıkça Sorulan Sorular
“Zaman Serisi Tahmini için LSTM” dersi ücretsiz mi?
Evet — “Zaman Serisi Tahmini için LSTM” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.
“Zaman Serisi Tahmini için LSTM” dersinde ne öğreneceğim?
Dizi hazırlama, durumsuz ve durumlu LSTM, geriye bakış penceresi, çok adımlı tahmin. Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.
“Zaman Serisi Tahmini için LSTM” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Zaman Serisi Bileşenleri ve Durağanlık
- ARIMA ve SARIMA Modelleri
- Otomatik Tahmin için Prophet
- Zaman Serisi Tahmini için LSTM