{"cells":[{"cell_type":"code","execution_count":null,"metadata":{"id":"10-Yv57jCF4R"},"outputs":[],"source":["import os\n","os.chdir ('/content/drive/MyDrive/Colab Notebooks/is_lab2')"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"h2-QsVOXDt9W"},"outputs":[],"source":["#импортмодулей\n","import numpy as np\n","import lab02_lib as lib"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"HxhIWTU3ENQf","collapsed":true},"outputs":[],"source":["#генерациядатасета\n","data=lib.datagen(1,1,1000,2)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"Iu5r6uafEhyT","collapsed":true},"outputs":[],"source":["#выводданных и размерности\n","print('Исходныеданные:')\n","print(data)\n","print('Размерностьданных:')\n","print(data.shape)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"hcsNgV3ah_m9","collapsed":true},"outputs":[],"source":["#обучение AE1\n","patience= 10\n","ae1_trained, IRE1, IREth1= lib.create_fit_save_ae(data,'out/AE1.h5','out/AE1_ire_th.txt', 50, True, patience)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"mf2NAxjtGhm0","collapsed":true},"outputs":[],"source":["#Построение графика ошибки реконструкции\n","lib.ire_plot('training', IRE1, IREth1, 'AE1')\n"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"wGaFbicoV82Z","collapsed":true},"outputs":[],"source":["print(\"Порог ошибки реконструкции = \",IREth1)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"gFJ5cGEVQV2U","collapsed":true},"outputs":[],"source":["# обучениеAE2\n","patience= 100\n","ae2_trained, IRE2, IREth2= lib.create_fit_save_ae(data,'out/AE2.h5','out/AE2_ire_th.txt', 1000, True, patience)\n","lib.ire_plot('training', IRE2, IREth2, 'AE2')"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"a_9whg1Tni1p","collapsed":true},"outputs":[],"source":["print(\"Порог ошибки реконструкции = \",IREth2)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"vvqCz83_RV-O","collapsed":true},"outputs":[],"source":["#построениеобластейпокрытияиграницклассов#расчет характеристик качестваобучения\n","numb_square= 20\n","xx,yy,Z1=lib.square_calc(numb_square,data,ae1_trained,IREth1,'1',True)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"DofpK8lHSUJ4","collapsed":true},"outputs":[],"source":["#построениеобластейпокрытияиграницклассов#расчет характеристик качестваобучения\n","numb_square= 20\n","xx,yy,Z2=lib.square_calc(numb_square,data,ae2_trained,IREth2,'2',True)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"XQ0CN01NRzwm","collapsed":true},"outputs":[],"source":["#сравнение характеристик качестваобучения и областей аппроксимации\n","lib.plot2in1(data,xx,yy,Z1,Z2)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"AuOt-IKqpHW6"},"outputs":[],"source":["test_data = np.array([[1.6, 1.2], [1.2, 1], [1.1, 1], [1.5,1.5], [1, 1], [1.5, 1.5]])"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"twD6V4cWZx9v"},"outputs":[],"source":["#загрузка тестового набора\n","data_test= np.loadtxt('data_test.txt', dtype=float)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"GJWXvMqKZ3JY","collapsed":true},"outputs":[],"source":["#тестированиеАE1\n","predicted_labels1, ire1 = lib.predict_ae(ae1_trained, data_test, IREth1)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"7AumyaYIZ_J1","collapsed":true},"outputs":[],"source":["#тестированиеАE1\n","lib.anomaly_detection_ae(predicted_labels1, ire1, IREth1)\n","lib.ire_plot('test', ire1, IREth1, 'AE1')"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"miOpYG4_QySt","collapsed":true},"outputs":[],"source":["predicted_labels2, ire2 = lib.predict_ae(ae2_trained, data_test, IREth2)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"XpkmDEn9oOSt","collapsed":true},"outputs":[],"source":["#тестированиеАE2\n","lib.anomaly_detection_ae(predicted_labels2, ire2, IREth2)\n","lib.ire_plot('test', ire2, IREth2, 'AE2')"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"PaoFRzwLojA2","collapsed":true},"outputs":[],"source":["#построениеобластей аппроксимации и точек тестового набора\n","lib.plot2in1_anomaly(data, xx, yy, Z1, Z2, data_test)\n"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"ZnfgTk9Optsb"},"outputs":[],"source":["#загрузка выборок\n","train= np.loadtxt('letter_train.txt', dtype=float)\n","test = np.loadtxt('letter_test.txt', dtype=float)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"aGEx8XF-tTP4","collapsed":true},"outputs":[],"source":["# вывод данных и размерности\n","print('Исходные данные:')\n","print(train)\n","print('Размерность данных:')\n","print(train.shape)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"3RfYed3KtUnu","collapsed":true},"outputs":[],"source":["# обучение AE3 (100000 эпох)\n","patience= 5000\n","ae3_trained, IRE3, IREth3 = lib.create_fit_save_ae(train,'out/AE3.h5','out/AE3_ire_th.txt',\n","100000, False, 20000, early_stopping_delta = 0.001)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"6J05jZTw-TWs","collapsed":true},"outputs":[],"source":["lib.ire_plot('training', IRE3, IREth3, 'AE3')"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"nI8XdZ2nEynv","collapsed":true},"outputs":[],"source":["print(\"Порог ошибки реконструкции = \",IREth3)"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"ODIgHtnrp_5F","collapsed":true},"outputs":[],"source":["print('Исходные данные:')\n","print(test)\n","print('Размерность данных:')\n","print(test.shape)\n"]},{"cell_type":"code","execution_count":null,"metadata":{"id":"aW0OzlUeqOru","collapsed":true},"outputs":[],"source":["predicted_labels3, ire3 = lib.predict_ae(ae3_trained, test, IREth3)\n","lib.anomaly_detection_ae(predicted_labels3, ire3, IREth3)\n","lib.ire_plot('test', ire3, IREth3, 'AE3')"]}],"metadata":{"colab":{"provenance":[],"mount_file_id":"1mamnlASoLjVCU8dWcJ8h0NPVr7V7A-Wo","authorship_tag":"ABX9TyMsLZfmZ9o/xLfFrP8Lfc5q"},"kernelspec":{"display_name":"Python 3","name":"python3"},"language_info":{"name":"python"}},"nbformat":4,"nbformat_minor":0}