如何应用 LSTM 预测停车位可用性

How to apply LSTM to predict parking Availability

我是循环神经网络的新手,我必须应用 LSTM (KERAS) 从我的数据集中预测停车位可用性。我有一个具有两个特征的数据集,时间戳 (Y-M-D H-M-S) 和可用停车位(免费停车位的数量)。从 00:03 AM 到 23:58 PM 的每一天(每天 188 个样本)每隔 5 分钟对停车可用性进行采样,持续时间为 25 周。我需要一些帮助来了解如何应用 LSTM(select 等的时间步长)。

您似乎想了解如何使用数据集并对其应用 LSTM 以从数据中获取一些有意义的信息。

现在您可以在此处重构您的数据集,以从您当前的数据集中创建更多功能,例如

可以从数据中导出的特征

  1. 每月外卖日期(1-31 是哪一天)
  2. 一个月中的第几周(1-4 是一个月中的第几周)
  3. 星期几(周一至周六)
  4. 现在几点了(你可以取188中的任意一个值)

可以从开源数据中添加的功能

  1. 今天是什么天气
  2. 附近有没有假期(下一个holiday/function等剩余天数)

现在让我们假设对于每一行,您的数据中都有 K 个特征,并且您有一个目标,您必须预测哪个是停车位的可用性。 P(#parking_space|X)

现在只需在创建模型时将时间步长保持为变量,并将数据从 X.shape-->(Examples, Features) 重塑为格式 X.shape-->(examples,时间步长,特征)。您可以使用下面的代码并定义您自己的 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)

这只是您如何制作模型的一瞥。