В данном примере рассматривается пример работы с платформой с применением функций Spark. Основная цель – провести кластеризацию (обучение без учителя), а также сформировать разметку, то есть разбить объекты на 2 класса, “0” и “1”. В данном примере обрабатываются данные о сетевом трафике, объектами являются сессии. Глобальная цель – обнаружить аномальные сессии, то есть решить задачу бинарной классификации. Цель пайплайна – разделить сессии на кластеры, а затем решить, какие кластеры являются аномальными. Сессии, попавшие в аномальный кластер, получат метку “1”, остальные – “0”. На выходе имеем размеченные данные, которые далее могут быть использованы для обучения.
- Загрузка входных данных:
- В левой части главного окна на панели вкладок Системы откройте вкладку «Данные».
- Нажмите на кнопку «Загрузить» на верхней панели.
- В открывшемся окне нажмите на кнопку «Выбрать файлы» и укажите путь к заранее подготовленному файлу 1000_first_sessions.csv, в котором содержатся данные о сетевом трафике . Второй вариант – перенести файлы в этот раздел по технологии «drag n drop».
Выбранные файлы отобразятся в нижней части окна загрузки:
Отображение выбранного файла
- Нажмите на кнопку «Загрузить». Файл с входными данными отобразится в папке.
- Создание новой рабочей области
- Перейдите в пункт меню системы Моделирование –> Рабочая область. На панели инструментов блок-схемы нажмите кнопку «Создание рабочей области» (кнопка ):
Создание новой рабочей области
- В открывшейся форме введите название новой рабочей области «Spark_Traffic» и нажмите кнопку «Создать»:
Ввод имени рабочей области
- На панели инструментов отобразится название созданной рабочей области.
- Добавление элемента «Запуск»:
- На панели инструментов блок-схемы нажмите кнопку «Добавить элемент» (кнопка )
- В открывшейся библиотеке графических элементов выберите элемент «Запуск» :
Возможные элементы блок схемы
- На рабочую область добавится элемент «Запуск»:
Блок Запуск
- Переименуйте элемент дважды кликнув на слово «Запуск», задайте новое название – «Кластеризация» и кликните в пустое место на рабочей области для сохранения.
- Добавление и настройка элемента «Источник данных».
- Добавьте на рабочую область элемент «Источник данных»:
Блок Источник данных
- Открытие настроек элемента. На элементе «Источник данных» нажмите на кнопку. Справа откроется панель настроек элемента, где будут отображаться созданные в разделе папки и файлы с табличными данными.
- Выбор типа загрузки. Из списка выпадающих функций выберите «Загрузка табличных данных из файла csv Spark»
- Выбор данных для загрузки в блок-схему. Для того чтобы найти нужный файл, кликните на папку и перейдите в нее, выберите из списка файл, загруженный в Систему в шаге 1 «1000_first_sessopns.csv», нажмите на три точки в строке с ним и кликните «Выбрать». Внизу отобразится название выбранного файла:
Выбор файла
- Сохранение настроек элемента. На панели настроек элемента нажмите на кнопку «Сохранить» (далее сохранение настроек элемента предполагается по умолчанию).
- Ввод названия элемента. Чтобы задать название элемента нужно дважды щелкнуть левой кнопкой мыши на название элемента в рабочей области, и ввести нужное название в поле с названием, доступным для редактирования:
Блок источник данных
- Введите название «Загрузка Spark CSV (file)» и кликните на пустое место на рабочей области для сохранения.
- Установка соединений. Соедините выходную точку элемента «Запуск» с входной точкой элемента «Источник данных» с помощью левой кнопка мыши:
Соединение элементов Запуск и Источник данных
- Выбор признаков и целевых признаков. Чтобы в загруженном датасете выделить признаки и целевые признаки нужно добавить на рабочую область элемент «Процесс» и настроить его:
- На панели свойств элемента выбрать из списка функцию: тип функции «Spark» -> функция «Выбор признаков и целевых признаков».
- В поле «Признаки» укажите: поочередно следующие признаки, нажимая Enter после ввода каждого: source_ip, destination_ip, source_port, destination_port, bytes, packages_count. Или вы можете найти в списке исходный файл 1000_first_sessions.csv, нажать на три точки в строке с его названием и кликнуть «Выгрузить признаки», тогда система автоматически заполнит поле «Признаки» всем вариантами из датасета и вам останется только убрать лишние.
Параметры блока «Выбор признаков и целевых признаков»
- На панели настроек элемента нажмите на кнопку «Сохранить».
- Измените название элемента на «Выбор признаков».
- Соедините с элементы:
Рисунок 15.5.11 – Соединение элементов Источник данных и Выбор признаков
- Порядковое кодирование признаков. Чтобы в загруженном датасете выделить признаки и целевые признаки нужно добавить на рабочую область элемент «Процесс» и настроить его:
- На панели свойств элемента выбрать из списка функцию: тип функции «Spark» -> группа «Препроцессинг» -> функция «Порядковое кодирование признаков».
- В поле «Выбранные признаки» вместе с квадратными скобками введите следующие признаки, нажимая Enter после ввода каждого: source_ip, destination_ip, source_port, destination_port. Или вы можете найти в списке исходный файл 1000_first_sessions.csv, нажать на три точки в строке с его названием и кликнуть «Выгрузить признаки», тогда система автоматически заполнит поле «Признаки» всем вариантами из датасета и вам останется только убрать лишние:
Параметры блока «Порядковое кодирование»
- На панели настроек элемента нажмите на кнопку «Сохранить».
- Измените название элемента на «Label encoder».
- Соедините с элементы:
Соединение элементов Выбор признаков и Label encoder
- Нормализация признаков. Чтобы в загруженном датасете выделить признаки и целевые признаки нужно добавить на рабочую область элемент «Процесс» и настроить его:
- На панели свойств элемента выбрать из списка функцию: тип функции «Spark» -> группа «Препроцессинг» -> функция «Нормализация признаков».
- На панели настроек элемента нажмите на кнопку «Сохранить».
- Измените название элемента на «Нормализация».
- Соедините с элементы:
Соединение элементов Label encoder и Нормализация
- Кластеризация Spark DBSCAN. Чтобы в загруженном датасете выделить признаки и целевые признаки нужно добавить на рабочую область элемент «Процесс» и настроить его:
- На панели свойств элемента выбрать из списка функцию: тип функции «Spark» -> группа «Кластеризация» -> функция «Кластеризация Spark DBSCAN».
- В поле «Порог для отнесения кластера к аномалиями» укажите: 100.
- В поле «Радиус» укажите: 0,1.
- В поле «Число соседей» укажите: 4.
- В поле «Метрика расстояния» из выпадающего списка выберите: «Евклидово»
- Установите галочку для параметра «Флаг векторизации признаков».
- В поле столбец для группировки перед векторами впишите: session_id
Параметры блока «Кластеризация Spark DBSCAN»
- На панели настроек элемента нажмите на кнопку «Сохранить».
- Измените название элемента на «Кластеризация Spark DBSCAN».
- Соедините с элементы:
Соединение элементов Нормализация и Кластеризация Spark DBSCAN
- Сохранение датасета Spark. Чтобы в загруженном датасете выделить признаки и целевые признаки нужно добавить на рабочую область элемент «Процесс» и настроить его:
- На панели свойств элемента выбрать из списка функцию: тип функции «Spark» -> функция «Сохранение датасета Spark в СSV»
- В поле «Путь до директории для датасета» укажите название папки в разделе «Данные», куда будет сохраняться датасет
- В поле «Название датасета» пропишите вручную необходимое наименование, например, dataset_after_dbscan
- Не ставьте галочку для параметра «Добавить данные к датасету»
- Сохраните настройки
- Измените название блока на «Датасет в CSV»
- Сохранение модели Spark. Чтобы в загруженном датасете выделить признаки и целевые признаки нужно добавить на рабочую область элемент «Процесс» и настроить его:
- На панели свойств элемента выбрать из списка функцию: тип функции «Spark» -> функция «Сохранение модели Spark»
- В поле «Название» пропишите вручную необходимое наименование, например, DBSCAN_spark_model:
.
Параметры блока «Сохранение модели Spark»
- Сохраните настройки
- Измените название блока на «Сохранение модели DBSCAN»
- Сохранение датасета Spark. Чтобы в загруженном датасете выделить признаки и целевые признаки нужно добавить на рабочую область элемент «Процесс» и настроить его:
- На панели свойств элемента выбрать из списка функцию: тип функции «Spark» -> функция «Сохранение датасета Spark в CSV»
- В поле «Путь до директории для датасета» укажите название папки в разделе «Данные», куда будет сохраняться датасет
- В поле «Название датасета» пропишите вручную необходимое наименование, например, dataset_with_anomalies_after_dbscan
- Не ставьте галочку для параметра «Добавить данные к датасету»
- Сохраните настройки
- Измените название блока на «Датасет в CSV (аномалии)»
- Соединение элементов. Соедините элементы, созданные в пункте 9, 10 и 11 следующим образом:
Соединение элементов Кластеризация Spark DBSCAN и блоков сохранения
- Запуск пайплайна. Чтобы запустить блок схему нажмите на кнопку на первом элементе «Запуск» собранной блок-схемы. При этом отображение элемента «Запуск» изменится и появится опция Сформировать отчет:
Блок Запуск
Если активировать параметр «Сформировать отчет», в результате запуска пайплайна будет создан отчет.
- Визуализация результатов. После того как все элементы схемы будут успешно обработаны, на панели инструментов появляются кнопки:
Вы должны увидеть следующие визуализации:
- График «Spark DBSCAN». Этот график позволяет построить диаграмму рассеяния для трех и более пар признаков. Чем больше размер точек или пузырей на диаграмме – тем больше взаимосвязь между признаками. График можно удалять, приближать и т д:
График Spark DBSCAN
- График «Объем кластеров». Круговая диаграмма показывает объем кластеров – т.е. сколько % объектов входит в каждый отдельный кластер. Имена кластеров сортируются в зависимости от их веса в общем проценте. Так в нашем примере большинство объектов попали в кластер -1 и составили 96,1%:
График Объем кластеров
- Таблица «Датасет 1000_first_sessions.csv». Это исходный датасет, загруженный в качестве источника данных:
Таблица Датасет 1000_first_sessions.csv
- Таблица «Количество объектов в каждом кластере». Данная таблица показывает, сколько объектов попало в разные кластеры:
Таблица «Количество объектов в каждом кластере»
- Таблица «Датасет dataset_after_dbscan» отображает преобразованный датасет, где содержатся данные по кластеризации:
Таблица «Датасет dataset_after_dbscan»
- Сохранение файлов в раздел данные. В результате отработки блок схемы в разделе «Данные» должны появится слеюущие папки:
- dataset_after_dbscan, в которой отобразится сохраненный датасет в формате .csv. Остальные файлы являются системными
Папка с сохраненным датасетом в разделе Данные
- dataset_with_anomalies_after_dbscan, в которой отобразится сохраненный датасет в формате .csv. Остальные файлы являются системными:
Папка с сохраненным датасетом в разделе Данные