Интеллектуальные технологии информационной безопасности

Контрольная работа


Варианты для контрольной работы: Для всех вариантов в методе ближайших соседей значение k (количество соседей) необходимо брать на 1 больше, чем количество классов в обучающей последовательности.

Варианты обучающих последовательностей и тестового объекта:
1) (X,Y)={(1,8,1), (1,3,1), (3,5,1), (1,1,1), (2,7,1), (3,8,1), (2,4,1), (8,7,2), (11,12,2), (12,14,2), (8,13,2)}: тестовый объект x’=(5,8)
2) (X,Y)={ (2,7,1), (6,6,1), (8,6,1), (7,5,1), (5,9,1), (9,9,2), (11,2,2), (6,4,2), (10,9,2), (8,6,3), (1,10,3), (9,7,3), (5,13,3), (2,14,3)}: тестовый объект x’=(10,8)
3) (X,Y)={ (1,7,1), (3,2,1), (6,8,1), (4,7,1), (9,8,1), (4,5,1), (1,2,1), (14,10,2), (8,12,2), (14,12,2), (11,10,2), (13,8,2), (13,6,2)}: тестовый объект x’=(6,7)
4) (X,Y)={ (7,9,1), (2,5,1), (5,6,1), (8,6,1), (7,6,1), (7,9,2), (14,7,2), (14,2,2), (6,7,2), (10,3,2), (11,9,2), (9,1,2)}: тестовый объект x’=(12,12)
5) (X,Y)={ (2,9,1), (9,3,1), (3,9,1), (5,5,1), (8,9,1), (5,1,1), (6,4,1), (12,8,2), (12,14,2), (12,11,2), (11,6,2), (13,7,2)}: тестовый объект x’=(4,10)
6) (X,Y)={ (7,8,1), (6,7,1), (2,1,1), (2,4,1), (9,9,1), (8,4,1), (4,7,1), (11,13,2), (6,11,2), (14,8,2), (11,7,2)}: тестовый объект x’=(6,1)
7) (X,Y)={ (4,7,1), (4,3,1), (4,8,1), (8,6,2), (14,5,2), (9,4,2), (3,13,3), (8,10,3), (2,7,3)}: тестовый объект x’=(4,9)
8) (X,Y)={ (5,9,1), (2,9,1), (3,7,1), (8,8,2), (14,4,2), (10,1,2), (12,4,2), (7,7,2), (12,7,2), (9,13,3), (2,14,3), (1,7,3), (5,14,3), (6,6,3), (9,6,3)}: тестовый объект x’=(5,6)
9) (X,Y)={ (8,4,1), (9,4,1), (4,2,1), (4,1,1), (8,1,1), (11,7,2), (9,4,2), (12,5,2), (14,1,2), (6,12,3), (7,14,3), (9,9,3), (1,12,3), (4,13,3), (8,9,3)}: тестовый объект x’=(6,10)
10) (X,Y)={ (6,5,1), (1,9,1), (1,9,1), (1,6,1), (8,4,1), (14,11,2), (13,13,2), (6,7,2), (12,11,2), (13,9,2), (9,7,2)}: тестовый объект x’=(7,3)
11) (X,Y)={ (7,2,1), (8,1,1), (8,7,1), (8,2,1), (9,9,1), (6,8,1), (13,8,2), (6,1,2), (11,8,2), (4,12,3), (7,14,3), (1,8,3), (9,6,3)}: тестовый объект x’=(13,10)

Варианты весовых функций:

Лабораторная работа №1 «Метод k ближайших соседей»

Задание на лабораторную работу 1:
Суть лабораторной работы заключается в написании классификатора на основе метода k ближайших соседей. Данные из файла необходимо разбить на две выборки, обучающую и тестовую, согласно общепринятым правилам разбиения. На основе этих данных необходимо обучить разработанный классификатор. На обучающей выборке следует подобрать необходимые параметры метода для лучшей точности, а на тестовой выборке один раз протестировать метод с найденными оптимальными значениями изменяемых параметров (количеством соседей k/ параметрами q и i/ шириной окна h).
В качестве отчёта требуется представить:
 Вариант работы.
 Работающая программа.
 Таблица с результатами тестирования на этапе подбора параметров метода, в которой будет видна зависимость точности предсказания от изменяемого параметра.
 Результат работы на тестовой выборке при найденных оптимальных параметрах.
Разбиение выборки необходимо выполнять программно, случайным образом, при этом, не нарушая информативности обучающей выборки. Разбивать рекомендуется по следующему правилу: делим выборку на 3 равных части, 2 части используем в качестве обучающей, одну в качестве тестовой. Кроме того, обучающая выборка должна быть сгенерирована таким образом, чтобы минимизировать разницу между количеством представленных в ней объектов разных классов, т.е. ????????????(|{(???????? , ????????) ∈ ???? ???? |???????? = −1}| − |{(???????? , ????????) ∈ ???? ???? |???????? = 1}|) → ????????????.

Входные данные:
К заданию на лабораторную работу прилагаются файлы, в которых представлены наборы данных из ~104 объектов. Каждый объект описывается двумя признаками (????????(????) ∈ ????) и соответствующим ему классом (???? ∈ {0,1}).

