Bir e-ticaret mağazasının iki korkusu vardır: "Ürün tükendi" ve "Depoda 3 yıllık stok var." Her ikisi de maliyet yaratır, birincisi satışı kaçırarak, ikincisi sermayeyi bağlayarak. Makine öğrenmesi (ML) tabanlı stok tahmini, bu iki aşırı nokta arasındaki mükemmel dengeyi bulmak için tasarlanmış.
Walmart'ın yaptığı bir araştırmaya göre, stok tükenmesi yıllık 4 trilyon dolar küresel satış kaybına yol açıyor. Öte yandan fazla stok, dünya genelinde perakende sektörünün yıllık %20-30'unu bağlayan atıl sermayeyi temsil ediyor. Türkiye'de de durum farklı değil: Döviz dalgalanmalarının oluşturduğu belirsizlik, stok yönetimini özellikle karmaşık kılıyor.
Bu yazıda makine öğrenmesi ile stok tahmininin nasıl çalıştığını, hangi algoritmalar kullanıldığını ve mağazanızda nasıl uygulayabileceğinizi ele alacağız.
Geleneksel Stok Yönetiminin Sınırları
EOQ ve Sabit Yeniden Sipariş Noktası
Geleneksel stok yönetimi EOQ (Economic Order Quantity) formülü ve sabit yeniden sipariş noktalarına dayanır. Bu yaklaşımlar basittir ve belirli koşullarda iş görür, ancak ciddi sınırları vardır:
- Mevsimselliği tam yansıtmaz: Yaz aylarında klima satışları 10 kat artarken, kış aylarında dolu depo sorun yaratır
- Dış faktörleri ihmal eder: Sosyal medya trendleri, rakip kampanyaları, ekonomik haberler stok kararlarını etkiler
- Statik yapı: Piyasa değiştikçe kuralların manuel güncellenmesi gerekir
- Tek ürün odaklı: Ürünler arası etkileşimleri görmez (A ürünü tükenince B satışları artar gibi)
Makine Öğrenmesinin Getirdiği Fark
ML modelleri şunları yapabilir:
- Geçmiş verilerdeki karmaşık örüntüleri otomatik olarak keşfeder
- Yüzlerce değişkeni aynı anda değerlendirir
- Yeni veriler geldikçe kendini günceller
- Ürünler arası ilişkileri modeller
- Belirsizliği sayısal olarak ifade eder (bu ürün 95% ihtimalle 80-120 adet satılacak)
Stok Tahmininde Kullanılan ML Algoritmaları
Zaman Serisi Modelleri
ARIMA (Autoregressive Integrated Moving Average)Klasik istatistik kökenli, ancak hâlâ güçlü. Mevsimsel SARIMA versiyonu özellikle sezonlu ürünlerde etkili. Küçük veri setleri için iyi başlangıç noktası.
Prophet (Meta/Facebook)Mevsimsellik, tatil günleri ve özel olayları otomatik modelleyen güçlü bir kütüphane. E-ticaret için iyi calibre edilmiş.
from prophet import Prophet
import pandas as pd
## Satış verisi formatı
df = pd.DataFrame({
'ds': dates, # Tarih kolonu
'y': sales # Satış miktarı
})
model = Prophet(
yearly_seasonality=True,
weekly_seasonality=True,
holidays=turkish_holidays # Türkiye tatil takvimi
)
model.fit(df)
## 90 günlük tahmin
future = model.make_future_dataframe(periods=90)
forecast = model.predict(future)
Derin öğrenme tabanlı, karmaşık örüntüleri öğrenmede üstün. Büyük veri setleri için mükemmel ancak eğitimi daha karmaşık.
Makine Öğrenmesi Regresyon Modelleri
XGBoost / LightGBME-ticaret stok tahmininin en popüler algoritmaları. Gradient boosting tabanlı, birden fazla değişkeni birlikte işleme kapasitesinde başarılı.
Bu modeller sadece geçmiş satışları değil, şunları da input olarak alabilir:
- Hava durumu verileri
- Tatil ve özel gün bilgisi
- Kampanya planları
- Rakip fiyatları
- Sosyal medya bahis hacmi
- Web sitesi trafik verileri
Yorumlanması daha kolay, "hangi faktör ne kadar etkili?" sorusuna cevap verebilir. Başlangıç için XGBoost'a iyi bir alternatif.
Hangi Verilere İhtiyacınız Var?
Temel Veriler (Olmazsa Olmaz)
Satış Geçmişi- Minimum 1-2 yıllık günlük satış verisi
- Ürün SKU bazında
- İade bilgileri dahil
- Depodan çıkan / giren
- Stok tükenme tarihleri
- İade ile tekrar stoka giren miktarlar
Zenginleştirici Veriler (Güçlü Ekler)
Pazarlama Aktiviteleri- Kampanya tarihleri ve indirim oranları
- E-posta gönderimleri ve açılma oranları
- Sosyal medya reklam harcamaları
- Türkiye tatil takvimi ve dini günler
- Hava durumu (sezonal ürünler için)
- Ekonomik göstergeler (tüketici güven endeksi)
- Rakip fiyat hareketleri
- Tedarikçi teslim süreleri
- Geçmişte yaşanan gecikmeler
- Tedarik zinciri kırılganlıkları
Uygulama Rehberi: Adım Adım
Adım 1: Veri Temizleme ve Hazırlama
Ham stok veriniz büyük olasılıkla kirli. Önce şunları yapın:
Aykırı değerleri tespit edinBlack Friday gibi dönemlerde satışlar normun 10 katına çıkabilir. Bunlar modeli bozabilir — işaretlemeniz ve özel modellemeniz gerekiyor.
Eksik verileri doldurunStok tükenme dönemlerindeki satışlar aslında talep değildir, kısıtlı taleptir. Bu dönemleri işaretleyin.
Mevsimsel bileşeni tespit edinHer yıl tekrarlayan örüntüleri görselleştirin. Dekomposiyon analizi yapın.
Adım 2: Feature Engineering (Özellik Mühendisliği)
Ham veriyi anlamlı inputlara dönüştürün:
## Örnek feature engineering
df['is_holiday'] = df['date'].apply(is_turkish_holiday)
df['days_to_ramadan'] = df['date'].apply(days_until_ramadan)
df['week_of_year'] = df['date'].dt.isocalendar().week
df['is_weekend'] = df['date'].dt.dayofweek >= 5
df['rolling_7day_avg'] = df['sales'].rolling(7).mean()
df['same_week_last_year'] = df['sales'].shift(52) # Haftalık veri
df['promotion_active'] = df['date'].apply(check_promotions)
Adım 3: Model Seçimi ve Eğitimi
Başlangıç için önerilen yaklaşım:
- Baseline: Basit hareketli ortalama ile başlayın — benchmark olarak kullanacaksınız
- Prophet: Mevsimsel ürünler ve Türkiye tatil takvimi entegrasyonu
- XGBoost: Çok değişkenli tahmin için
- Ensemble: En iyi sonuç için birden fazla modeli birleştirin
Tahmin hatasını ölçmek için MAPE (Mean Absolute Percentage Error) veya RMSE kullanın. Endüstri standardı: MAPE %15-20 altında iyi kabul edilir.
Adım 4: Güvenlik Stoğu Hesaplama
ML modeliniz bir nokta tahmini değil, aralık tahmini vermelidir: "95% ihtimalle 80-120 adet satılacak." Bu aralığı kullanarak güvenlik stoku hesaplayın:
Güvenlik Stoku = Z × σ × √(Tedarik Süresi)
Z = İstenen servis seviyesine göre z-skoru (95% için 1.65)
σ = Talep standart sapması
Tedarik Süresi = Ortalama tedarik süresi (gün)
Türkiye'ye Özgü Stok Zorlukları
Döviz Kuru Etkisi
İthal ürünlerde dolar/euro kur artışı hem maliyetleri hem de tüketici talebini etkiler. Stok modelinize kur verisini eklemek, özellikle elektronik ve ithal moda kategorisinde tahmin doğruluğunu artırır.
Model yaklaşımı:- Kur değişim oranını lagged değişken olarak ekleyin
- Kur şoku senaryolarına göre stres testi yapın
Ramazan ve Dini Günler
Türkiye'de Ramazan ayı, hangi kategoride olduğunuza bağlı olarak satışları dramatik biçimde etkiler:
- Gıda/şekerleme: +%40-60
- Hazır giyim: +%20-30 (bayram alışverişleri)
- Mobilya/elektronik: Hafif düşüş
- Online alışveriş genel: Özellikle iftar sonrası saatlerde trafik zirvesi
Bu dinamiği modelinize explicit olarak ekleyin.
Kampanya Dönemleri
Türkiye'ye özgü kampanya dönemi takvimi:
| Kampanya | Kategori Etkisi |
|---|---|
| 11.11 Single's Day | Elektronik, moda |
| Black Friday | Tüm kategoriler |
| Okul açılışı (Eylül) | Kırtasiye, giyim |
| Yılbaşı | Oyuncak, hediye |
| Sevgililer Günü (14 Şubat) | Çiçek, takı, kozmetik |
| Anneler/Babalar Günü | Geniş kategori |
Hazır Araçlar ve Çözümler
Enterprise Çözümler
SAP IBP (Integrated Business Planning)Büyük şirketler için güçlü, pahalı ama kapsamlı.
Oracle Demand ManagementTedarik zinciri yönetimiyle tam entegre.
Orta Ölçek SaaS Çözümleri
Inventory PlannerShopify/WooCommerce entegrasyonu, uygun fiyatlı başlangıç. Fiyat: $99/ay'dan
Streamline.supplyKüçük-orta ölçek için iyi denge, Türkiye'deki satıcılar kullanıyor.
NetstockERP entegrasyonları güçlü, analitik raporlama kapsamlı.
Açık Kaynak / Kendi Geliştirme
Python tabanlı çözümler için:
prophet(Meta)statsforecast(Nixtla)darts(Unit8)sktime(Genel ML + TS)
ROI Hesaplama
Stok tahmin sisteminizin geri dönüşünü şöyle hesaplayabilirsiniz:
Stok Tükenmesi Maliyeti TasarrufuKaçan satış = Stok tükenme günleri × Günlük ortalama satış × Birim kar
Sermaye maliyeti = Ortalama fazla stok × Birim maliyet × Sermaye maliyeti oranı
Depo maliyeti = Ortalama fazla stok × Birim depolama maliyeti
Çürüme/eskime = Bozulan veya modası geçen ürün değeri
Başlangıç için Minimum Gereksinimler
Tam bir ML sistemi kurmak için ideal koşullar:
- En az 18 aylık günlük satış verisi
- 100+ ürün (az ürünle istatistiksel güç düşük)
- Teknik ekip (veri bilimci veya ML engineer) veya SaaS aboneliği
Prophet ile açık kaynak bir model kurabilirsiniz. Google Colab'da ücretsiz GPU ile çalıştırabilirsiniz. İlk versiyon için 2-4 hafta yeterli olabilir.
Sonuç
Makine öğrenmesi ile stok tahmini, e-ticaret operasyonlarında hem müşteri memnuniyetini (stok tükenmesi yaşatmama) hem de karlılığı (sermaye verimliliği) aynı anda iyileştiren nadir stratejilerden biri. Türkiye'nin dinamik döviz ortamı, sık kampanya dönemleri ve mevsimsel talep dalgalanmaları göz önüne alındığında, bu teknoloji yerel mağazalar için özellikle değerli.
Başlangıç için büyük yatırımlar beklemeyin. Tarihsel satış verilerinizi temizleyin, Prophet veya benzer bir araçla ilk model denemesini yapın ve sonuçları ölçün.
Teramerce'in stok ve sipariş yönetimi hakkında bilgi almak için demo talep edin.İlgili Terimler: Makine Öğrenmesi Nedir?, Zaman Serisi Analizi, Tedarik Zinciri, EOQ