Čtvrtek , 26 Červen 2025
Domů Programování Predikce časových řad TensorFlow Keras
ProgramováníPythonStrojové učeníUmělá inteligence

Predikce časových řad TensorFlow Keras

blank
blank

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()
blank

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.

Zanechte komentář

Napsat komentář

Související články

blank
Strojové viděníUmělá inteligence

Strojové vidění & AI v průmyslu: Moderní řešení výroby a kontroly kvality

📸 ÚvodStrojové vidění ve spojení s umělou inteligencí (AI) mění průmyslové provozy:...

blank
Kvantové počítačeStrojové učeníUmělá inteligence

Kvantové strojové učení

⚛️ Úvod do kvantového strojového učeníKvantové strojové učení (Quantum Machine Learning, QML)...

blank
ProgramováníStrojové učeníUmělá inteligence

Neuromorfní čipy vs. GPU/TPU

Top články Neuromorfní čipy vs. GPU/TPU 19. 6. 2025 Edge-AI v IoT:...

blank
Umělá inteligence

Edge-AI v IoT: Výzvy a řešení pro inteligentní zařízení

🌐 Co je Edge-AI v IoT?Edge-AI kombinuje umělou inteligenci (AI) a Internet...