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!
-
Analyze the statistical attributes of telecommunication data, like autocorrelations, Rolling Mean & Std Deviation, spatial information, temporial information, and analysis it deeply.
-
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
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:
Simply plot all of the data in all of the situation. For instance,
- plot 2 months' Call In data in every grid:
Call in data in grid 0-750:
Call in data in grid 751-1500:
- In two weeks:
- In grid 1, plot combining 5 features:
- The Call_Out data, record every 75 grids, and gather all of the pictures in one pdf file:
For instance, implement autocorrelation on the Call in data in grid 0, considering temporal information:
Time = 0, implement autocorrelation on the Call in data, considering spacial information:
Time = 0, all of 100*100 grids' Rolling Mean & Stad Deviation for Call In data:
In grid 0, Rolling Mean & Stad Deviation for Call In data:
I use four models: SVR, ARIMA, LSTM, and Convolutional LSTM models to predict the future trendency of telecommunication data.
Support Vector Regression
The results is not very well(Using two weeks' data to predict two day):
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
.
The result is better than any other models(for instance, SMS in, Grid 0):
You can find all of the result logs, pictures, and trained models in ./models/ARIMA
. The structures are the same with SVR.
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.
-
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. -
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. -
How well does it work!
Like LSTM, the predicted results are not as well as ARIMA.