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 pd2import numpy as np3from statsmodels.tsa.arima.model import ARIMA4import matplotlib.pyplot as plt5from datetime import datetime, timedelta67# Ö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)1314# ARIMA modeli kur (p=1, d=1, q=1 parametreleriyle başla)15model = ARIMA(df['traffic'], order=(1, 1, 1))16results = model.fit()1718# Model özeti19print(results.summary())2021# Gelecek 30 gün için tahmin yap22forecast = results.get_forecast(steps=30)23forecast_df = forecast.conf_int()24forecast_df['forecast'] = forecast.predicted_mean2526print("\nGelecek 30 Gün Tahminleri:")27print(forecast_df[['forecast']].head(10))2829# Grafik çiz30plt.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.
Gerekli kütüphaneler:
1pip install pandas numpy statsmodels matplotlibARIMA 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.
0 yorum