Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Förbehandling av Tidsseriedata | Sektion
Modellering av sekventiell data

bookFörbehandling av Tidsseriedata

Svep för att visa menyn

De avgörande stegen för förbehandling av tidsseriedata inför ett prognosprojekt behandlas. Förbehandling säkerställer att data är ren, välstrukturerad och redo för modellträning. Ämnen som tas upp inkluderar featureskalning, train-test-split och sekvensskapande, vilka alla är nödvändiga för effektiv datapreparation.

  • Featureskalning: featureskalning är viktig för att säkerställa att alla indatafunktioner ligger på en liknande skala. Detta hjälper modeller som LSTM och ARIMA att konvergera snabbare och förbättra sin prestanda. Vanliga tekniker för featureskalning inkluderar min-max-skalning och standardisering (z-score-normalisering). Skalning hjälper modellen att fokusera på relationerna inom datan istället för att påverkas av funktioner med större intervall;
scaler = MinMaxScaler(feature_range=(0, 1))
scaled_train_data = scaler.fit_transform(train_data_raw)
scaled_test_data = scaler.transform(test_data_raw)
  • Train-test-split: uppdelning av datasetet i tränings- och testdelar är avgörande för att utvärdera modellens prestanda. Vanligtvis delas ett tidsseriedataset upp kronologiskt, där den tidigare delen används för träning och den senare för testning. Detta säkerställer att modellen utvärderas på data den inte har sett tidigare och efterliknar verkliga prognosscenarier. En vanlig fördelning är 80 % för träning och 20 % för testning, men detta kan variera beroende på datamängdens storlek och egenskaper;
train_split_ratio = 0.8
train_size = int(len(price_data) * train_split_ratio)
train_data_raw = price_data[:train_size]
test_data_raw = price_data[train_size:]
  • Sekvensskapande: vid tidsserieprognoser, särskilt med modeller som LSTM, behöver datan omvandlas till ett sekvensformat. Steget sekvensskapande innebär att forma datan till in- och utpar där varje indata motsvarar en sekvens av tidigare observationer och utdata är det förutsagda värdet för nästa tidssteg. Detta är avgörande för att modeller ska kunna lära sig från tidigare tidssteg och göra korrekta förutsägelser för framtida steg.
def create_sequences(data, seq_length):
xs = []
ys = []
      for i in range(len(data) - seq_length):
x = data[i:(i + seq_length)]
y = data[i + seq_length]
xs.append(x)
ys.append(y)
# Ensure numpy arrays are returned, helps with tensor conversion later
return np.array(xs), np.array(ys)

Sammanfattningsvis är förbehandling ett avgörande steg vid tidsserieprognoser. Genom att skala funktionerna, dela upp datan för träning och test samt skapa sekvenser för modellindata säkerställs att datan är väl förberedd för noggrann och effektiv prognostisering.

question mark

Vad är syftet med featureskalning vid förbehandling av tidsseriedata?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 14

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 1. Kapitel 14
some-alt