From 6a2e6ccd78a573c7b134cf4e797693c89c63235a Mon Sep 17 00:00:00 2001 From: NovikovDM Date: Thu, 20 Nov 2025 18:04:57 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D1=84=D0=B0=D0=B9=D0=BB=20=D0=9B=D0=A02.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ЛР2.md | 131 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 ЛР2.md diff --git a/ЛР2.md b/ЛР2.md new file mode 100644 index 0000000..89571dd --- /dev/null +++ b/ЛР2.md @@ -0,0 +1,131 @@ +**ЛАБОРАТОРНАЯ РАБОТА №2**«Обнаружение аномалий»** +А-02-22 бригада №8 Левшенко Д.И., Новиков Д. М., Шестов Д.Н + +Задание1: + +**1)В среде GoogleColabсоздать новый блокнот(notebook).Импортировать необходимые для работы библиотеки и модули.** +>import os + +>os.chdir('/content/drive/MyDrive/Colab Notebooks/is_lab2') + +># скачивание библиотеки +>!wget -N http://uit.mpei.ru/git/main/is_dnn/raw/branch/main/labworks/LW2/lab02_lib.py + +># скачивание выборок +>!wget -N http://uit.mpei.ru/git/main/is_dnn/raw/branch/main/labworks/LW2/data/name_train.txt +>!wget -N http://uit.mpei.ru/git/main/is_dnn/raw/branch/main/labworks/LW2/data/name_test.txt + +># импорт модулей +>import numpy as np +>import lab02_lib as lib + +**2)Сгенерировать индивидуальный набор двумерных данныхв пространстве признаковс координатами центра (k, k), где k–номер бригады.Вывести полученныеданные на рисуноки в консоль.** +data = lib.datagen(8, 8, 1000, 2) +![1.png](../Desktop/7%20%D1%81%D0%B5%D0%BC/PythonProject/.venv/1.png) +**3)Создать и обучить автокодировщик AE1 простой архитектуры, выбрав небольшое количество эпох обучения.** + +**4)Зафиксировать ошибку MSE, на которой обучение завершилось. Построить график ошибки реконструкции обучающей выборки. Зафиксировать порог ошибки реконструкции –порог обнаружения аномалий.** + +**5)Создать и обучить второй автокодировщик AE2 с усложненной архитектурой, задав большее количество эпох обучения.** + +**6)Зафиксировать ошибку MSE, на которой обучение завершилось. Построить график ошибки реконструкции обучающей выборки. Зафиксировать второй порог ошибки реконструкции –порог обнаружения аномалий.** + + + +**7)Рассчитать характеристики качества обучения EDCA для AE1 и AE2. Визуализировать и сравнить области пространства признаков, распознаваемые автокодировщиками AE1 и AE2. Сделать вывод о пригодности AE1 и AE2 для качественного обнаружения аномалий.** + +Оценка качества AE1 + +IDEAL = 0. Excess: 14.263157894736842 + +IDEAL = 0. Deficit: 0.0 + +IDEAL = 1. Coating: 1.0 + +summa: 1.0 + +IDEAL = 1. Extrapolation precision (Approx): 0.06551724137931035 + +Оценка качества AE2 + +IDEAL = 0. Excess: 3.3157894736842106 + +IDEAL = 0. Deficit: 0.0 + +IDEAL = 1. Coating: 1.0 + +summa: 1.0 + +IDEAL = 1. Extrapolation precision (Approx): 0.23170731707317074 + +**9)Изучить сохраненный набор данных и пространство признаков. Создать тестовую выборку, состоящую, как минимум, из 4ёх элементов, не входящих в обучающую выборку. Элементы должны быть такими, чтобы AE1 распознавал их как норму, а AE2 детектировал как аномалии.** + +**10)Применить обученные автокодировщики AE1 и AE2 к тестовым данными вывести значения ошибки реконструкции для каждого элемента тестовой выборки относительно порога на график и в консоль.** + + + +**11)Визуализировать элементы обучающей и тестовой выборки в областях пространства признаков, распознаваемых автокодировщиками AE1 и AE2.** + +**12)Результаты исследования занести в таблицу:** + +**Табл. 1 Результаты задания** + +| | | | | | | | | | +| --- | --- | --- | --- | --- | --- | --- | --- | --- | +| | **Количество скрытых слоев** | **Количество нейронов в скрытых слоях** | **Количество эпох обучения** | **Ошибка MSE_stop** | **Порог ошибки реконструкции** | **Значение показателя Excess** | **Значение показателя Approx** | **Количество обнаруженных аномалий** | +| **АЕ1** | **1** | **1** | **1000** | **38.04** | **8.5** | **14.26** | **0.07** | **0** | +| **АЕ2** | **5** | **3 2 1 2 3** | **3000** | **0.07** | **0.47** | **3.32** | **0.23** | **5** | + +**13)Сделать выводы** + +Для нормального обнаружения аномалий: + +\-архитектура автокодировщика не должна быть простой, + +\-необходимо большое количество эпох обучения, + +\-ошибка MSE_stop должна быть достаточно мала(<<1), + +\-порог обнаружения аномалий не должен быть завышен по сравнению с + +большинством значений ошибки реконструкции обучающей выборки, + +\-характеристики качества обучения EDCA должны быть близки к идеальным значениям показателей Excess = 0, Deficit = 0, Coating = 1, Approx = 1. + +**Задание2** + +**1)Изучить описание своего набора реальных данных, что он из себя представляет;** + +Исходный набор данных Breast Cancer Wisconsin из репозитория машинного обучения UCI представляет собой набор данных для классификации, в котором записываются измерения для случаев рака молочной железы. Есть два класса, доброкачественные и злокачественные. Злокачественный класс этого набора данных уменьшен до 21 точки, которые считаются аномалиями, в то время как точки в доброкачественном классе считаются нормой. + +| | | | | +| --- | --- | --- | --- | +| Количество признаков | Количество примеров | Количесвто нормальных примеров | Количество аномальных примеров | +| 30 | 378 | 357 | 21 | + +**2)Загрузить многомерную обучающую выборку реальных данных WBC_train.txt.** + +**3)Вывести полученные данные и их размерность в консоли.** + +**4)Создать и обучить автокодировщик с подходящей для данных архитектурой.** **Выбрать необходимое количество эпох обучения.** + +**5)Зафиксировать ошибку MSE, на которой обучение завершилось. Построить график ошибки реконструкции обучающей выборки. Зафиксировать порог ошибки реконструкции –порог обнаружения аномалий.** + +**7)Изучить и загрузить тестовую выборку WBC_test.txt.** + +**8)Подать тестовую выборку на вход обученного автокодировщика для обнаружения аномалий. Вывести графикошибки реконструкции элементов тестовой выборки относительно порога.** + +**9)Если результаты обнаружения аномалий не удовлетворительные (обнаружено менее 70%аномалий), то подобрать подходящие параметры автокодировщика и повторить шаги (4) –(9).** + +**10)Параметры наилучшего автокодировщика и результаты обнаружения аномалий занести в таблицу:** + +| | | | | | | +| --- | --- | --- | --- | --- | --- | +| Количество скрытых слоев | Количестов нейронов | Количество эпох обучения | Ошибка MSE_stop | Порог ошибки реконструкции | % обнаруженных аномалий | +| 11 | 31 25 21 17 13 7 13 17 21 25 31 | 7000 | 0.0006 | 0.33 | 70 | + +**11)Сделать выводы:** +•архитектура автокодировщика должна включать в себя много слоев, +•количество эпох обучения должно быть достаточно большим (порядка десятков тысяч), +•ошибка MSE_stop, приемлемая для останова обучения, должна иметь достаточно малое значение, +•порог обнаружения аномалий не должен быть завышен по сравнению с большинством значений ошибки реконструкции обучающей выборки. \ No newline at end of file