基于LSTM的交通工具轨迹预测

网络上利用LSTM预测轨迹的文章不多,仅有的几篇比较粗略。本文对一些大佬开源的代码进行修改,增添了轨迹连续预测代码。不足之处欢迎批评。

本文参考Muzi_Water大佬的文章“LSTM模型 轨迹经纬度预测”https://blog.csdn.net/Muzi_Water/article/details/103921115

大佬的文章预测代码部分仅仅测试了一组坐标,预测了一个坐标。我在其代码基础上进行修改,预测了整条连续的轨迹。而且大佬的文章里用的TensorFlow比较老了,我将部分代码改成适用于TensorFlow2.2.0的。

数据集可以直接用Geolife,我是用自己的数据,如图所示。利用前两列经纬度信息

0d08f783e625443b949fb5b7d5d59048.png

用前六个位置信息预测下一个位置

训练代码

import numpy as np
from keras.layers.core import Dense, Activation, Dropout
from keras.layers import LSTM
from keras.models import Sequential, load_model
from keras.callbacks import Callback
import keras.backend.tensorflow_backend as KTF
import tensorflow as tf
import pandas as pd
import os
import keras.callbacks
import matplotlib.pyplot as plt

# 设定为自增长
os.environ['CUDA_VISIBLE_DEVICES'] = '0'
config=tf.compat.v1.ConfigProto()
config.gpu_options.allow_growth = True
session=tf.compat.v1.Session(config=config)
KTF.tf.compat.v1.keras.backend.set_session(session)


def create_dataset(data, n_predictions, n_next):
    '''
    对数据进行处理
    '''
    dim = data.shape[1]
    train_X, train_Y = [], []
    for i in range(data.shape[0] - n_predictions - n_next - 1):
        a = data[i:(i + n_predictions), :]
        train_X.append(a)
        tempb = data[(i + n_predictions):(i + n_predictions + n_next), :]
        b = []
        for j in range(len(tempb)):
            for k in range(dim):
                b.append(tempb[j, k])
        train_Y.append(b)
    train_X = np.array(train_X, dtype='float64')
    train_Y = np.array(train_Y, dtype='float64&#
  • 27
    点赞
  • 224
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值