Code Monkey home page Code Monkey logo

lstmgf's Introduction

LSTM-GF

Predict GNSS observation data through LSTM, including some combined observations, a variety of observations have been tried, and the best result is GF combined observations.

通过LSTM长短期记忆网络对GNSS观测值进行预测,当然包括一些组合观测值,已尝试过多种观测值,效果最好的是GF组合观测值。

I graduated from China University of Mining and Technology, actually, this project is my undergraduate graduation project. Due to my learning ability problem, I spent several months on ML/DL and GNSS data processing, hoping to record it through GitHub. But let's be honest: this is an extremely shallow and naive experiment.

我毕业于**矿业大学,其实这个项目是我的本科毕业设计,由于自身学习能力问题,花费数月精力在学习ML/DL与GNSS数据处理上,希望通过GitHub进行记录留念。但说实话:这只是一个极其浅显且幼稚的实验。

为何不使用原始观测数据?

对于此问题,我与导师进行了探讨,有两个原因:

1.原始数据稳定性差,组合观测值可以消除部分误差。

2.原始观测数据有强趋势性/自相关性,LSTM预测效果极差。

载波相位观测值原始数据预测效果图:

image

综合考虑,使用二次差值来进行预测,本次使用GF组合观测值二次差值。

参考博客:

[1]https://blog.csdn.net/youhuakongzhi/article/details/114552592

[2]https://ask.csdn.net/questions/1084891

网络的设计

网络由输入层、隐含层与输出层构成。在本次设计中,输入层神经元的个数l就是用来预测下一历元数据的前l个历元,也就是时间步。输入层的数据被输入到LSTM层之中,经过m个LSTM节点,在最后一个节点处输出m维的向量。LSTM层输出向量到n个节点的Dense层中,经过Dense层的维度变换,使LSTM层输出的向量在输出层变换为1维标量,也就是下一个历元的预测值。

image

数据集的构建

使用Pandas库进行对不同历元的数据依次进行滑动窗口分割。将i至i+l-1历元的数据组合为一个训练集的输入值,也就是一个样本,存放于二维矩阵train_X;同时i+l历元的数据作为这个训练集的目标值,存放于二维矩阵train_Y。同理,在训练好模型之后,若要使用模型进行预测,则只需要输入二维矩阵predict_X,经过运算后输出predict_Y。

image

每次训练所使用的训练集train_X由很多个样本组成,构建成一个(feature_num,time_step,sample_size)的三维矩阵,才能成为LSTM层的输入。其中feature_num为特征数量,time_step为时间步,sample_size为样本数量,由于特征只有一种观测值,所以三维矩阵只有1页。

image

预测效果

使用GF二次差分序列进行预测,在时间步为15、样本数量为20时,预测50个历元: image

对应的残差为: image

lstmgf's People

Contributors

caobiang avatar

Stargazers

 avatar  avatar poiwu avatar  avatar Kratos avatar  avatar

Watchers

 avatar Kostas Georgiou avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.