Отбор наиболее информативных признаков
Другой важной процедурой предварительной обработки данных является отбор наиболее информативных признаков. Его цель состояла в отборе наиболее значимых признаков для решения рассматриваемой задачи классификации. Это позволило построить более простые модели классификации с лучшей обобщающей способностью, а следовательно, ускорить работу модели классификации и улучшить качество предсказания за счет устранения шумовых признаков. Отбор признаков проводился как вручную, при помощи экспертных знаний (исключались признаки, которые не могут указывать на вредоносный характер трафика), так и при помощи автоматизированного алгоритма. Автоматизированное вычисление важности каждого признака осуществлялось через отбор признаков на основе модели. Модель машинного обучения с учителем, использованная для отбора признаков, не применялась для создания итоговой модели. Было проведено вычисление определенного показателя важности для всех признаков для последующего ранжирования характеристик по этой метрике. Например, в деревьях решений и случайном лесе использован показатель feature_importances_, в который были записаны значения информативности
каждого признака. Отбор признаков на основе модели рассматривал все признаки сразу и поэтому мог обнаружить взаимодействия, когда модель была способна их выявить. По окончании процедуры отбора каждый признак получил значение, которое выражает степень его информативности (сумма всех значений равна 1). Чем выше значение, тем ценнее этот признак для классификации [156].
В результате получен перечень признаков, которые можно ранжировать в соответствии с их значимостью для решения задачи классификации . Так, список из 10 наиболее информативных признаков выглядит следующим образом: frame.cap_len, ip.proto, ip.flags.df, ip.len, eth.lg, ip.flags.mf, frame.marked, eth.ig, ip.dsfield.ecn, ip.flags.rb.
Исключение недообучения и переобучения
Если модель способна выдавать точные прогнозы для новых данных, то можно считать, что она обладает способностью обобщать результат на тестовую выборку. Следовательно, было необходимо построить модель так, чтобы она обладала максимальной обучающей способностью. Обычно модель классификации строится таким образом, чтобы она давала точные прогнозы на обучающей выборке. Если обучающая и тестовая выборки имеют большое количество общих характеристик, то можно предполагать, что модель окажется точной и на тестовом наборе данных, однако это не всегда так. Когда мы создаем сложные модели, то на обучающей выборке можно получить произвольную точность. Единственным показателем качества работы алгоритма классификации на новой выборке данных является использование тестового набора. Явление, при котором созданная модель оказывается слишком сложной для имеющегося объема информации, называется переобучением и происходит в том случае, когда алгоритм слишком точно подстраивается под особенности обучающей выборки, хорошо работая на ней, но не способен обобщать полученный результат на новых данных. С другой стороны, если модель окажется слишком простой, то она будет плохо работать
даже на обучающей выборке. Ситуация, при которой проводится выбор слишком простой модели, называется недообучением. Чем сложнее модель классификации, тем эффективнее она будет работать на обучающих данных. Но если модель будет станет слишком сложной, то мы начнем уделять слишком много внимания каждому экземпляру данных обучающей выборки, и такая модель не сможет хорошо обобщать новые данные. Таким образом, необходимо найти точку, описывающую компромисс между недообучением и переобучением (рисунок 3.2).
Рисунок 3.2. Точка, описывающая компромисс между недообучением и переобучением
Поиск оптимальных значений параметров и оценка модели проводились путем использования связки решетчатого поиска с комбинированной проверкой и 5-блочной кросс-валидации, при которой данные разбиваются несколько раз и строится соответствующее количество моделей (рисунок 3.3) [178].
Рисунок 3.3. Процесс 5-блочной кросс-валидации [156]
Процесс 5-блочной кросс-валидации выглядит следующим образом: сначала данные разбиваются на 5 частей одинакового размера, называемых блоками. Далее строится последовательность из моделей, где первая модель обучается, используя первый блок в качестве тестовой выборки, а остальные блоки (2-5) выполняют роль обучающей выборки.
Аналогичные процессы построения моделей повторяются для всех остальных блоков. Первая из пяти частей данных формирует первый блок, вторая из пяти частей данных - второй блок и так далее. Таким образом, вычисляется средняя для всех разбиений величина ошибки на тестовых подвыборках [179, 180].
В качестве варьируемых параметров для того, чтобы классифицировать сетевые пакеты, были выбраны параметры, представленные в таблице 3.4.
Таблица 3.4. Параметры для обучения классификатора на основе градиентного бустинга
Параметры для оптимизации
|
Диапазон оптимальных
параметров
|
Оптимальные
параметры
|
Количество итераций n_estimators
|
[10, 150]
|
50
|
Скорость обучения learning_rate
|
[0.005, 1]
|
0.2
|
Высота обучающего дерева
max_depth
|
[1, 10]
|
7
|
Количество листьев
min_child_samples
|
[5,50]
|
30
|
Do'stlaringiz bilan baham: |