Middle — Senior
Чӣ гуна бояд дар силсилаҳои вақтӣ санҷиши мутақобилро анҷом дод?
sobes.tech AI
Ҷавоб аз AI
Таҳлили кросс-валидатсияи сатрҳои вақтӣ аз он фарқ мекунад, ки маълумотҳо вобастагии вақтӣ доранд ва онҳоро ба осонӣ тасодуфан омехта кардан мумкин нест.
Дастрасҳои асосӣ:
-
Time Series Split (дарвозаи ҳаракатӣ)
- Маълумотҳо ба блокҳои вақтӣ пайдарпай тақсим мешаванд.
- Дар ҳар қадам, модел бо маълумотҳои то як вақт муайяншуда омӯзонида мешавад ва дар интервалии вақти оянда санҷиш мешавад.
- Мисол: омӯзиш дар моҳҳои 1-3, санҷиш дар 4; пас омӯзиш дар 1-4, санҷиш дар 5 ва ғайра.
-
Тасдиқи пешрафта (Walk-forward validation)
- Монанд ба Time Series Split, аммо модел дар ҳар қадам дубора омӯзонида мешавад, бо илова кардани маълумоти нав.
-
Кросс-валидатсияи бандӣ (Blocked cross-validation)
- Маълумотҳо ба бандҳо тақсим мешаванд, то аз сироятёбии иттилоот байни омӯзиш ва санҷиш пешгирӣ шавад.
Масалан дар Python бо истифода аз sklearn:
from sklearn.model_selection import TimeSeriesSplit
import numpy as np
X = np.arange(100).reshape(-1, 1) # Маълумоти намунавӣ
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]
# Омӯхтани модел бо X_train, y_train
# Баҳо додан дар X_test, y_test
Муҳим аст, ки тартиби вақтӣ нигоҳ дошта шавад, то маълумоти оянда барои омӯзиш истифода нашаванд.