Sobes.tech
Middle — Senior

Kā veikt pārbaudes pārbaudi laika rindās?

sobes.tech AI

Atbilde no AI

Laika rindu krusto validācija atšķiras no klasiskās, jo dati ir laika atkarīgi, un tos nav iespējams vienkārši nejauši sajaukt.

Galvenās pieejas:

  1. Time Series Split (slīdējošais logs)

    • Dati tiek sadalīti secīgos laika blokos.
    • Katram solim modelis tiek apmācīts ar datiem līdz noteiktam laikam un pārbaudīts nākamajā laika intervālā.
    • Piemērs: apmācība mēnešos 1-3, pārbaude 4; tad apmācība 1-4, pārbaude 5 un tā tālāk.
  2. Walk-forward validation (soļveida validācija)

    • Līdzīga Time Series Split, bet modelis katrā solī tiek pārapmācīts, pievienojot jaunus datus.
  3. Bloķētā krusto validācija (Blocked cross-validation)

    • Dati tiek sadalīti blokos, novēršot informācijas noplūdi starp apmācību un testu.

Python piemērs ar sklearn:

from sklearn.model_selection import TimeSeriesSplit
import numpy as np

X = np.arange(100).reshape(-1, 1)  # Piemēra dati
 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]
    # Apmācīt modeli ar X_train, y_train
    # Novērtēt ar X_test, y_test

Svarīgi ir saglabāt hronoloģisko secību, lai neizmantotu nākotnes datus modeļa apmācībā.