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:
-
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.
-
İ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.
-
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.