Domů Programování Predikce časových řad TensorFlow Keras
ProgramováníPythonStrojové učeníUmělá inteligence

Predikce časových řad TensorFlow Keras

Zde je základní příklad jak vytvořit model pro předpověď časových řad pomocí LSTM (Long Short-Term Memory) sítě v Kerasu. V tomto příkladu budeme používat jednoduchý syntetický dataset pro jednoduchost, ale stejný postup by se použil pro reálné data, například ceny akcií.

Předpokládejme, že máme časovou řadu y = sin(x).

import numpy as np
import matplotlib.pyplot as plt
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense

# Generujeme data
x = np.linspace(0, 40, 400)
y = np.sin(x)

# Zobrazíme data
plt.plot(y)
plt.show()

Nyní připravíme data pro LSTM síť. LSTM očekává data ve formátu [samples, time steps, features].

# Počet časových kroků pro každou vzorku
n_steps = 10

# Počet budoucích časových kroků k předpovědi
n_ahead = 1

X, Y = [], []
for i in range(len(y)-n_steps-n_ahead):
    X.append(y[i:i+n_steps])
    Y.append(y[i+n_steps:i+n_steps+n_ahead])

X = np.array(X)
Y = np.array(Y)

# Reshape pro LSTM [samples, time steps, features]
X = X.reshape(X.shape[0], X.shape[1], 1)
Y = Y.reshape(Y.shape[0], Y.shape[1])

Nyní vytvoříme a natrénujeme LSTM síť.

model = Sequential()
model.add(LSTM(50, activation='relu', input_shape=(n_steps, 1)))
model.add(Dense(n_ahead))
model.compile(optimizer='adam', loss='mse')

history = model.fit(X, Y, epochs=200, verbose=0)

Nyní můžeme vytisknout chybu během tréninku a také vyzkoušet předpovědi modelu.

plt.plot(history.history['loss'])
plt.show()

# Testování modelu
test_seq = y[-n_steps:]
test_seq = test_seq.reshape(1, n_steps, 1)
preds = []

for _ in range(100):
    pred = model.predict(test_seq)
    preds.append(pred[0][0])
    test_seq = np.roll(test_seq, -1)
    test_seq[0, -1, 0] = pred

plt.plot(y)
plt.plot(range(len(y)-100, len(y)), preds)
plt.show()

Tento kód vytvoří LSTM model, který se snaží předpovědět následující hodnotu sinusové funkce. Tréninkové data jsou generována z sinusové funkce a model je pak natrénován na těchto datech. Na konci kód vytiskne graf chyby během tréninku a také graf skutečných a předpovězených hodnot.

Související články

Umělá inteligence

AI ve videoprodukci

🌟 Úvod: Nová éra filmové tvorby Ještě před pár lety bylo natáčení...

Umělá inteligence

Jak umělá inteligence mění digitální marketing a SEO

🔍 Úvod: Když AI nebere práci, ale zvyšuje její hodnotu Umělá inteligence...

Kvízy a testyNVIDIAUmělá inteligence

NVIDIA NIM

NVIDIA NIM je sada kontejnerových mikroservisů pro akcelerované inferencování AI modelů na...

NVIDIAUmělá inteligence

NVIDIA ChatRTX

NVIDIA ChatRTX je ukázková desktopová aplikace, která umožňuje vytvořit si vlastního AI...