Sobes.tech
Middle — Senior

Zaman seriləri üzərində kross-validasiya necə aparılır?

sobes.tech Süni İntellekt

AI-dan cavab

Zaman seriyaları üzərində kross-validasiya klassikdən fərqlidir, çünki məlumatlar vaxt asılılığına malikdir və onları sadə şəkildə təsadüfi qarışdırmaq mümkün deyil.

Əsas yanaşmalar:

  1. Time Series Split (hərəkətli pəncərə)

    • Məlumatlar ardıcıl zaman bloklarına bölünür.
    • Hər addımda model müəyyən bir zamana qədər olan məlumatlarla öyrədilir və növbəti zaman intervalında test edilir.
    • Nümunə: aylar 1-3-də öyrən, 4-də test et; sonra 1-4-də öyrən, 5-də test et və s.
  2. İrəliyə doğru irəliləmə (Walk-forward validation)

    • Time Series Split-ə bənzəyir, lakin model hər addımda yenidən öyrədilir və yeni məlumatlar əlavə olunur.
  3. Bloklaşdırılmış kross-validasiya (Blocked cross-validation)

    • Məlumatlar bloklara bölünür və təlim və test arasında məlumat sızması qarşısı alınır.

Python nümunəsi sklearn istifadə edilərək:

from sklearn.model_selection import TimeSeriesSplit
import numpy as np

X = np.arange(100).reshape(-1, 1)  # Nümunə məlumatlar
 y = np.sin(X).ravel()

tscv = TimeSeriesSplit(n_splits=5)
for train_index, test_index in tscv.split(X):
    X_train, X_test = X[train_index], X[test_index]
    y_train, y_test = y[train_index], y[test_index]
    # Modeli X_train, y_train ilə öyrət
    # X_test, y_test-də qiymətləndir

Əhəmiyyətlidir ki, zaman ardıcıllığını qoruyasınız, beləliklə gələcək məlumatlar modelin təlimində istifadə olunmur.