LSTM ve transformer ile tahmin
Yarınki hava durumunu, gelecek ayki satışları veya bir kalp atışının ritmini tahmin etmek — hepsi zamanın akışındaki desenleri yakalamaya dayanır. Zaman serisi tahmini, geçmişin izlerinden geleceğin haritasını çıkarmaktır.
🎵Müzikal Notalar Gibi
Bir şarkıyı dinlerken, beynimiz önceki notalardan sonrakini tahmin eder. Zaman serisi de böyledir: **do-re-mi**'den sonra **fa** gelir diye beklenir. Ancak bazen besteci bizi şaşırtır — işte bu 'artık' (residual) bileşenidir.
Her zaman serisi üç temel bileşene **ayrıştırılabilir**:…
y(t) = Trend(t) + Mevsimsellik(t) + Artık(t)Toplamsal ayrıştırma: gözlem = trend + mevsimsellik + rastgele gürültü. Çarpımsal modelde toplama yerine çarpma kullanılır.
**ARIMA** (AutoRegressive Integrated Moving Average) üç parametreyle çalışır:…
⚠️ARIMA durağan seriler ister! Veri trende sahipse önce fark alarak (differencing) durağanlaştırmalısın. Aksi halde model anlamsız tahminler üretir.
Klasik ML modelleri (Random Forest, XGBoost) zaman bilmez — onlara **zamanı öğretmemiz** g…
Pandas ile lag feature oluşturma ve RandomForest tahmini
| 1 | import pandas as pd |
| 2 | from sklearn.ensemble import RandomForestRegressor |
| 3 | from sklearn.model_selection import train_test_split |
| 4 | |
| 5 | # Örnek veri |
| 6 | df = pd.DataFrame({'y': [10, 12, 15, 14, 18, 20, 22, 25, 24, 28]}) |
| 7 | |
| 8 | # Lag features oluştur |
| 9 | df['lag_1'] = df['y'].shift(1) |
| 10 | df['lag_2'] = df['y'].shift(2) |
| 11 | df['rolling_mean_3'] = df['y'].shift(1).rolling(3).mean() |
| 12 | df = df.dropna() |
| 13 | |
| 14 | # Temporal split (shuffle=False önemli!) |
| 15 | X = df[['lag_1', 'lag_2', 'rolling_mean_3']] |
| 16 | y = df['y'] |
| 17 | X_train, X_test, y_train, y_test = train_test_split( |
| 18 | X, y, test_size=0.3, shuffle=False |
| 19 | ) |
| 20 | |
| 21 | model = RandomForestRegressor(n_estimators=100) |
| 22 | model.fit(X_train, y_train) |
| 23 | print(f"Test R²: {model.score(X_test, y_test):.2f}") |
💡Zaman serisi split'inde asla shuffle=True kullanma! Gelecekten geçmişe veri sızması (data leakage) modelin gerçek performansını gizler.
**LSTM** (Long Short-Term Memory) zaman bağımlılığını doğal olarak öğrenir. Encoder-decode…
ARIMA
LSTM
**Temporal Fusion Transformer (TFT)**: Dikkat mekanizmasıyla hangi geçmiş noktaların öneml…
ℹ️Transformer'lar paralel işlem avantajıyla LSTM'den çok daha hızlı eğitilir. Ancak küçük veri setlerinde ARIMA hâlâ rekabetçidir!
✦ Quiz
Zaman serisi ayrıştırmasında 'mevsimsellik' neyi temsil eder?
✦ Quiz
Zaman serisi için train/test split yaparken neden shuffle=False kullanılmalı?
✦ Quiz
Aşağıdakilerden hangisi Temporal Fusion Transformer'ın avantajıdır?
Bağlantılı Konular