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

本文针对LSTM在交通工具轨迹预测上的应用进行深入探讨,基于Muzi_Water大佬的代码进行优化,实现了轨迹的连续预测,并将TensorFlow版本更新到2.2.0。使用Geolife数据集或自定义数据,通过前六位置信息预测下一个位置,实验展示了预测轨迹的效果。
摘要由CSDN通过智能技术生成

网络上利用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='float
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值