AI Atlas
Orta· ~2 dk okuma#forecasting#time-series#prediction

Tahminleme

Forecasting

Geçmiş veriden yola çıkarak gelecekteki bir değişkenin değerini öngörmek — satış, trafik, talep, fiyat gibi sürekli değişimleri modellemenin başlıca uygulama alanı.

TAHMİNLEMEşimdigeçmiştahmin + aralıkGeçmişten yola çıkıp belirsizlikle birlikte ileri tahmin.
Tanım

Tahminleme (forecasting), zaman serisi verisinden gelecek değerleri öngörmeye odaklanan bir makine öğrenmesi alt alanıdır. Klasik regresyondan farklı yönü zamanın özel bir boyut olmasıdır: gelecek geçmişten ayrı düşünülemez, mevsimsellik ve trend kalıpları beklenir, eğitim/test bölünmesi rastgele yapılamaz (sızıntıyı önlemek için).

Modelleme yaklaşımları üç ana aileden gelir:

- İstatistiksel modeller (ARIMA, ETS, SARIMA): otoregresyon, hareketli ortalama, mevsimsellik ayrıştırması. Az veriyle iyi çalışır, açıklanabilir, sağlam baseline. - Makine öğrenmesi (gradient boosting, lineer model + lag özellikleri): geçmiş değerleri ve dış değişkenleri (hava, kampanya, tatil) özellik olarak verirsin. Pratikte en güçlü sonuçlardan birini verir. - Derin öğrenme (LSTM, Temporal Fusion Transformer, TFT, N-BEATS): uzun bağımlılıklar ve çok sayıda zaman serisi olduğunda. Eğitim pahalı, küçük veride genelde aşırı.

Tahmin yalnızca bir nokta tahmini değil, tahmin aralığı (prediction interval) sunmalı. "Yarın 1.250 satarız" demek yerine "%80 olasılıkla 1.100–1.400 arası" demek karar verme için çok daha kullanışlıdır. Quantile regresyon, Prophet'in güven aralıkları, conformal prediction bu işi yapar.

Benzetme

Bir denizci hava durumunu öngörmek gibidir. Geçmiş sıcaklık, rüzgâr, basınç verisine bakar; mevsimsel kalıpları (yaz sıcak, kış soğuk) ekler; rüzgârın trend yönüne bakar; ufuktaki bulutlara bakar. "Yarın yağmur ihtimali %70" der — tek bir sonuç değil, olasılık. Tahminleme tam olarak bunun matematiksel karşılığıdır.

Gerçek dünyadan örnek

Bir e-ticaret sitesi günlük sipariş sayısını öngörmek istiyor; doğru tahmin operasyonel kapasite, kurye dağıtımı ve stok için kritik. Üç model kıyaslanıyor:

- SARIMA: Haftalık ve yıllık mevsimselliği iyi yakalıyor. Test seti MAPE %8.2. - LightGBM + lag özellikleri: Geçmiş 7, 30, 365 gündeki sipariş + tatil bayrağı + kampanya bayrağı + hava durumu. Test MAPE %6.4. - Temporal Fusion Transformer: Aynı özellikler ve daha fazlası, attention ile uzun bağımlılık. Test MAPE %5.9 ama eğitim 100x pahalı.

LightGBM seçilir; cost/quality dengesi en iyi orada. Üstüne quantile regresyon eklenip %10/%50/%90 quantile'lar tahmin edilir; operasyon ekibi "en kötü senaryoyu" planlamak için %90 tahmini kullanır.

Kod örnekleri
LightGBM + lag features ile tahminPython
import pandas as pd
import lightgbm as lgb
from sklearn.metrics import mean_absolute_percentage_error

df = pd.read_csv("orders.csv", parse_dates=["date"]).sort_values("date")

# Lag özellikleri (geçmişten sızıntı yok!)
for lag in [1, 7, 14, 30, 365]:
    df[f"lag_{lag}"] = df["orders"].shift(lag)
df["dow"] = df["date"].dt.dayofweek
df["month"] = df["date"].dt.month
df = df.dropna()

# Zaman tabanlı bölme — rastgele DEĞİL
cutoff = "2025-09-01"
train = df[df["date"] < cutoff]
test = df[df["date"] >= cutoff]

features = [c for c in df.columns if c not in ["date", "orders"]]
model = lgb.LGBMRegressor(n_estimators=500, learning_rate=0.05)
model.fit(train[features], train["orders"])

preds = model.predict(test[features])
mape = mean_absolute_percentage_error(test["orders"], preds)
print(f"Test MAPE: {mape:.3f}")
Prophet · mevsimsellik + tatilPython
from prophet import Prophet
import pandas as pd

df = pd.DataFrame({"ds": dates, "y": orders})

m = Prophet(
    yearly_seasonality=True,
    weekly_seasonality=True,
    daily_seasonality=False,
    seasonality_mode="multiplicative",
)
m.add_country_holidays(country_name="TR")
m.fit(df)

future = m.make_future_dataframe(periods=30)
forecast = m.predict(future)

# yhat: nokta tahmin, yhat_lower / yhat_upper: %80 güven aralığı
print(forecast[["ds", "yhat", "yhat_lower", "yhat_upper"]].tail(10))
Ne zaman kullan
  • Operasyonel kapasite, stok, personel planlaması için talep tahmini
  • Finansal planlama: gelir, harcama, nakit akışı projeksiyonu
  • Yeni özellik için A/B test sonrası proje gelir tahmini
  • Anomali tespiti — beklenenden büyük sapma alarm üretir
Ne zaman kullanma
  • Geçmişin gelecekle benzemediği yapısal kırılma sonrası (örn. pandemi başlangıcı)
  • Çok kısa zaman serileri — istatistiksel anlam çıkarmak zor
  • Tek seferlik karar — model kurmak orantısız iş
Sık yapılan hatalar

Veri sızıntısı

Eğitim setine gelecekten gelen özellik kazara girer (örn. 'aynı haftanın sonraki günleri'). Lag özelliklerinde özellikle dikkat. Tüm değişkenler tahmin anında bilinmeli.

Rastgele cross-validation

Zaman serisinde sıradan k-fold geçmişi geleceğin doğrulamasında kullanır → şişirilmiş skorlar. TimeSeriesSplit, rolling forecasting origin kullan.

Sadece nokta tahmin raporlamak

İş kararı belirsizliği bilmeden alınamaz. Quantile regresyon, conformal prediction, MC dropout gibi yöntemlerle tahmin aralığı üret.