Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Aikasarjadatan Esikäsittely | Aikasarja-analyysi
Johdatus RNN-Verkkoihin

bookAikasarjadatan Esikäsittely

Tässä käsitellään aikasarjadatan esikäsittelyn keskeiset vaiheet ennustamisprojektia varten. Esikäsittely varmistaa, että data on puhdasta, hyvin jäsenneltyä ja valmis mallin koulutukseen. Käsiteltäviä aiheita ovat piirteiden skaalaus, opetus- ja testijoukon jako sekä sekvenssien luonti, jotka kaikki ovat olennaisia tehokkaassa datan valmistelussa.

  • Piirteiden skaalaus: piirteiden skaalaus on tärkeää, jotta kaikki syötepiirteet ovat samalla mittakaavalla. Tämä auttaa malleja kuten LSTM ja ARIMA konvergoitumaan nopeammin ja parantaa niiden suorituskykyä. Yleisiä piirteiden skaalaustekniikoita ovat min-max-skaalaus ja standardisointi (z-score-normalisointi). Skaalaus auttaa mallia keskittymään datan sisäisiin suhteisiin sen sijaan, että se painottuisi suurempien arvoalueiden piirteisiin;
scaler = MinMaxScaler(feature_range=(0, 1))
scaled_train_data = scaler.fit_transform(train_data_raw)
scaled_test_data = scaler.transform(test_data_raw)
  • Opetus- ja testijoukon jako: datan jakaminen opetus- ja testijoukkoihin on olennaista mallin suorituskyvyn arvioimiseksi. Tyypillisesti aikasarjadatasetti jaetaan kronologisesti, jolloin datan alkuosa käytetään opetukseen ja loppuosa testaukseen. Tämä varmistaa, että mallia arvioidaan datalla, jota se ei ole nähnyt aiemmin, ja jäljitellään todellisia ennustamistilanteita. Yleinen suhde on 80 % opetukseen ja 20 % testaukseen, mutta tämä voi vaihdella datan koon ja ominaisuuksien mukaan;
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:]
  • Sekvenssien luonti: aikasarjan ennustamisessa, erityisesti LSTM-malleilla, data täytyy muuntaa sekvenssimuotoon. Sekvenssien luonti tarkoittaa datan muokkaamista syöte-tulos-pareiksi, joissa kukin syöte vastaa joukkoa aiempia havaintoja ja tulos on seuraavan ajanhetken ennustettu arvo. Tämä on tärkeää, jotta mallit voivat oppia aiemmista ajanhetkistä ja tehdä tarkkoja ennusteita tulevaisuuteen.
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)

Yhteenvetona esikäsittely on olennainen vaihe aikasarjan ennustamisessa. Skaalaamalla piirteet, jakamalla data opetus- ja testijoukkoihin sekä luomalla sekvenssit mallin syötteeksi varmistetaan, että data on hyvin valmisteltu tarkkaa ja tehokasta ennustamista varten.

question mark

Mikä on piirteiden skaalaamisen tarkoitus aikasarjan esikäsittelyssä?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 3

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Awesome!

Completion rate improved to 4.55

bookAikasarjadatan Esikäsittely

Pyyhkäise näyttääksesi valikon

Tässä käsitellään aikasarjadatan esikäsittelyn keskeiset vaiheet ennustamisprojektia varten. Esikäsittely varmistaa, että data on puhdasta, hyvin jäsenneltyä ja valmis mallin koulutukseen. Käsiteltäviä aiheita ovat piirteiden skaalaus, opetus- ja testijoukon jako sekä sekvenssien luonti, jotka kaikki ovat olennaisia tehokkaassa datan valmistelussa.

  • Piirteiden skaalaus: piirteiden skaalaus on tärkeää, jotta kaikki syötepiirteet ovat samalla mittakaavalla. Tämä auttaa malleja kuten LSTM ja ARIMA konvergoitumaan nopeammin ja parantaa niiden suorituskykyä. Yleisiä piirteiden skaalaustekniikoita ovat min-max-skaalaus ja standardisointi (z-score-normalisointi). Skaalaus auttaa mallia keskittymään datan sisäisiin suhteisiin sen sijaan, että se painottuisi suurempien arvoalueiden piirteisiin;
scaler = MinMaxScaler(feature_range=(0, 1))
scaled_train_data = scaler.fit_transform(train_data_raw)
scaled_test_data = scaler.transform(test_data_raw)
  • Opetus- ja testijoukon jako: datan jakaminen opetus- ja testijoukkoihin on olennaista mallin suorituskyvyn arvioimiseksi. Tyypillisesti aikasarjadatasetti jaetaan kronologisesti, jolloin datan alkuosa käytetään opetukseen ja loppuosa testaukseen. Tämä varmistaa, että mallia arvioidaan datalla, jota se ei ole nähnyt aiemmin, ja jäljitellään todellisia ennustamistilanteita. Yleinen suhde on 80 % opetukseen ja 20 % testaukseen, mutta tämä voi vaihdella datan koon ja ominaisuuksien mukaan;
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:]
  • Sekvenssien luonti: aikasarjan ennustamisessa, erityisesti LSTM-malleilla, data täytyy muuntaa sekvenssimuotoon. Sekvenssien luonti tarkoittaa datan muokkaamista syöte-tulos-pareiksi, joissa kukin syöte vastaa joukkoa aiempia havaintoja ja tulos on seuraavan ajanhetken ennustettu arvo. Tämä on tärkeää, jotta mallit voivat oppia aiemmista ajanhetkistä ja tehdä tarkkoja ennusteita tulevaisuuteen.
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)

Yhteenvetona esikäsittely on olennainen vaihe aikasarjan ennustamisessa. Skaalaamalla piirteet, jakamalla data opetus- ja testijoukkoihin sekä luomalla sekvenssit mallin syötteeksi varmistetaan, että data on hyvin valmisteltu tarkkaa ja tehokasta ennustamista varten.

question mark

Mikä on piirteiden skaalaamisen tarkoitus aikasarjan esikäsittelyssä?

Select the correct answer

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 3. Luku 3
some-alt