首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >时间序列预测训练模型

时间序列预测训练模型
EN

Stack Overflow用户
提问于 2020-05-27 18:00:38
回答 1查看 113关注 0票数 0

因此,我加载并预处理了我的数据,以便进行时间序列预测。我已经建立了一个模型,但现在我不知道如何真正地训练它。

以下是代码:

代码语言:javascript
复制
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?

我做了一些研究,但没有关于如何具体训练时间序列预测模型的深入教程。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-27 18:43:20

目前还不清楚您的数据文件是什么样子,以及为什么要记录它。但是在这里,我将向您展示如何使用LSTM来训练预测模型。让我们假设以下是您的数据:

代码语言:javascript
复制
df = pd.DataFrame({'People':[10,12,11,13,15,18]})

然后你做log是出于某种原因:

代码语言:javascript
复制
log_df_People = np.log(df.People)

然后你就像这样移动:

代码语言:javascript
复制
import tensorflow as tf
X = log_df_People.to_numpy()[:-1]
Y = log_df_People.shift(-1).to_numpy()[:-1]

然后创建模型:

代码语言:javascript
复制
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'])

最后,您可以为许多时代训练您的模型:

代码语言:javascript
复制
model.fit(X,Y,epochs=100)

但是通常您应该考虑使用滑动窗口来进行预测,但是这需要更多的描述。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62049870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档