Варианты:
Выполнение лабораторной работы разбито на несколько пунктов, в каждом из которых есть несколько вариантов, выбор варианта опирается на ???????? – последние 2 цифры в пароле.
Первый пункт отвечает за выбор типа классификатора. Вариант выбирается по формуле ????В = (???????? ???????????? 3) + 1:
1. Метод k взвешенных ближайших соседей
2. Метод парзеновского окна с фиксированным h
3. Метод парзеновского окна с относительным размером окна
Для варианта 1 необходимо использовать весовую функцию ???????? по формуле ???????? = (???????????????????? 2) + 1. Параметр ???? подбирается методом скользящего контроля.
1. ???????? = ???? ???? , ???? ∈ (0,1) 2. ???????? = ( ????+1−???? ???? ) ???? , ???? ∈ {2,3,4} В случае 2-го и 3-го вариантов, необходимо использовать функцию ядра ????(????) из списка по следующей формуле ????я = ((????с ∗ 6 + 13) ???????????? 8 ???????????? 3) + 1: 1. Q –квартическое ????(????) = (1 − ???? 2 ) 2 [???? ≤ 1]
2. T – треугольное ????(????) = (1 − ????)[???? ≤ 1]
3. П – прямоугольное ????(????) = [???? ≤ 1]
Кроме того, к лабораторной работе прилагаются 5 файлов с данными для классификации, файл выбирается по следующей формуле ????ф = ((???????? + 2)???????????? 5) + 1

Лабораторная работа №2. «Решающие деревья»

Задание: Классифицировать атаки по типу атак, проверить правильность классификации. Считать файл можно следующим образом:
import pandas as pd df = pd.read_csv('KDDTrain+.txt') test_df = pd.read_csv('KDDTest+.txt') columns = (['duration' ,'protocol_type' ,'service' ,'flag' ,'src_bytes' ,'dst_bytes' ,'land' ,'wrong_fragment' ,'urgent' ,'hot' ,'num_failed_logins' ,'logged_in' ,'num_compromised' ,'root_shell' ,'su_attempted' ,'num_root' ,'num_file_creations' ,'num_shells' ,'num_access_files' ,'num_outbound_cmds' ,'is_host_login' ,'is_guest_login' ,'count' ,'srv_count' ,'serror_rate' ,'srv_serror_rate' ,'rerror_rate' ,'srv_rerror_rate' ,'same_srv_rate' ,'diff_srv_rate' ,'srv_diff_host_rate' ,'dst_host_count' ,'dst_host_srv_count' ,'dst_host_same_srv_rate' ,'dst_host_diff_srv_rate' ,'dst_host_same_src_port_rate' ,'dst_host_srv_diff_host_rate' ,'dst_host_serror_rate' ,'dst_host_srv_serror_rate' ,'dst_host_rerror_rate' ,'dst_host_srv_rerror_rate' ,'attack' ,'level']) df.columns = columns test_df.columns = columns

В файле информация о типах атак находится в столбце «attack», всего их 5 видов:
attack_labels = ['Normal','DoS','Probe','U2R','R2L']

Требуется имеющиеся данные разбить на обучающую и тестовую выборки в процентном соотношении 70 к 30.
После чего по обучающей выборке необходимо построить решающее дерево, а также случайный лес.
Разрешается использовать уже реализованные решающие деревья из известных библиотек (например, scikit-learn для Python).
В качестве отчёта требуется представить:
● Работающая программа, определяющая с помощью изучаемых методов типы атак и процент правильности их определения;
● 2 таблицы, указанные в приложении, показывающие % точности предсказания типа атак в зависимости от изменения параметров дерева решений и леса;
● Параметры дерева, на которых достигается наилучшая точность предсказания;
● Параметры леса, на которых достигается наилучшая точность предсказания;

Лабораторная работа №ЛАБОРАТОРНАЯ РАБОТА 3. «Регрессия»

Целью данной лабораторной работы является разработка программы, реализующей применение метода логистической регрессии к заданному набору данных.

Задание:
используя модель логистической регрессии реализовать прогнозирование реалистичности статьи. 1. Необходимо построить модель для каждого из наборов, обучить её и сравнить полученные при помощи модели результаты с известными. Для обучения использовать 70% выборки, для тестирования 30%. Разбивать необходимо случайным образом, а, следовательно, для корректности тестирования качества модели, эксперимент необходимо провести не менее 10 раз и вычислить среднее значение качества регрессии. 2. Работу регрессии необходимо проверить на конкретном примере. При подаче на вход определённого объекта данных (заголовка статьи, текста, типа и даты) программа должна выводить тип статьи «Fake» или «Frue», выведенное значение необходимо проверить с тем, что находится в исходных данных

Особенности работы с данными:
● После загрузки данных в память необходимо пометить поддельные новости «0», а подлинные новости «1» для дальнейшей работы.
● Для преобразования текста в частотные векторы слова использовать метод TfidfVectorizer().


В качестве отчёта требуется представить:
● Работающую программу, в которой отражено использование метода логистической регрессии для предсказания типа статей.
● Результаты 10 запусков отразить в таблице, где указать номер запуска и процент правильности предсказания типа статьи. Перед каждым запуском данные можно обработать с помощью метода shuffle().
● Среднее значение предсказания типа статьи исходя из 10 запусков.
Обсудим вашу работу?
При заказе дарим онлайн-тест!
Заполните форму
и мы свяжемся с вами за 2 часа