العودة إلى المدونة
Machine Learning 5 يناير 2025 9 min للقراءة

التنبؤ بالسلاسل الزمنية على نطاق واسع: من ARIMA إلى LightGBM

متى تعمل الطرق الكلاسيكية ومتى يفوز تعلم الآلة — هندسة الميزات للسلاسل الزمنية.

اختيار الطريقة

السيناريوالطريقة الأفضل
سلاسل قليلة، بيانات نظيفةProphet، SARIMA
سلاسل كثيرة (1000+)LightGBM مع ميزات الإزاحة
موسمية معقدةN-BEATS، TFT
زمن حقيقي، زمن استجابة منخفضالتنعيم الأسي البسيط

LightGBM للسلاسل الزمنية

def make_features(df, lags=[1,7,14,28], windows=[7,14,28]):
    for lag in lags:
        df[f'lag_{lag}'] = df['target'].shift(lag)
    for w in windows:
        df[f'rolling_mean_{w}'] = df['target'].shift(1).rolling(w).mean()
        df[f'rolling_std_{w}'] = df['target'].shift(1).rolling(w).std()
    df['day_of_week'] = df.index.dayofweek
    df['month'] = df.index.month
    df['is_weekend'] = (df.index.dayofweek >= 5).astype(int)
    return df

إطار الاختبار الرجعي

التحقق walk-forward: درّب على [0..t]، وتنبّأ بـ [t+1..t+h]، ثم انزلق للأمام.

Time SeriesForecastingLightGBMProphetFeature Engineering
O

Ossama Elhakki

مهندس ذكاء اصطناعي وأنظمة ML — المغرب