TensorFlow 時系列予測入門:Python実装と実践
TensorFlowでは、LSTM(Long Short Term Memory)やGRU(Gated Recurrent Unit)などのRNN(Recurrent Neural Network)モデルを使用して時系列予測を行うことができます。以下は、LSTMモデルを使用して将来の時系列値を予測するための簡単なサンプルコードです。
import numpy as np
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense
# 生成示例数据
def generate_data(n):
x = np.arange(0, n)
y = np.sin(x) + np.random.normal(0, 0.1, n)
return x, y
# 准备数据
n = 100
x, y = generate_data(n)
# 将数据转换为适合LSTM模型的格式
X = np.reshape(x, (n, 1, 1))
Y = np.reshape(y, (n, 1))
# 构建LSTM模型
model = Sequential()
model.add(LSTM(64, input_shape=(1, 1)))
model.add(Dense(1))
model.compile(optimizer='adam', loss='mse')
# 训练模型
model.fit(X, Y, epochs=100, batch_size=1, verbose=2)
# 使用模型进行预测
future_steps = 10
x_future = np.arange(n, n+future_steps)
X_future = np.reshape(x_future, (future_steps, 1, 1))
y_pred = model.predict(X_future)
print(y_pred)
この例では、まず、ノイズを加えた単純なサインカーブの時系列データを生成します。次に、データをLSTMモデルの入力形式に変換し、1つのLSTM層と1つの出力層を持つモデルを構築し、Adamオプティマイザーと平均二乗誤差損失関数を使用してコンパイルします。その後、モデルをトレーニングし、トレーニングされたモデルを使用して将来の時間ステップの予測を行います。
この例は単なる簡単なものであり、実際には具体的な時間系列データと予測タスクに基づいて調整や最適化を行う必要があります。