Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Forbehandling af Tidsseriedata | Tidsserieanalyse
Introduktion til RNNs

bookForbehandling af Tidsseriedata

De afgørende trin i forbehandling af tidsseriedata til et prognoseprojekt gennemgås. Forbehandling sikrer, at dataene er rene, velstrukturerede og klar til modellering. Emnerne omfatter feature scaling, train-test split og sekvensoprettelse, som alle er essentielle for effektiv datapreparation.

  • Feature scaling: feature scaling er vigtigt for at sikre, at alle inputfunktioner er på en lignende skala. Dette hjælper modeller som LSTM og ARIMA med at konvergere hurtigere og forbedre deres ydeevne. Almindelige teknikker til feature scaling omfatter min-max scaling og standardisering (z-score normalisering). Skalering hjælper modellen med at fokusere på relationerne i dataene i stedet for at blive påvirket af funktioner med større intervaller;
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: opdeling af datasættet i trænings- og testdelmængder er afgørende for at evaluere modellens ydeevne. Typisk opdeles et tidsseriedatasæt kronologisk, hvor den tidlige del af dataene bruges til træning og den senere del til test. Dette sikrer, at modellen evalueres på data, den ikke har set før, og efterligner virkelige prognosesituationer. Et almindeligt forhold er 80% til træning og 20% til test, men dette kan variere afhængigt af dataenes størrelse og karakteristika;
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:]
  • Sekvensoprettelse: ved tidsserieprognoser, især når der anvendes modeller som LSTM, skal dataene omdannes til et sekvensformat. Sekvensoprettelsestrinnet indebærer at forme dataene til input-output-par, hvor hvert input svarer til en sekvens af tidligere observationer, og outputtet er den forudsagte værdi for det næste tidssteg. Dette er afgørende for, at modeller kan lære af tidligere tidspunkter og lave nøjagtige forudsigelser for fremtidige tidspunkter.
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)

Sammenfattende er forbehandling et vigtigt trin i tidsserieprognoser. Ved at skalere funktionerne, opdele data til træning og test samt oprette sekvenser til modelinput sikrer vi, at dataene er godt forberedt til nøjagtige og effektive prognoser.

question mark

Hvad er formålet med feature scaling i forbehandling af tidsseriedata?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 3

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Awesome!

Completion rate improved to 4.55

bookForbehandling af Tidsseriedata

Stryg for at vise menuen

De afgørende trin i forbehandling af tidsseriedata til et prognoseprojekt gennemgås. Forbehandling sikrer, at dataene er rene, velstrukturerede og klar til modellering. Emnerne omfatter feature scaling, train-test split og sekvensoprettelse, som alle er essentielle for effektiv datapreparation.

  • Feature scaling: feature scaling er vigtigt for at sikre, at alle inputfunktioner er på en lignende skala. Dette hjælper modeller som LSTM og ARIMA med at konvergere hurtigere og forbedre deres ydeevne. Almindelige teknikker til feature scaling omfatter min-max scaling og standardisering (z-score normalisering). Skalering hjælper modellen med at fokusere på relationerne i dataene i stedet for at blive påvirket af funktioner med større intervaller;
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: opdeling af datasættet i trænings- og testdelmængder er afgørende for at evaluere modellens ydeevne. Typisk opdeles et tidsseriedatasæt kronologisk, hvor den tidlige del af dataene bruges til træning og den senere del til test. Dette sikrer, at modellen evalueres på data, den ikke har set før, og efterligner virkelige prognosesituationer. Et almindeligt forhold er 80% til træning og 20% til test, men dette kan variere afhængigt af dataenes størrelse og karakteristika;
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:]
  • Sekvensoprettelse: ved tidsserieprognoser, især når der anvendes modeller som LSTM, skal dataene omdannes til et sekvensformat. Sekvensoprettelsestrinnet indebærer at forme dataene til input-output-par, hvor hvert input svarer til en sekvens af tidligere observationer, og outputtet er den forudsagte værdi for det næste tidssteg. Dette er afgørende for, at modeller kan lære af tidligere tidspunkter og lave nøjagtige forudsigelser for fremtidige tidspunkter.
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)

Sammenfattende er forbehandling et vigtigt trin i tidsserieprognoser. Ved at skalere funktionerne, opdele data til træning og test samt oprette sekvenser til modelinput sikrer vi, at dataene er godt forberedt til nøjagtige og effektive prognoser.

question mark

Hvad er formålet med feature scaling i forbehandling af tidsseriedata?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 3
some-alt