Jadi saya memuat dan memproses data saya untuk prediksi deret waktu. Saya telah membuat model, tetapi sekarang saya tidak yakin bagaimana cara melatihnya.

Berikut kodenya:

import tensorflow as tf
import pandas as pd
import numpy as np
import matplotlib as plt

# Loading Data
df = pd.read_csv("testdata.csv", header=0, parse_dates=[
                 0], names=['Month', 'People'], index_col=0)

print(df)
print(df.shape)

# Preprocessing
log_df_People = np.log(df.People)
print(log_df_People)
log_df_People_diff = log_df_People - log_df_People.shift()
print(log_df_People_diff)
log_df_People_diff.dropna(inplace=True)

# Creating the Model
model = tf.keras.Sequential()
model.add = tf.keras.layers.LSTM(100, activation="relu", input_shape=(2,))
model.add = tf.keras.layers.Dropout(rate=0.2)
model.add = tf.keras.layers.Dense(1, activation='relu')
model.compile(optimizer='adam', loss='mean_absolute_error',
              metrics=['accuracy'])

# Training the Model?

Saya melakukan riset, tetapi tidak ada tutorial mendalam tentang cara melatih model untuk prediksi deret waktu secara khusus.

0
Aidan L. 27 Mei 2020, 21:00

1 menjawab

Jawaban Terbaik

Tidak jelas seperti apa kerangka data Anda dan mengapa Anda mencatatnya. Namun di sini saya akan menunjukkan kepada Anda bagaimana Anda dapat menggunakan LSTM untuk melatih model untuk prediksi. Mari kita bayangkan berikut ini adalah data Anda:

df = pd.DataFrame({'People':[10,12,11,13,15,18]})

Kemudian Anda melakukan log untuk beberapa alasan:

log_df_People = np.log(df.People)

Kemudian Anda bergeser seperti ini:

import tensorflow as tf
X = log_df_People.to_numpy()[:-1]
Y = log_df_People.shift(-1).to_numpy()[:-1]

Kemudian Anda membuat model Anda:

model = tf.keras.Sequential()
model.add = tf.keras.layers.LSTM(100, activation="relu", input_shape=(2,))
model.add = tf.keras.layers.Dropout(rate=0.2)
model.add = tf.keras.layers.Dense(1, activation='relu')
model.compile(optimizer='adam', loss='mean_absolute_error',
              metrics=['accuracy'])

Akhirnya Anda melatih model Anda untuk sejumlah zaman:

model.fit(X,Y,epochs=100)

Tetapi umumnya Anda harus berpikir tentang menggunakan jendela geser untuk membuat prediksi, tetapi ini akan membutuhkan lebih banyak deskripsi.

3
Code Pope 27 Mei 2020, 18:43