1
|
out_ads
|
IP-исходящий
|
11
|
pkt_in
|
чексумма
входящая
|
2
|
in_ads
|
IP-входящий
|
12
|
pkt_out
|
чексумма исходящая
|
3
|
out_mac
|
MAC-исходящий
|
13
|
pkt_delay_node
|
разница чексумм
|
4
|
in_mac
|
MAC-входящий
|
14
|
byte_rate
|
количество байт в секунду
|
5
|
pkt_type
|
тип пакета
|
15
|
pkt_rate
|
количество пакетов в секунду
|
6
|
pkt_size
|
размер пакета
|
16
|
avg_size
|
средний размер пакетов
|
7
|
FID
|
идентификатор формата кадра
|
17
|
pkt_t_send
|
время отправления пакета
|
8
|
sqn_number
|
порядковый
номер пакета
|
18
|
pkt_t_rsd
|
время приема
пакета
|
9
|
num_pkt
|
количество
пакетов
|
19
|
first
|
время отправления первого пакета
|
10
|
num_byte
|
количество байт
|
20
|
last
|
время отправления
последнего пакета
|
Программные инструменты для анализа полученных данных
Для подготовки и анализа данных использовались python-библиотеки: scikit-learn [169], pandas, numpy [170], lightgbm [173] и matplotlib [171] (таблица
5).
Таблица 3.3. Используемые программные средства для анализа данных
Модуль
|
Применение в работе
|
pandas
|
Первичная обработка данных, работа с размеченными данными, формирование датафреймов.
|
scikit-learn
|
Отбор признаков, реализация алгоритмов классификации
|
lightGBM
|
Построение модели градиентного бустинга на решающих деревьях
|
numpy
|
Выполнение основных операций над n-массивами и матрицами.
|
matplotlib
|
Визуализация данных, формирование графиков и диаграмм
|
Как известно, в 2017 году командой Майкрософта была представлена программная библиотека алгоритма машинного обучения, использующая градиентный бустинг – LightGBM. Данная разработка показала преимущество в скорости работы, по сравнению с конкурентами с равной заданной точностью [172]. Как следствие, библиотека LightGBM представляет собой оптимальный инструмент для применения в задаче классификации сетевого трафика [181].
Библиотека Pandas не требует, чтобы записи массива были одного и того же типа, поэтому каждый столбец может иметь отдельный тип (целые числа, числа с плавающей точкой, строки и т.д). Другое преимущество библиотеки Pandas — это возможность работы с различными форматами баз данных и файлов, от CSV до SQL [126].
Для визуализации данных и получения дополнительной полезной информации для анализа использовалась библиотека Matplotlib, которая является основной библиотекой для создания графиков и диаграмм в Python и включает в себя функции для создания визуализаций (линейных диаграмм, гистограмм и так далее).
Этап обучения
На данном этапе происходит формирование обучающей и тестовой выборок. Разбиение на выборки производилось с использованием функции
train_test_split [174]. Перед разбиением набор данных был перемешан с помощью генератора псевдослучайных чисел [175]. Это сделано для того, чтобы избежать отбора экземпляров, относящихся только к одному классу (например, если мы возьмем последние 30% экземпляров в качестве тестового набора, то все они будут иметь одинаковую метку, так как сортировка идет именно по ним). Использование тестового набора, содержащего только один класс, не даст возможность объективно судить об обобщающей способности модели классификации. Выводом функции train_test_split являются следующие массивы NumPy: X_train (70% строк), X_test (30% строк), y_train, y_test [156].
Следует отметить, что был выполнен перебор значений параметров и выбор тех комбинаций, которые дают максимальную точность на тестовом наборе данных. Это, в свою очередь, не означает, что на новых данных точность будет аналогичной. Если тестовый набор был применен для настройки параметров, то его использование для оценки качества модели не представляется возможным [176]. По этой же причине данные разбиты на обучающую и тестовую выборки (рисунок 3.1) [156].
Рисунок 3.1. Разделение набора данных на обучающую и тестовую выборку [156]
Хорошей практикой для проведения оценки качества модели является получение независимого набора данных, который не использовался ранее для настройки параметров модели [177]. Для решения этой задачи данные могут
быть разбиты на выборки еще раз и, таким образом, сформированы три выборки:
обучающая - для построения модели классификации;
валидационная - для определения оптимальных параметров модели;
тестовая - для оценки качества работы выбранных параметров.
После определения наилучших параметров модели с использованием валидационной выборки модель строится заново, но уже на основе объединенных обучающей и валидационной выборок. Таким образом, для построения модели классификации используется максимально возможное количество данных [156].
Do'stlaringiz bilan baham: |