Sobes.tech
Middle — Senior

Чӣ гуна бояд дар силсилаҳои вақтӣ санҷиши мутақобилро анҷом дод?

sobes.tech AI

Ҷавоб аз AI

Таҳлили кросс-валидатсияи сатрҳои вақтӣ аз он фарқ мекунад, ки маълумотҳо вобастагии вақтӣ доранд ва онҳоро ба осонӣ тасодуфан омехта кардан мумкин нест.

Дастрасҳои асосӣ:

  1. Time Series Split (дарвозаи ҳаракатӣ)

    • Маълумотҳо ба блокҳои вақтӣ пайдарпай тақсим мешаванд.
    • Дар ҳар қадам, модел бо маълумотҳои то як вақт муайяншуда омӯзонида мешавад ва дар интервалии вақти оянда санҷиш мешавад.
    • Мисол: омӯзиш дар моҳҳои 1-3, санҷиш дар 4; пас омӯзиш дар 1-4, санҷиш дар 5 ва ғайра.
  2. Тасдиқи пешрафта (Walk-forward validation)

    • Монанд ба Time Series Split, аммо модел дар ҳар қадам дубора омӯзонида мешавад, бо илова кардани маълумоти нав.
  3. Кросс-валидатсияи бандӣ (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

Муҳим аст, ки тартиби вақтӣ нигоҳ дошта шавад, то маълумоти оянда барои омӯзиш истифода нашаванд.