Sobes.tech
Middle — Senior

Kokios yra ypatybės kuriant duomenų rinkinį ir tikrinant laiko eilučių modelius?

sobes.tech AI

Atsakymas iš AI

Kuriant duomenų rinkinį ir atliekant modelių validaciją laiko eilučių analizėje, svarbu atsižvelgti į duomenų laiko priklausomybę ir išvengti informacijos nutekėjimo iš ateities į praeitį.

Pagrindinės savybės:

  1. Slenkstinė lango (Sliding window) — mokomųjų pavyzdžių formavimas iš nuoseklių laiko intervalų, kur įvestis — ankstesnės reikšmės, o išvestis — kitas žingsnis.

  2. Duomenų padalijimas pagal laiką — duomenys griežtai skirstomi į mokymo, validacijos ir testavimo dalis pagal laiką, kad modelis nematytų būsimų duomenų mokymo metu.

  3. Validacija atsižvelgiant į laiko seką:

    • Naudojant tokias metodikas kaip TimeSeriesSplit, kurios kuria nuoseklius padalijimus, atsižvelgiant į duomenų tvarką.
    • Vengiant atsitiktinio maišymo (shuffle), nes tai pažeidžia laiko struktūrą.
  4. Sezoninių ir trendų apdorojimas — kuriant požymius, atsižvelgiama į laiko ypatybes (savaitės diena, valanda, šventės).

  5. Praleidimų ir anomalijų apdorojimas — svarbi teisinga išankstinė apdorojimo procedūra, nes laiko eilutės jautrios tokiems iškraipytiems duomenims.

Pavyzdys duomenų padalijimo:

import pandas as pd
from sklearn.model_selection import TimeSeriesSplit

data = pd.read_csv('timeseries.csv', parse_dates=['date'])
data = data.sort_values('date')

# Padalijimas į mokymo ir testavimo duomenis pagal datą
train = data[data['date'] < '2023-01-01']
test = data[data['date'] >= '2023-01-01']

# TimeSeriesSplit kryžminė validacija
tscv = TimeSeriesSplit(n_splits=5)
for train_index, val_index in tscv.split(train):
    train_fold = train.iloc[train_index]
    val_fold = train.iloc[val_index]
    # modelio mokymas ir validacija

Taigi, svarbiausia — išlaikyti chronologinę tvarką ir vengti informacijos nutekėjimo iš ateities į praeitį.