Этот проект представляет собой модуль прогнозирования сетевого трафика. Трафик был взят из открытых источников, предварительно очищен и отформатирован для проведения аналитических и обучающих экспериментов с использованием нейросетевых моделей GRU и LSTM.
- Операционная система: Ubuntu 20.04+
- Python: Версия строго
3.7.4 - Библиотеки: Указаны в
requirements.txt(см. ниже, как установить)
sudo apt update
sudo apt install -y build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncursesw5-dev xz-utils \
tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
cd /usr/src
sudo wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz
sudo tar xzf Python-3.7.4.tgz
cd Python-3.7.4
sudo ./configure --enable-optimizations
sudo make -j$(nproc)
sudo make altinstallgit clone https://github.com/Depth-monster/Network-Traffic-Prediction.git
cd Network-Traffic-Prediction
python3.7 -m venv venv
source venv/bin/activate
pip install -r requirements.txtЗапуск:
python3 main/gru.py 60 20 16 16 16 60
python3 main/lstm.py 60 20 16 16 16 60На вход подается: 60 - look_back - Сколько предыдущих точек времени (в минутах) используется в качестве входа модели (Step Back = 60 минут)
20 - look_ahead - Сколько точек времени вперёд модель должна предсказать (Step Ahead = 20 минут).
16 - neuron1 (encoder) - Кол-во нейронов в первом слое модели (энкодере).
16 - neuron2 (decoder1) - Кол-во нейронов в первом декодере (decoder layer 1).
16 - neuron3 (decoder2) - Кол-во нейронов в втором декодере (decoder layer 2).
60 - time_step - Интервал между временными шагами — обычно совпадает с look_back и нужен для формирования подпапки timestep_60/ в структуре вывода.
Что делает gru.py при запуске:
Загружает данные (data/network_traffic.csv).
Формирует обучающую выборку на основе последних 60 минут.
Обучает GRU-модель предсказывать 20 следующих точек. Архитектура модели:
1 GRU-слой (16 нейронов)
2 дополнительных GRU-декодера по 16 нейронов
выход: TimeDistributed(Dense(1)) для предсказания временного ряда.
Результаты:
сохраняются в results/gru/timestep_60/lb=60_la=20_ne1=16_ne2=16_ne=16/
values.pickle — предсказания
metrics_comparison.csv — MAPE по шагам




