Sobes.tech
Middle — Senior

Kuidas teha ajaseeriate ristkinnitus?

sobes.tech AI

Vastus AI-lt

Aja ajaride ridade ristkontroll erineb klassikalisest, kuna andmed on ajaliselt sõltuvad ning neid ei saa lihtsalt juhuslikult segada.

Peamised lähenemised:

  1. Time Series Split (liikuv aken)

    • Andmed jagatakse järjestikusteks ajablokkideks.
    • Igal sammul treenitakse mudelit kuni kindla ajani ning testitakse järgmisel ajavahemikul.
    • Näide: treenimine kuudel 1-3, test 4; siis treenimine 1-4, test 5 ja nii edasi.
  2. Walk-forward validation (edasi liikumise valideerimine)

    • Sarnane Time Series Split-ile, kuid mudelit treenitakse iga sammu järel, lisades uusi andmeid.
  3. Blokeeritud ristkontroll (Blocked cross-validation)

    • Andmed jagatakse blokkideks, vältides teabe lekkimist treeningu ja testimise vahel.

Python näide sklearn kasutades:

from sklearn.model_selection import TimeSeriesSplit
import numpy as np

X = np.arange(100).reshape(-1, 1)  # Näidandmed
 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]
    # Mudeli treenimine X_train, y_train-ga
    # Hindamine X_test, y_test-ga

Oluline on säilitada kronoloogiline järjekord, et mitte kasutada tulevikuandmeid treeningul.