Sobota , 12 Červenec 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
Umělá inteligence

Constella

Co je Constella aplikace? Akční položky Poznámky

blank
Programování

Windows program pro výuku jazyků

🧠 Program pro výuku jazyků: Vaše interaktivní cesta k ovládnutí slovíček 📝...

blank
Umělá inteligence

Umělá inteligence AI pro udržitelnou energii

🌱 Úvod Umělá inteligence (AI) se stává klíčovým nástrojem pro řízení a...

blank
Umělá inteligence

AI v moderním vzdělávání

Umělá inteligence (AI) proniká do škol a online kurzů rychleji než kdy...

blank
×
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.