Git Product home page Git Product logo

conv_lstm_telecommunications's Introduction

Conv_LSTM_TeleCommunications

This project is a practice of statistical analysis, python programming, and application in deep learning techniques. And all the work is done by myself. Please feel free to contact me if you have any questions or advice. Also, please give me a star if you think the project is helpful, thanks!

Goal

  1. Analyze the statistical attributes of telecommunication data, like autocorrelations, Rolling Mean & Std Deviation, spatial information, temporial information, and analysis it deeply.

  2. Forecast future telecommunication trends using DEEP LEARNING techniques, then compared the method with LSTM, ConvLSTM, SVR and ARIMA; Coded with Python in TENSORFLOW framework and other Python packages

Data Instruction and Statistical Analysis

This dataset provides information about the telecommunication activity over the city of Milano. You can get access to the data from Telecommunications - SMS, Call, Internet - Milano. The dataset divides a whole region into 100 * 100 grids, and each grid represents a small region in the whole map. In every grid, it contains 5 features: SMS in, SMS out, Call in, Call out, International Traffic. The telecommunication data is recorded every 10 minutes, lasting for 2 months. For statistical Analysis:

Basic Plot

Simply plot all of the data in all of the situation. For instance,

  1. plot 2 months' Call In data in every grid:

Call in data in grid 0-750:

CallIn_1-750

Call in data in grid 751-1500:

CallIn_751-1500

  1. In two weeks:

CallIn_0-750_twoweeks

  1. In grid 1, plot combining 5 features:

1_5features

  1. The Call_Out data, record every 75 grids, and gather all of the pictures in one pdf file:

CallOut_Every75Grids

AutoCorrelation

For instance, implement autocorrelation on the Call in data in grid 0, considering temporal information:

Autocorrelation_Cin[0]_temporal

Time = 0, implement autocorrelation on the Call in data, considering spacial information:

Autocorrelation_Cin[/,0]_spacial

Rolling Mean & Stad Deviation

Time = 0, all of 100*100 grids' Rolling Mean & Stad Deviation for Call In data:

RollingMean&StadDeviation_Cin[/,0]_spatial

In grid 0, Rolling Mean & Stad Deviation for Call In data:

RollingMean&StadDeviation_Cin[0]_temporal

Models

I use four models: SVR, ARIMA, LSTM, and Convolutional LSTM models to predict the future trendency of telecommunication data.

SVR

Support Vector Regression

Support Vector Regression

The results is not very well(Using two weeks' data to predict two day):

SVR_CallOut

All of the results are stored in ./models/SVR/log_test_svr_*.log, all of the trained models are saved in ./models/SVR/svr_train_model_store, and all of the predicted pictures are saved in ./models/SVR/svr_predict_figure_save.

ARIMA

The result is better than any other models(for instance, SMS in, Grid 0):

ARIMA_fig_Sin_grid0

You can find all of the result logs, pictures, and trained models in ./models/ARIMA. The structures are the same with SVR.

LSTM2.0

lstm_fig_Cin_grid0

Conv_LSTM3.2

The conv_LSTM architecture is proposed in this article: Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting. In this github project, there is also an implementation of conv_LSTM in tensorflow.

  1. Convolutional-LSTM-in-Tensorflow An implementation of convolutional lstms in tensorflow. The code is written in the same style as the basiclstmcell function in tensorflow and was meant to test whether this kind of implementation worked. To test this method I applied it to the bouncing ball data set created by Ilya Sutskever in this paper Recurrent Temporal Restricted Boltzmann Machine. To add velocity information I made the x and y velocities correspond to the color of the ball. This was added so I could compare the results with just next frame prediction with straight convolutions.

  2. Basics of how it works All I really did was take the old lstm implementation and replace the fully connected layers with convolutional. I use the concatenated state implementation and concat on the depth dimension. I would like to redo the rnn_cell.py file in tensorflow with this method. This method first appears in the paper Convolutional LSTM Network: A Machine Learning Approach for Precipitation Nowcasting.

  3. How well does it work!

Like LSTM, the predicted results are not as well as ARIMA.

convlstm_fig_Cin_grid0

conv_lstm_telecommunications's People

Contributors

weimin17 avatar

Watchers

 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.