Meta’nın Prophet Kütüphanesi ile Zaman Serisi Analizi ve Tahminleme

Büyük veri çağında gelecekteki eğilimleri ve kalıpları öngörebilmek, veri bilimciler ve analistler için her zamankinden daha kritik ve değerli bir yetkinliğe dönüşüyor. Veriyle desteklenen kararların iş dünyasında etkisinin artmasıyla birlikte, Python için geliştirilen Meta’nın Prophet kütüphanesi zaman serisi tahminleme süreçlerinde giderek daha fazla kullanılmaya başlandı. Prophet’in sezgisel arayüzü ve güçlü algoritması, kullanıcıların geçmiş verilere dayanarak geleceğe dair anlamlı tahminler yapabilmesine olanak tanıyor.

Bu yazıda, Prophet kullanarak zaman serisi tahminlerinizi daha iyi özelleştirmenizi sağlayacak bazı temel noktalara değineceğim.

Prophet ile İlk Adımlar

Tahmin sürecine başlamadan önce Prophet’in gereksinimlerini bilmek önemlidir. Prophet, iki temel sütun gerektirir: ds (tarih) ve y (tahmin edilecek değişken). Ayrıca Prophet’in çalışabilmesi için en az 18 aylık geçmiş veri gerekir; aksi takdirde, daha fazla veri noktası gerektiğini belirten bir hata alınır.

Örneğin, bir e-ticaret sitesinin trafik verisini tahmin etmek istiyorsak süreç şu şekilde ilerler:

1. Kütüphaneleri Yükleme

import pandas as pd
from prophet import Prophet

2. Veriyi İnceleme

Veri kümenizi içe aktararak gerekli sütunların mevcut olduğundan emin olun:

df = pd.read_csv('SessionsData.csv')
df.rename(columns={'Date': 'ds', 'Sessions': 'y'}, inplace=True)

3. Tahminin Özelleştirilmesi

Prophet varsayılan olarak lineer bir büyüme modeli kullanır. Ancak lineer modeller, alt ve üst sınır tanımı olmadan gerçek dışı sonuçlar verebilir. Örneğin, trafik verisi negatif değerlere düşebilir ya da abartılı şekilde artabilir. Bunu önlemek için cap ve floor parametreleri kullanılır.

Senaryomuzda, 1 Şubat’tan sonra Google Ads kampanyaları başlatacağız ve günlük en az 20.000 oturum bekliyoruz. Bu minimumu floor, maksimumu ise cap ile belirleyeceğiz:

df['cap'] = 50000
df['floor'] = 15000
m = Prophet(growth='logistic')
m.fit(df)

4. Geleceğe Dönük Veri Seti Oluşturma

future = m.make_future_dataframe(periods=365)
future['cap'] = 50000
future['floor'] = 15000
future.loc[(future['ds'] >= '2024-02-01') & (future['ds'] <= '2025-12-01'), 'floor'] = 20000
forecast = m.predict(future)
forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()

yhat, yhat_lower ve yhat_upper tahmin değerlerini ve tahmin aralıklarını gösterir. Örneğin, 12 Ocak 2025 için trafik tahmini 20.222’dir ve aralık 16.415 ile 23.746 arasındadır.

5. Verinin Görselleştirilmesi

from prophet.plot import add_changepoints_to_plot
fig1 = m.plot(forecast, figsize=(16,9))
add_changepoints_to_plot(fig1.gca(), m, forecast)

Daha interaktif grafikler için:

from prophet.plot import plot_plotly, plot_components_plotly
plot_plotly(m, forecast, figsize=(16,12))

Zaman serisi bileşenlerini görmek için:

fig2 = m.plot_components(forecast)

Örneğin, grafiklerde Nisan 2023’teki düşüş, Google’ın algoritma güncellemesiyle ilişkilendirilebilir ve SEO stratejisinin gözden geçirilmesi gerektiğini gösterebilir. Ayrıca, aylık sezonsallıklar kampanya planlamasında oldukça faydalı olabilir.

Sonuç

Veriyle yön verilen iş kararlarında zaman serisi analizi ve tahminleme oldukça önemli bir rol oynar. Prophet, sezgisel arayüzü ve esnek algoritmasıyla bu alanda öne çıkan bir araçtır. ‘cap’ ve ‘floor’ gibi parametrelerle özelleştirilen tahminler, işletmenin gerçekçi sınırlamalarına uygun hale getirilir. Prophet ile e-ticaret sitesi trafiğini tahmin ederek önemli stratejik içgörüler elde edebiliriz.

Orphex, çerezsiz verilerinizi içe aktarmanıza olanak tanır ve anlamlı analizler yapmanız için özel panolar sunar. Ayrıca, trafiğinize özel zaman serisi tahmin panosu da sağlayarak geleceğe dair daha stratejik adımlar atmanıza yardımcı olur.