Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

6.6 KiB

import os
os.chdir ('/content/drive/MyDrive/Colab Notebooks/is_lab2')
#импортмодулей
import numpy as np
import lab02_lib as lib
#генерациядатасета
data=lib.datagen(1,1,1000,2)
#выводданных и размерности
print('Исходныеданные:')
print(data)
print('Размерностьданных:')
print(data.shape)
#обучение AE1
patience= 10
ae1_trained, IRE1, IREth1= lib.create_fit_save_ae(data,'out/AE1.h5','out/AE1_ire_th.txt', 50, True, patience)
#Построение графика ошибки реконструкции
lib.ire_plot('training', IRE1, IREth1, 'AE1')
print("Порог ошибки реконструкции = ",IREth1)
# обучениеAE2
patience= 100
ae2_trained, IRE2, IREth2= lib.create_fit_save_ae(data,'out/AE2.h5','out/AE2_ire_th.txt', 1000, True, patience)
lib.ire_plot('training', IRE2, IREth2, 'AE2')
print("Порог ошибки реконструкции = ",IREth2)
#построениеобластейпокрытияиграницклассов#расчет характеристик качестваобучения
numb_square= 20
xx,yy,Z1=lib.square_calc(numb_square,data,ae1_trained,IREth1,'1',True)
#построениеобластейпокрытияиграницклассов#расчет характеристик качестваобучения
numb_square= 20
xx,yy,Z2=lib.square_calc(numb_square,data,ae2_trained,IREth2,'2',True)
#сравнение характеристик качестваобучения и областей аппроксимации
lib.plot2in1(data,xx,yy,Z1,Z2)
test_data = np.array([[1.6, 1.2], [1.2, 1], [1.1, 1], [1.5,1.5], [1, 1], [1.5, 1.5]])
#загрузка тестового набора
data_test= np.loadtxt('data_test.txt', dtype=float)
#тестированиеАE1
predicted_labels1, ire1 = lib.predict_ae(ae1_trained, data_test, IREth1)
#тестированиеАE1
lib.anomaly_detection_ae(predicted_labels1, ire1, IREth1)
lib.ire_plot('test', ire1, IREth1, 'AE1')
predicted_labels2, ire2 = lib.predict_ae(ae2_trained, data_test, IREth2)
#тестированиеАE2
lib.anomaly_detection_ae(predicted_labels2, ire2, IREth2)
lib.ire_plot('test', ire2, IREth2, 'AE2')
#построениеобластей аппроксимации и точек тестового набора
lib.plot2in1_anomaly(data, xx, yy, Z1, Z2, data_test)
#загрузка выборок
train= np.loadtxt('letter_train.txt', dtype=float)
test = np.loadtxt('letter_test.txt', dtype=float)
# вывод данных и размерности
print('Исходные данные:')
print(train)
print('Размерность данных:')
print(train.shape)
# обучение AE3 (100000 эпох)
patience= 5000
ae3_trained, IRE3, IREth3 = lib.create_fit_save_ae(train,'out/AE3.h5','out/AE3_ire_th.txt',
100000, False, 20000, early_stopping_delta = 0.001)
lib.ire_plot('training', IRE3, IREth3, 'AE3')
print("Порог ошибки реконструкции = ",IREth3)
print('Исходные данные:')
print(test)
print('Размерность данных:')
print(test.shape)
predicted_labels3, ire3 = lib.predict_ae(ae3_trained, test, IREth3)
lib.anomaly_detection_ae(predicted_labels3, ire3, IREth3)
lib.ire_plot('test', ire3, IREth3, 'AE3')