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.

Zanechte komentář

Napsat komentář

Související články

Umělá inteligence

MMAudio: Multimodální video‑to‑audio syntéza s Pinokio

🎬 Co je MMAudio? MMAudio je otevřený projekt (CVPR 2025), který dokáže automaticky...

Online kurzyUmělá inteligence

TensorFlow v praxi: Od základů po tvorbu AI aplikací

TensorFlow v praxi: od základů po tvorbu AI aplikací – recenze kurzu a průvodce pro začátečníky i profíky Hledáte ucelený,...

Umělá inteligence

5 tipů, jak získat od ChatGPT ty nejpřesnější a nejkreativnější odpovědi

🌳 1. Rozhodovací strom Co to je?Prompt, ve kterém požádáte ChatGPT, aby...

Umělá inteligence

WAN 2.1 v Pinokio

🌟 WAN 2.1 v Pinokio: Generování realistických videí přímo na vašem PC...

×
Avatar
PetrPikora.com
AI Chatbot
Ahoj! Jak vám mohu pomoci?
 

Používáním tohoto chatbota souhlasíte se shromažďováním a používáním vašich dat, jak je uvedeno v našich Zásadách ochrany osobních údajů. Vaše údaje budou použity pouze jako pomoc s vaším dotazem.