Лабораторные работы №1-3 по дисциплине: Интеллектуальные технологии информационной безопасности. Вариант №09. - Готовые работы

Лабораторные работы №1-3 по дисциплине: Интеллектуальные технологии информационной безопасности. Вариант №09.

Лабораторная работа №1
«Метод k ближайших соседей»
Задание на лабораторную работу 1:
Суть лабораторной работы заключается в написании классификатора на основе метода k ближайших соседей. Данные из файла необходимо разбить на две выборки, обучающую и тестовую, согласно общепринятым правилам разбиения. На основе этих данных необходимо обучить разработанный классификатор. На обучающей выборке следует подобрать необходимые параметры метода для лучшей точности, а на тестовой выборке один раз протестировать метод с найденными оптимальными значениями изменяемых параметров (количеством соседей k/ параметрами q и i/ шириной окна h).
В качестве отчёта требуется представить:
- Вариант работы.
- Работающая программа.
- Таблица с результатами тестирования на этапе подбора параметров метода, в которой будет видна зависимость точности предсказания от изменяемого параметра.
- Результат работы на тестовой выборке при найденных оптимальных параметрах.
Разбиение выборки необходимо выполнять программно, случайным образом, при этом, не нарушая информативности обучающей выборки. Разбивать рекомендуется по следующему правилу: делим выборку на 3 равных части, 2 части используем в качестве обучающей, одну в качестве тестовой. Кроме того, обучающая выборка должна быть сгенерирована таким образом, чтобы минимизировать разницу между количеством представленных в ней объектов разных классов, т.е.
𝑎𝑏𝑠(|{(𝑥𝑖, 𝑦𝑖) ∈ 𝑋𝑙|𝑦𝑖 = −1}| − |{(𝑥𝑖, 𝑦𝑖) ∈ 𝑋𝑙|𝑦𝑖 = 1}|) → 𝑚𝑖𝑛.
Входные данные:
К заданию на лабораторную работу прилагаются файлы, в которых представлены наборы данных из ~104 объектов. Каждый объект описывается двумя признаками (𝑓𝑗(𝑥) ∈ 𝑅) и соответствующим ему классом (𝑦 ∈ {0,1}).
Пример чтения данных:
import pandas as pd
df = pd.read_csv('data.csv', sep=',')
Варианты:
Выполнение лабораторной работы разбито на несколько пунктов, в каждом из которых есть несколько вариантов, выбор варианта опирается на 𝑁𝑐 – последние 2 цифры в пароле.
Первый пункт отвечает за выбор типа классификатора. Вариант выбирается по формуле 𝑁В = (𝑁𝑐 𝑚𝑜𝑑 3) + 1:
𝑁В = (9 𝑚𝑜𝑑 3) + 1 =1:
Выбираем: 1. Метод k взвешенных ближайших соседей
Для варианта 1 необходимо использовать весовую функцию 𝑤𝑖 по формуле
𝑁𝑤 = (𝑁𝑐𝑚𝑜𝑑 2) + 1.
𝑁𝑤 = (9𝑚𝑜𝑑 2) + 1 = 2.
Параметр 𝑞 подбирается методом скользящего контроля.
1. 𝑤𝑖 = 𝑞𝑖, 𝑞 ∈ (0,1)
2. 𝑤𝑖 = ((𝑘+1−𝑖)/𝑘)^𝑞, 𝑞 ∈ {2,3,4}
Кроме того, к лабораторной работе прилагаются 5 файлов с данными для классификации, файл выбирается по следующей формуле
𝑁ф = ((𝑁𝑐 + 2)𝑚𝑜𝑑 5) + 1
𝑁ф = ((9 + 2)𝑚𝑜𝑑 5) + 1=2

Лабораторная работа №2
“Решающие деревья”
К заданию прилагается файл с данными, содержащим результаты исследований методов обнаружения вторжений. Файл содержит в себе несколько колонок, все они перечислены:
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']
Задание:
Классифицировать атаки по типу атак, проверить правильность классификации. Требуется имеющиеся данные разбить на обучающую и тестовую выборки в процентном соотношении 70 к 30.
После чего по обучающей выборке необходимо построить решающее дерево, а также случайный лес.
Разрешается использовать уже реализованные решающие деревья из известных библиотек (например, scikit-learn для Python).
В качестве отчёта требуется представить:
● Работающая программа, определяющая с помощью изучаемых методов типы атак и процент правильности их определения;
● 2 таблицы, указанные в приложении, показывающие % точности предсказания типа атак в зависимости от изменения параметров дерева решений и леса;
● Параметры дерева, на которых достигается наилучшая точность предсказания;
● Параметры леса, на которых достигается наилучшая точность предсказания;

Приложение
Табл. 1. Результаты N запусков Решающего дерева
Максимальная глубина дерева (max_depth) Максимальное количество листьев (max_leaf_nodes)
1
… (точность предсказания в процентах) (точность предсказания в процентах)
N

Табл. 2. Результаты M запусков леса
Максимальная глубина дерева (max_depth) Максимальное количество листьев (max_leaf_nodes) Количество деревьев (n_estimators)
1
… (точность предсказания в процентах) (точность предсказания в процентах)
N

Лабораторная работа №3
“Регрессия”
Целью данной лабораторной работы является разработка программы, реализующей применение метода логистической регрессии к заданному набору данных.
В набор данных входят 2 файла, в «True» находится информация о правдивых новостных заметках, в «Fake.csv» находится информация о поддельных новостях. Каждый файл состоит из следующих полей:
1. (title) – заголовок статьи;
2. (text) – содержимое статьи;
3. (subject) – тип новости;
4. (date) – дата опубликования статьи.
Задание: используя модель логистической регрессии реализовать прогнозирование реалистичности статьи.
1. Необходимо построить модель для каждого из наборов, обучить её и сравнить полученные при помощи модели результаты с известными. Для обучения использовать 70% выборки, для тестирования 30%. Разбивать необходимо случайным образом, а, следовательно, для корректности тестирования качества модели, эксперимент необходимо провести не менее 10 раз и вычислить среднее значение качества регрессии.
2. Работу регрессии необходимо проверить на конкретном примере. При подаче на вход определённого объекта данных (заголовка статьи, текста, типа и даты) программа должна выводить тип статьи «Fake» или «Frue», выведенное значение необходимо проверить с тем, что находится в исходных данных.
Особенности работы с данными:
● После загрузки данных в память необходимо пометить поддельные новости «0», а подлинные новости «1» для дальнейшей работы.
● Для преобразования текста в частотные векторы слова использовать метод TfidfVectorizer().
В качестве отчёта требуется представить:
● Работающую программу, в которой отражено использование метода логистической регрессии для предсказания типа статей.
● Результаты 10 запусков отразить в таблице, где указать номер запуска и процент правильности предсказания типа статьи. Перед каждым запуском данные можно обработать с помощью метода shuffle().
● Среднее значение предсказания типа статьи исходя из 10 запусков.

400,00 ₽
Скриншот работы

Автор: Николай

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

Университет: СибГУТИ

Дата добавления: 16.03.2026

Куплено раз: 0

Файл labs.rar 2,0 МБ