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:
-
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.
-
Walk-forward validation (edasi liikumise valideerimine)
- Sarnane Time Series Split-ile, kuid mudelit treenitakse iga sammu järel, lisades uusi andmeid.
-
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.