您似乎想了解如何使用您的数据集并在其上应用 LSTM 以从您的数据中获取一些有意义的信息。
现在您可以在这里重新构建您的数据集,以从您当前的数据集中创建更多特征,例如。
可以从数据中导出的特征
- 每月取出日期(1-31 是哪一天)
- 每月的第几周(每月的第 1-4 周)
- 星期几(周一至周六)
- 现在几点了(188 中可以取任意值)
可以从开源数据中添加的功能
- 今天是什么天气
- 附近有假期吗(下一个假期/活动等的剩余天数)
现在让我们假设您的数据中的每一行都有 K 个特征,并且您有一个目标,您必须预测哪些是可用的停车位。
P(#parking_space|X)
现在只需在创建模型时将您的时间步长作为一个变量,并将您的数据从 X.shape-->(Examples, Features) 重塑为 X.shape-->(examples,Timesteps,Features) 格式。您可以使用下面的代码并定义自己的look_back
这里你的架构将是多对多的,Tx=Ty
def create_dataset_many_to_many(dataset,look_back=70):
data_timestamp=[]
for i in range(len(dataset)-look_back):
data_timestamp.append(dataset[i:i+look_back])
if i%1000==0:
print(i)
return np.array(data_timestamp)
现在您可以构建模型了
import tensorflow as tf
import matplotlib.pyplot as plt
# Importing pandas
import pandas as pd
# Importing keras model
from tensorflow.keras.models import Model
# Importing layers like input and dense
from tensorflow.keras.layers import Dense, Input,LSTM,Dropout
#importing train test split
from sklearn.model_selection import train_test_split
class Lstm_model(tf.keras.Model):
def __init__(self, **kwargs):
super(Lstm_model, self).__init__()
self.Lstm1 = tf.keras.layers.LSTM(32,return_sequences=True)
self.Lstm2 = tf.keras.layers.LSTM(32,return_sequences=True)
self.Regressor = tf.keras.layers.Dense(1, )
def call(self, inputs):
input_A=inputs
x = self.Lstm1(input_A)
x = self.Lstm2(x)
pred = self.Regressor(x)
return pred
lstms_ = Lstm_model()
lstms_.compile(optimizer='adam', loss=tf.keras.losses.MeanSquaredError())
lstms_.fit(X,Y, epochs=50)
这只是您如何制作模型的一瞥。