Machine Learning
Tahmin modelini zaman sırasıyla sınamak
Predict deneyinde regresyonu haftalık tekrarla aynı hedef günlerde karşılaştırdık. Tahmin ufku, geçmiş test, MAE ve hata bandının anlamını hesaplanan örneklerle açıklıyoruz.
Sentetik günlük seriler üzerinde 7 günlük tahmin örneği. Hatalar, aynı 14 geçmiş hedef gün için hesaplanır; müşteri performansı veya genel başarı oranı değildir.
Modelden önce bir başlangıç yöntemi
Predict’te ilk karşılaştırmayı basit tuttuk: bir yöntem son haftanın değerlerini tekrar ediyor, diğeri zaman eğilimini ve haftalık döngüyü öğrenen regresyon kuruyor. Her iki yöntem de aynı günlük seri ve aynı hedef günler üzerinde çalışıyor.
Regresyonda bir sabit, normalize edilmiş zaman indeksi ve haftanın günlerini temsil eden altı değişken var. Katsayılar en küçük karelerle hesaplanıyor. Bu modelin yararlı olup olmadığını, başlangıç yönteminin hatasını da göstererek inceliyoruz.
Yöntem kaynağı: Forecasting: Principles and Practice · Regresyon ile tahmin ↗
Her hedef gün için yalnızca o anda bilinen veri
Bir haftalık tahmini değerlendirirken yarının gözlemini eğitim verisine eklemek, tahmin anında bulunmayan bir bilgiyi modele vermek olur. Geçmiş testimizde her hedef gün için eğitim verisinin sonunu yedi gün önceye koyuyoruz. Sonraki hedefe geçince model yeniden kuruluyor.
Örneğin hedef 8 Mart ve ufuk 7 günse eğitim verisinin son günü 1 Mart. 2–8 Mart gözlemleri bu hedef için kurulan modele girmez. Arayüzdeki geçmiş test tablosu hedef günü ve kullanılan verinin son gününü yan yana gösteriyor. Seçilen ufuk 1 veya 14 gün olduğunda aynı kural o süreye göre uygulanıyor.
const training = history.slice(0, target - horizon + 1);
const model = fit(training);
const prediction = model(target);Yöntem kaynağı: Forecasting: Principles and Practice · Zaman serisinde geçmiş test ↗
Aynı örnekte hangi yöntem daha az hata yapıyor?
MAE, mutlak tahmin hatalarının ortalaması. Birim olarak okunabiliyor; yüzde hesabı gerektirmediği için sıfır talep örneğimizde bölme sorunu oluşturmuyor. Tablodaki değerleri, deneyin mevcut hesaplama modülünden üretiyoruz.
Artan talep örneğinde regresyonun hatası daha düşük. Ani seviye değişimi içeren seride ise haftalık tekrar öne geçiyor. İki sonucu da görünür tutmak, model seçimini tek bir iyi örneğe bağlamamamızı sağlıyor.
| Seri | Regresyon MAE | Haftalık tekrar MAE |
|---|---|---|
| Artan talep | 2,79 | 5,79 |
| Değişen talep | 20,4 | 3 |
Gölgeli alan ne söylüyor?
Grafikteki hata bandı, 14 geçmiş testin mutlak hatalarının 90. yüzdeliğinden türetiliyor. Merkezi tahminin iki tarafına bu genişliği ekliyoruz; alt sınırı sıfırın altında bırakmıyoruz.
Bu, betimleyici bir örnek hata bandı. Geleceğin yüzde 90 olasılıkla bu alanda kalacağını söylemiyor. Seçilen ufkun son gününe ait hatalar tüm gelecek satırlara uygulanıyor; her gün için ayrı kalibrasyon yapılmıyor. Az sayıda test ve değişen koşullar, bandın nasıl okunacağına ilişkin bu sınırı önemli kılıyor.
Sonucu yeniden üretmek
Deneyde Artan talep serisini ve 7 günü seçip hesaplamayı çalıştır. Geçmiş test tablosunu aç; model ile başlangıç yönteminin aynı hedefleri kullandığını incele. Ardından Değişen talep serisine geç. Karşılaştırmanın yönü değişir.
CSV indirerek günleri, merkezi tahmini, hata bandını ve başlangıç yöntemini birlikte inceleyebilirsin. Otomatik testlerimiz tam trend/haftalık örneğini, eğitim sonrasındaki verinin önceki tahmini etkilememesini ve sıfır talebi de kontrol ediyor. Gerçek ürün için veri davranışı, işletme kararı ve değerlendirme dönemi ayrıca belirlenmeli.