Web Trafiği Tahmin Modeli: ARIMA ile Pratik Uygulama

Web trafiğini önceden tahmin edebilmek, sunucu kapasitesini planlamaktan pazarlama stratejisine kadar pek çok kararı etkiler. ARIMA (AutoRegressive Integrated Moving Average), zaman serisi verilerinde etkili bir istatistiksel yöntemdir ve geçmiş trafiği kullanarak gelecek trafiği tahmin etmekte başarılıdır.

Bu örnekte, örnek bir web trafiği veri setini yükleyip ARIMA modeli kuracak, ardından gelecek 30 gün için tahmin yapacağız.

1import pandas as pd
2import numpy as np
3from statsmodels.tsa.arima.model import ARIMA
4import matplotlib.pyplot as plt
5from datetime import datetime, timedelta
6
7# Örnek veri seti oluştur (90 günlük günlük ziyaretçi sayısı)
8np.random.seed(42)
9date_range = pd.date_range(start='2024-01-01', periods=90, freq='D')
10traffic = 1000 + np.cumsum(np.random.randn(90) * 50) + 100 * np.sin(np.arange(90) * 2 * np.pi / 30)
11df = pd.DataFrame({'date': date_range, 'traffic': traffic})
12df.set_index('date', inplace=True)
13
14# ARIMA modeli kur (p=1, d=1, q=1 parametreleriyle başla)
15model = ARIMA(df['traffic'], order=(1, 1, 1))
16results = model.fit()
17
18# Model özeti
19print(results.summary())
20
21# Gelecek 30 gün için tahmin yap
22forecast = results.get_forecast(steps=30)
23forecast_df = forecast.conf_int()
24forecast_df['forecast'] = forecast.predicted_mean
25
26print("\nGelecek 30 Gün Tahminleri:")
27print(forecast_df[['forecast']].head(10))
28
29# Grafik çiz
30plt.figure(figsize=(12, 6))
31plt.plot(df.index, df['traffic'], label='Gerçek Trafik')
32plt.plot(forecast_df.index, forecast_df['forecast'], label='Tahmin', color='red')
33plt.fill_between(forecast_df.index, forecast_df.iloc[:, 0], forecast_df.iloc[:, 1], alpha=0.2, color='red')
34plt.legend()
35plt.title('Web Trafiği Tahminlemesi')
36plt.xlabel('Tarih')
37plt.ylabel('Ziyaretçi Sayısı')
38plt.show()

Beklenen çıktı: Model özeti AIC, BIC değerlerini gösterir. Tahmin tablosu gelecek 30 günün tahmini trafiğini ve güven aralığını içerir. Grafik geçmiş trafiği mavi, tahminleri kırmızı çizgilerle gösterir.

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası

Gerekli kütüphaneler:

1pip install pandas numpy statsmodels matplotlib

ARIMA parametreleri (p, d, q) veri setine göre değişir. Başlangıçta (1,1,1) kullanabilirsin, ama AIC değerine bakarak farklı kombinasyonları denemeyi unutma. Çok yüksek parametreler aşırı uyum (overfitting) yaratabilir. Trafiğinde mevsimsel bir örüntü varsa SARIMA modelini araştır; bu model mevsimsel bileşenleri de hesaba katar.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz