# Result for Hybrid Embedding Accuracy
import numpy as np

#MNIST
TTN_pca30_mnist_mse = np.array([0.9829787234042553, 0.9749408983451536, 0.9754137115839243, 0.9820330969267139, 0.9810874704491725])
TTN_ae30_mnist_mse = np.array([0.6657210401891253, 0.7673758865248227, 0.7900709219858156, 0.826950354609929, 0.8326241134751773])
TTN_pca32_mnist_mse = np.array([0.7229314420803783, 0.7304964539007093, 0.7172576832151301, 0.6671394799054373, 0.5957446808510638])
TTN_ae32_mnist_mse = np.array([0.9011820330969267, 0.8879432624113475, 0.8401891252955083, 0.915839243498818, 0.875177304964539])

U5_pca30_mnist_mse = np.array([0.9801418439716312, 0.9810874704491725, 0.9839243498817967, 0.9829787234042553, 0.9825059101654846])
U5_ae30_mnist_mse = np.array([0.9196217494089834, 0.9475177304964539, 0.8567375886524823, 0.8926713947990543, 0.8950354609929078])
U5_pca32_mnist_mse = np.array([0.7853427895981088, 0.7262411347517731, 0.7801418439716312, 0.7356973995271867, 0.7030732860520095])
U5_ae32_mnist_mse = np.array([0.9796690307328605, 0.9650118203309692, 0.9895981087470449, 0.992434988179669, 0.9328605200945627])

U6_pca30_mnist_mse = np.array([0.9829787234042553, 0.9820330969267139, 0.9843971631205674, 0.9825059101654846, 0.9843971631205674])
U6_ae30_mnist_mse = np.array([0.8978723404255319, 0.8846335697399527, 0.9087470449172577, 0.8449172576832151, 0.9191489361702128])
U6_pca32_mnist_mse = np.array([0.8009456264775414, 0.8056737588652483, 0.7952718676122932, 0.7687943262411348, 0.816548463356974])
U6_ae32_mnist_mse = np.array([0.9862884160756501, 0.9498817966903074, 0.9555555555555556, 0.9862884160756501, 0.9522458628841608])

U9_pca30_mnist_mse = np.array([0.9612293144208038, 0.9196217494089834, 0.9721040189125295, 0.957919621749409, 0.9234042553191489])
U9_ae30_mnist_mse = np.array([0.8066193853427897, 0.775886524822695, 0.8368794326241135, 0.7375886524822695, 0.8439716312056738])
U9_pca32_mnist_mse = np.array([0.6033096926713948, 0.6699763593380614, 0.6458628841607565, 0.6085106382978723, 0.5815602836879432])
U9_ae32_mnist_mse = np.array([0.8335697399527187, 0.9546099290780142, 0.9754137115839243, 0.9224586288416076, 0.9815602836879432])

U13_pca30_mnist_mse = np.array([0.9801418439716312, 0.9825059101654846, 0.9829787234042553, 0.9782505910165484, 0.9744680851063829])
U13_ae30_mnist_mse = np.array([0.8780141843971632, 0.8652482269503546, 0.9347517730496454, 0.9640661938534278, 0.8784869976359339])
U13_pca32_mnist_mse = np.array([0.6794326241134752, 0.6964539007092199, 0.7087470449172577, 0.7096926713947991, 0.7148936170212766])
U13_ae32_mnist_mse = np.array([0.9560283687943263, 0.9692671394799054, 0.9739952718676123, 0.9517730496453901, 0.9791962174940898])

U14_pca30_mnist_mse = np.array([0.9825059101654846, 0.9806146572104019, 0.9810874704491725, 0.9791962174940898, 0.9787234042553191])
U14_ae30_mnist_mse = np.array([0.8666666666666667, 0.9035460992907801, 0.8023640661938535, 0.9352245862884161, 0.816548463356974])
U14_pca32_mnist_mse = np.array([0.7144208037825059, 0.7971631205673759, 0.6411347517730497, 0.7791962174940898, 0.6988179669030733])
U14_ae32_mnist_mse = np.array([0.9205673758865248, 0.9555555555555556, 0.9423167848699764, 0.9205673758865248, 0.9366430260047282])

U15_pca30_mnist_mse = np.array([0.9777777777777777, 0.9810874704491725, 0.9829787234042553, 0.9825059101654846, 0.9820330969267139])
U15_ae30_mnist_mse = np.array([0.8463356973995272, 0.8321513002364066, 0.8529550827423168, 0.8482269503546099, 0.8397163120567376])
U15_pca32_mnist_mse = np.array([0.7333333333333333, 0.810401891252955, 0.775886524822695, 0.7550827423167848, 0.7460992907801418])
U15_ae32_mnist_mse = np.array([0.9621749408983451, 0.8865248226950354, 0.9782505910165484, 0.9810874704491725, 0.9555555555555556])

SO4_pca30_mnist_mse = np.array([0.9872340425531915, 0.9820330969267139, 0.983451536643026, 0.9801418439716312, 0.9829787234042553])
SO4_ae30_mnist_mse = np.array([0.9210401891252955, 0.9234042553191489, 0.9342789598108747, 0.7522458628841607, 0.8132387706855791])
SO4_pca32_mnist_mse = np.array([0.7877068557919622, 0.7952718676122932, 0.7777777777777778, 0.75177304964539, 0.7583924349881797])
SO4_ae32_mnist_mse = np.array([0.991016548463357, 0.9470449172576832, 0.9451536643026005, 0.9796690307328605, 0.9891252955082742])

SU4_pca30_mnist_mse = np.array([0.983451536643026, 0.9810874704491725, 0.9839243498817967, 0.9810874704491725, 0.9796690307328605])
SU4_ae30_mnist_mse = np.array([0.900709219858156, 0.8208037825059101, 0.9068557919621749, 0.9286052009456265, 0.7924349881796691])
SU4_pca32_mnist_mse = np.array([0.8047281323877069, 0.8052009456264776, 0.7787234042553192, 0.7295508274231679, 0.7877068557919622])
SU4_ae32_mnist_mse = np.array([0.992434988179669, 0.9957446808510638, 0.9872340425531915, 0.975886524822695, 0.9366430260047282])

SU4_1_pca30_mnist_mse = np.array([0.9829787234042553, 0.9791962174940898, 0.9806146572104019, 0.9810874704491725, 0.9820330969267139])
SU4_1_ae30_mnist_mse = np.array([0.9101654846335697, 0.8468085106382979, 0.858628841607565, 0.9196217494089834, 0.8893617021276595])
SU4_1_pca32_mnist_mse = np.array([0.7565011820330969, 0.7635933806146572, 0.8231678486997636, 0.7635933806146572, 0.7650118203309693])
SU4_1_ae32_mnist_mse = np.array([0.9744680851063829, 0.9815602836879432, 0.9905437352245863, 0.9938534278959811, 0.9612293144208038])

# Fashion MNIST
TTN_pca30_fashion_mse = np.array([0.8475, 0.837, 0.8575, 0.8065, 0.846])
TTN_ae30_fashion_mse = np.array([0.828, 0.856, 0.78, 0.776, 0.897])
TTN_pca32_fashion_mse = np.array([0.583, 0.6525, 0.6495, 0.671, 0.665])
TTN_ae32_fashion_mse = np.array([0.9055, 0.9105, 0.92, 0.908, 0.8805])

U5_pca30_fashion_mse = np.array([0.8575, 0.8725, 0.879, 0.837, 0.889])
U5_ae30_fashion_mse = np.array([0.891, 0.9405, 0.9155, 0.8575, 0.8785])
U5_pca32_fashion_mse = np.array([0.6565, 0.657, 0.6595, 0.661, 0.6795])
U5_ae32_fashion_mse = np.array([0.946, 0.9395, 0.9275, 0.947, 0.932])

U6_pca30_fashion_mse = np.array([0.8365, 0.8755, 0.8785, 0.8615, 0.86])
U6_ae30_fashion_mse = np.array([0.9355, 0.936, 0.9225, 0.845, 0.9395])
U6_pca32_fashion_mse = np.array([0.6665, 0.6615, 0.67, 0.6665, 0.6625])
U6_ae32_fashion_mse = np.array([0.9115, 0.9465, 0.9195, 0.948, 0.936])

U9_pca30_fashion_mse = np.array([0.8645, 0.844, 0.7625, 0.8755, 0.8675])
U9_ae30_fashion_mse = np.array([0.836, 0.781, 0.8685, 0.8735, 0.746])
U9_pca32_fashion_mse = np.array([0.623, 0.644, 0.612, 0.6265, 0.649])
U9_ae32_fashion_mse = np.array([0.8705, 0.8615, 0.771, 0.904, 0.8935])

U13_pca30_fashion_mse = np.array([0.8575, 0.8525, 0.8315, 0.8365, 0.8555])
U13_ae30_fashion_mse = np.array([0.855, 0.921, 0.94, 0.884, 0.8195])
U13_pca32_fashion_mse = np.array([0.681, 0.6405, 0.622, 0.6485, 0.6445])
U13_ae32_fashion_mse = np.array([0.912, 0.913, 0.9045, 0.9115, 0.919])

U14_pca30_fashion_mse = np.array([0.8165, 0.8685, 0.855, 0.8475, 0.8395])
U14_ae30_fashion_mse = np.array([0.831, 0.918, 0.8715, 0.805, 0.871])
U14_pca32_fashion_mse = np.array([0.6585,0.6155, 0.67, 0.6485, 0.61])
U14_ae32_fashion_mse = np.array([0.9035, 0.9155, 0.9345, 0.938, 0.9275])

U15_pca30_fashion_mse = np.array([0.833, 0.861, 0.8535, 0.867, 0.862])
U15_ae30_fashion_mse = np.array([0.8115, 0.8695, 0.9135, 0.925, 0.8855])
U15_pca32_fashion_mse = np.array([0.639, 0.663, 0.6695, 0.639, 0.6655])
U15_ae32_fashion_mse = np.array([0.905, 0.904, 0.9065, 0.935, 0.935])

SO4_pca30_fashion_mse = np.array([0.9105, 0.8695, 0.8565, 0.9045, 0.8455])
SO4_ae30_fashion_mse = np.array([0.8815, 0.8845, 0.914, 0.9055, 0.8405])
SO4_pca32_fashion_mse = np.array([0.656, 0.645, 0.6505, 0.663, 0.6705])
SO4_ae32_fashion_mse = np.array([0.937, 0.9245, 0.958, 0.943, 0.9515])

SU4_pca30_fashion_mse = np.array([0.877, 0.8845, 0.9205, 0.889, 0.858])
SU4_ae30_fashion_mse = np.array([0.8655, 0.926, 0.87, 0.829, 0.922])
SU4_pca32_fashion_mse = np.array([0.631, 0.6615, 0.6515, 0.664, 0.6395])
SU4_ae32_fashion_mse = np.array([0.9405, 0.9665, 0.9415, 0.949, 0.9165])

SU4_1_pca30_fashion_mse = np.array([0.8575, 0.8975, 0.887, 0.8995, 0.9015])
SU4_1_ae30_fashion_mse = np.array([0.877, 0.8355, 0.8305, 0.9295, 0.885])
SU4_1_pca32_fashion_mse = np.array([0.669, 0.6415, 0.6595, 0.5955, 0.669])
SU4_1_ae32_fashion_mse = np.array([0.943, 0.934, 0.9365, 0.926, 0.9065])

print("HAE and HDE result with CrossEntropy")
print("MNIST DATASET: ")
print("TTN PCA30 " + str(TTN_pca30_mnist_mse.mean()) + " +/- " + str(TTN_pca30_mnist_mse.std()))
print("TTN AE30 " + str(TTN_ae30_mnist_mse.mean()) + " +/- " + str(TTN_ae30_mnist_mse.std()))
print("TTN PCA32 " + str(TTN_pca32_mnist_mse.mean()) + " +/- " + str(TTN_pca32_mnist_mse.std()))
print("TTN AE32 " + str(TTN_ae32_mnist_mse.mean()) + " +/- " + str(TTN_ae32_mnist_mse.std()))
print("\n")
print("U5 PCA30 " + str(U5_pca30_mnist_mse.mean()) + " +/- " + str(U5_pca30_mnist_mse.std()))
print("U5 AE30 " + str(U5_ae30_mnist_mse.mean()) + " +/- " + str(U5_ae30_mnist_mse.std()))
print("U5 PCA32 " + str(U5_pca32_mnist_mse.mean()) + " +/- " + str(U5_pca32_mnist_mse.std()))
print("U5 AE32 " + str(U5_ae32_mnist_mse.mean()) + " +/- " + str(U5_ae32_mnist_mse.std()))
print("\n")
print("U6 PCA30 " + str(U6_pca30_mnist_mse.mean()) + " +/- " + str(U6_pca30_mnist_mse.std()))
print("U6 AE30 " + str(U6_ae30_mnist_mse.mean()) + " +/- " + str(U6_ae30_mnist_mse.std()))
print("U6 PCA32 " + str(U6_pca32_mnist_mse.mean()) + " +/- " + str(U6_pca32_mnist_mse.std()))
print("U6 AE32 " + str(U6_ae32_mnist_mse.mean()) + " +/- " + str(U6_ae32_mnist_mse.std()))
print("\n")
print("U9 PCA30 " + str(U9_pca30_mnist_mse.mean()) + " +/- " + str(U9_pca30_mnist_mse.std()))
print("U9 AE30 " + str(U9_ae30_mnist_mse.mean()) + " +/- " + str(U9_ae30_mnist_mse.std()))
print("U9 PCA32 " + str(U9_pca32_mnist_mse.mean()) + " +/- " + str(U9_pca32_mnist_mse.std()))
print("U9 AE32 " + str(U9_ae32_mnist_mse.mean()) + " +/- " + str(U9_ae32_mnist_mse.std()))
print("\n")
print("U13 PCA30 " + str(U13_pca30_mnist_mse.mean()) + " +/- " + str(U13_pca30_mnist_mse.std()))
print("U13 AE30 " + str(U13_ae30_mnist_mse.mean()) + " +/- " + str(U13_ae30_mnist_mse.std()))
print("U13 PCA32 " + str(U13_pca32_mnist_mse.mean()) + " +/- " + str(U13_pca32_mnist_mse.std()))
print("U13 AE32 " + str(U13_ae32_mnist_mse.mean()) + " +/- " + str(U13_ae32_mnist_mse.std()))
print("\n")
print("U14 PCA30 " + str(U14_pca30_mnist_mse.mean()) + " +/- " + str(U14_pca30_mnist_mse.std()))
print("U14 AE30 " + str(U14_ae30_mnist_mse.mean()) + " +/- " + str(U14_ae30_mnist_mse.std()))
print("U14 PCA32 " + str(U14_pca32_mnist_mse.mean()) + " +/- " + str(U14_pca32_mnist_mse.std()))
print("U14 AE32 " + str(U14_ae32_mnist_mse.mean()) + " +/- " + str(U14_ae32_mnist_mse.std()))
print("\n")
print("U15 PCA30 " + str(U15_pca30_mnist_mse.mean()) + " +/- " + str(U15_pca30_mnist_mse.std()))
print("U15 AE30 " + str(U15_ae30_mnist_mse.mean()) + " +/- " + str(U15_ae30_mnist_mse.std()))
print("U15 PCA32 " + str(U15_pca32_mnist_mse.mean()) + " +/- " + str(U15_pca32_mnist_mse.std()))
print("U15 AE32 " + str(U15_ae32_mnist_mse.mean()) + " +/- " + str(U15_ae32_mnist_mse.std()))
print("\n")
print("SO4 PCA30 " + str(SO4_pca30_mnist_mse.mean()) + " +/- " + str(SO4_pca30_mnist_mse.std()))
print("SO4 AE30 " + str(SO4_ae30_mnist_mse.mean()) + " +/- " + str(SO4_ae30_mnist_mse.std()))
print("SO4 PCA32 " + str(SO4_pca32_mnist_mse.mean()) + " +/- " + str(SO4_pca32_mnist_mse.std()))
print("SO4 AE32 " + str(SO4_ae32_mnist_mse.mean()) + " +/- " + str(SO4_ae32_mnist_mse.std()))
print("\n")
print("SU4 PCA30 " + str(SU4_pca30_mnist_mse.mean()) + " +/- " + str(SU4_pca30_mnist_mse.std()))
print("SU4 AE30 " + str(SU4_ae30_mnist_mse.mean()) + " +/- " + str(SU4_ae30_mnist_mse.std()))
print("SU4 PCA32 " + str(SU4_pca32_mnist_mse.mean()) + " +/- " + str(SU4_pca32_mnist_mse.std()))
print("SU4 AE32 " + str(SU4_ae32_mnist_mse.mean()) + " +/- " + str(SU4_ae32_mnist_mse.std()))
print("\n")
print("SU4_1 PCA30 " + str(SU4_1_pca30_mnist_mse.mean()) + " +/- " + str(SU4_1_pca30_mnist_mse.std()))
print("SU4_1 AE30 " + str(SU4_1_ae30_mnist_mse.mean()) + " +/- " + str(SU4_1_ae30_mnist_mse.std()))
print("SU4_1 PCA32 " + str(SU4_1_pca32_mnist_mse.mean()) + " +/- " + str(SU4_1_pca32_mnist_mse.std()))
print("SU4_1 AE32 " + str(SU4_1_ae32_mnist_mse.mean()) + " +/- " + str(SU4_1_ae32_mnist_mse.std()))
print("\n")
print("FASHION MNIST DATASET")
print("TTN PCA30 " + str(TTN_pca30_fashion_mse.mean()) + " +/- " + str(TTN_pca30_fashion_mse.std()))
print("TTN AE30 " + str(TTN_ae30_fashion_mse.mean()) + " +/- " + str(TTN_ae30_fashion_mse.std()))
print("TTN PCA32 " + str(TTN_pca32_fashion_mse.mean()) + " +/- " + str(TTN_pca32_fashion_mse.std()))
print("TTN AE32 " + str(TTN_ae32_fashion_mse.mean()) + " +/- " + str(TTN_ae32_fashion_mse.std()))
print("\n")
print("U5 PCA30 " + str(U5_pca30_fashion_mse.mean()) + " +/- " + str(U5_pca30_fashion_mse.std()))
print("U5 AE30 " + str(U5_ae30_fashion_mse.mean()) + " +/- " + str(U5_ae30_fashion_mse.std()))
print("U5 PCA32 " + str(U5_pca32_fashion_mse.mean()) + " +/- " + str(U5_pca32_fashion_mse.std()))
print("U5 AE32 " + str(U5_ae32_fashion_mse.mean()) + " +/- " + str(U5_ae32_fashion_mse.std()))
print("\n")
print("U6 PCA30 " + str(U6_pca30_fashion_mse.mean()) + " +/- " + str(U6_pca30_fashion_mse.std()))
print("U6 AE30 " + str(U6_ae30_fashion_mse.mean()) + " +/- " + str(U6_ae30_fashion_mse.std()))
print("U6 PCA32 " + str(U6_pca32_fashion_mse.mean()) + " +/- " + str(U6_pca32_fashion_mse.std()))
print("U6 AE32 " + str(U6_ae32_fashion_mse.mean()) + " +/- " + str(U6_ae32_fashion_mse.std()))
print("\n")
print("U9 PCA30 " + str(U9_pca30_fashion_mse.mean()) + " +/- " + str(U9_pca30_fashion_mse.std()))
print("U9 AE30 " + str(U9_ae30_fashion_mse.mean()) + " +/- " + str(U9_ae30_fashion_mse.std()))
print("U9 PCA32 " + str(U9_pca32_fashion_mse.mean()) + " +/- " + str(U9_pca32_fashion_mse.std()))
print("U9 AE32 " + str(U9_ae32_fashion_mse.mean()) + " +/- " + str(U9_ae32_fashion_mse.std()))
print("\n")
print("U13 PCA30 " + str(U13_pca30_fashion_mse.mean()) + " +/- " + str(U13_pca30_fashion_mse.std()))
print("U13 AE30 " + str(U13_ae30_fashion_mse.mean()) + " +/- " + str(U13_ae30_fashion_mse.std()))
print("U13 PCA32 " + str(U13_pca32_fashion_mse.mean()) + " +/- " + str(U13_pca32_fashion_mse.std()))
print("U13 AE32 " + str(U13_ae32_fashion_mse.mean()) + " +/- " + str(U13_ae32_fashion_mse.std()))
print("\n")
print("U14 PCA30 " + str(U14_pca30_fashion_mse.mean()) + " +/- " + str(U14_pca30_fashion_mse.std()))
print("U14 AE30 " + str(U14_ae30_fashion_mse.mean()) + " +/- " + str(U14_ae30_fashion_mse.std()))
print("U14 PCA32 " + str(U14_pca32_fashion_mse.mean()) + " +/- " + str(U14_pca32_fashion_mse.std()))
print("U14 AE32 " + str(U14_ae32_fashion_mse.mean()) + " +/- " + str(U14_ae32_fashion_mse.std()))
print("\n")
print("U15 PCA30 " + str(U15_pca30_fashion_mse.mean()) + " +/- " + str(U15_pca30_fashion_mse.std()))
print("U15 AE30 " + str(U15_ae30_fashion_mse.mean()) + " +/- " + str(U15_ae30_fashion_mse.std()))
print("U15 PCA32 " + str(U15_pca32_fashion_mse.mean()) + " +/- " + str(U15_pca32_fashion_mse.std()))
print("U15 AE32 " + str(U15_ae32_fashion_mse.mean()) + " +/- " + str(U15_ae32_fashion_mse.std()))
print("\n")
print("SO4 PCA30 " + str(SO4_pca30_fashion_mse.mean()) + " +/- " + str(SO4_pca30_fashion_mse.std()))
print("SO4 AE30 " + str(SO4_ae30_fashion_mse.mean()) + " +/- " + str(SO4_ae30_fashion_mse.std()))
print("SO4 PCA32 " + str(SO4_pca32_fashion_mse.mean()) + " +/- " + str(SO4_pca32_fashion_mse.std()))
print("SO4 AE32 " + str(SO4_ae32_fashion_mse.mean()) + " +/- " + str(SO4_ae32_fashion_mse.std()))
print("\n")
print("SU4 PCA30 " + str(SU4_pca30_fashion_mse.mean()) + " +/- " + str(SU4_pca30_fashion_mse.std()))
print("SU4 AE30 " + str(SU4_ae30_fashion_mse.mean()) + " +/- " + str(SU4_ae30_fashion_mse.std()))
print("SU4 PCA32 " + str(SU4_pca32_fashion_mse.mean()) + " +/- " + str(SU4_pca32_fashion_mse.std()))
print("SU4 AE32 " + str(SU4_ae32_fashion_mse.mean()) + " +/- " + str(SU4_ae32_fashion_mse.std()))
print("\n")
print("SU4_1 PCA30 " + str(SU4_1_pca30_fashion_mse.mean()) + " +/- " + str(SU4_1_pca30_fashion_mse.std()))
print("SU4_1 AE30 " + str(SU4_1_ae30_fashion_mse.mean()) + " +/- " + str(SU4_1_ae30_fashion_mse.std()))
print("SU4_1 PCA32 " + str(SU4_1_pca32_fashion_mse.mean()) + " +/- " + str(SU4_1_pca32_fashion_mse.std()))
print("SU4_1 AE32 " + str(SU4_1_ae32_fashion_mse.mean()) + " +/- " + str(SU4_1_ae32_fashion_mse.std()))


# HDE mean for PCA and AE
HDE_PCA_MNIST_mean = np.array([TTN_pca32_mnist_mse.mean(), U5_pca32_mnist_mse.mean(), U6_pca32_mnist_mse.mean(),
                               U9_pca32_mnist_mse.mean(), U13_pca32_mnist_mse.mean(), U14_pca32_mnist_mse.mean(),
                               U15_pca32_mnist_mse.mean(), SO4_pca32_mnist_mse.mean(), SU4_pca32_mnist_mse.mean(),
                               SU4_1_pca32_mnist_mse.mean()]).mean()
HDE_PCA_MNIST_std = np.array([TTN_pca32_mnist_mse.std(), U5_pca32_mnist_mse.std(), U6_pca32_mnist_mse.std(),
                               U9_pca32_mnist_mse.std(), U13_pca32_mnist_mse.std(), U14_pca32_mnist_mse.std(),
                               U15_pca32_mnist_mse.std(), SO4_pca32_mnist_mse.std(), SU4_pca32_mnist_mse.std(),
                               SU4_1_pca32_mnist_mse.std()]).mean()

HDE_AE_MNIST_mean = np.array([TTN_ae32_mnist_mse.mean(), U5_ae32_mnist_mse.mean(), U6_ae32_mnist_mse.mean(),
                               U9_ae32_mnist_mse.mean(), U13_ae32_mnist_mse.mean(), U14_ae32_mnist_mse.mean(),
                               U15_ae32_mnist_mse.mean(), SO4_ae32_mnist_mse.mean(), SU4_ae32_mnist_mse.mean(),
                               SU4_1_ae32_mnist_mse.mean()]).mean()
HDE_AE_MNIST_std = np.array([TTN_ae32_mnist_mse.std(), U5_ae32_mnist_mse.std(), U6_ae32_mnist_mse.std(),
                               U9_ae32_mnist_mse.std(), U13_ae32_mnist_mse.std(), U14_ae32_mnist_mse.std(),
                               U15_ae32_mnist_mse.std(), SO4_ae32_mnist_mse.std(), SU4_ae32_mnist_mse.std(),
                               SU4_1_ae32_mnist_mse.std()]).mean()

HDE_PCA_FASHION_mean = np.array([TTN_pca32_fashion_mse.mean(), U5_pca32_fashion_mse.mean(), U6_pca32_fashion_mse.mean(),
                               U9_pca32_fashion_mse.mean(), U13_pca32_fashion_mse.mean(), U14_pca32_fashion_mse.mean(),
                               U15_pca32_fashion_mse.mean(), SO4_pca32_fashion_mse.mean(), SU4_pca32_fashion_mse.mean(),
                               SU4_1_pca32_fashion_mse.mean()]).mean()
HDE_PCA_FASHION_std = np.array([TTN_pca32_fashion_mse.std(), U5_pca32_fashion_mse.std(), U6_pca32_fashion_mse.std(),
                               U9_pca32_fashion_mse.std(), U13_pca32_fashion_mse.std(), U14_pca32_fashion_mse.std(),
                               U15_pca32_fashion_mse.std(), SO4_pca32_fashion_mse.std(), SU4_pca32_fashion_mse.std(),
                               SU4_1_pca32_fashion_mse.std()]).mean()

HDE_AE_FASHION_mean = np.array([TTN_ae32_fashion_mse.mean(), U5_ae32_fashion_mse.mean(), U6_ae32_fashion_mse.mean(),
                               U9_ae32_fashion_mse.mean(), U13_ae32_fashion_mse.mean(), U14_ae32_fashion_mse.mean(),
                               U15_ae32_fashion_mse.mean(), SO4_ae32_fashion_mse.mean(), SU4_ae32_fashion_mse.mean(),
                               SU4_1_ae32_fashion_mse.mean()]).mean()
HDE_AE_FASHION_std = np.array([TTN_ae32_fashion_mse.std(), U5_ae32_fashion_mse.std(), U6_ae32_fashion_mse.std(),
                               U9_ae32_fashion_mse.std(), U13_ae32_fashion_mse.std(), U14_ae32_fashion_mse.std(),
                               U15_ae32_fashion_mse.std(), SO4_ae32_fashion_mse.std(), SU4_ae32_fashion_mse.std(),
                               SU4_1_ae32_fashion_mse.std()]).mean()


# HAE mean for PCA and AE
HAE_PCA_MNIST_mean = np.array([TTN_pca30_mnist_mse.mean(), U5_pca30_mnist_mse.mean(), U6_pca30_mnist_mse.mean(),
                               U9_pca30_mnist_mse.mean(), U13_pca30_mnist_mse.mean(), U14_pca30_mnist_mse.mean(),
                               U15_pca30_mnist_mse.mean(), SO4_pca30_mnist_mse.mean(), SU4_pca30_mnist_mse.mean(),
                               SU4_1_pca30_mnist_mse.mean()]).mean()
HAE_PCA_MNIST_std = np.array([TTN_pca30_mnist_mse.std(), U5_pca30_mnist_mse.std(), U6_pca30_mnist_mse.std(),
                               U9_pca30_mnist_mse.std(), U13_pca30_mnist_mse.std(), U14_pca30_mnist_mse.std(),
                               U15_pca30_mnist_mse.std(), SO4_pca30_mnist_mse.std(), SU4_pca30_mnist_mse.std(),
                               SU4_1_pca30_mnist_mse.std()]).mean()

HAE_AE_MNIST_mean = np.array([TTN_ae30_mnist_mse.mean(), U5_ae30_mnist_mse.mean(), U6_ae30_mnist_mse.mean(),
                               U9_ae30_mnist_mse.mean(), U13_ae30_mnist_mse.mean(), U14_ae30_mnist_mse.mean(),
                               U15_ae30_mnist_mse.mean(), SO4_ae30_mnist_mse.mean(), SU4_ae30_mnist_mse.mean(),
                               SU4_1_ae30_mnist_mse.mean()]).mean()
HAE_AE_MNIST_std = np.array([TTN_ae30_mnist_mse.std(), U5_ae30_mnist_mse.std(), U6_ae30_mnist_mse.std(),
                               U9_ae30_mnist_mse.std(), U13_ae30_mnist_mse.std(), U14_ae30_mnist_mse.std(),
                               U15_ae30_mnist_mse.std(), SO4_ae30_mnist_mse.std(), SU4_ae30_mnist_mse.std(),
                               SU4_1_ae30_mnist_mse.std()]).mean()

HAE_PCA_FASHION_mean = np.array([TTN_pca30_fashion_mse.mean(), U5_pca30_fashion_mse.mean(), U6_pca30_fashion_mse.mean(),
                               U9_pca30_fashion_mse.mean(), U13_pca30_fashion_mse.mean(), U14_pca30_fashion_mse.mean(),
                               U15_pca30_fashion_mse.mean(), SO4_pca30_fashion_mse.mean(), SU4_pca30_fashion_mse.mean(),
                               SU4_1_pca30_fashion_mse.mean()]).mean()
HAE_PCA_FASHION_std = np.array([TTN_pca30_fashion_mse.std(), U5_pca30_fashion_mse.std(), U6_pca30_fashion_mse.std(),
                               U9_pca30_fashion_mse.std(), U13_pca30_fashion_mse.std(), U14_pca30_fashion_mse.std(),
                               U15_pca30_fashion_mse.std(), SO4_pca30_fashion_mse.std(), SU4_pca30_fashion_mse.std(),
                               SU4_1_pca30_fashion_mse.std()]).mean()

HAE_AE_FASHION_mean = np.array([TTN_ae30_fashion_mse.mean(), U5_ae30_fashion_mse.mean(), U6_ae30_fashion_mse.mean(),
                               U9_ae30_fashion_mse.mean(), U13_ae30_fashion_mse.mean(), U14_ae30_fashion_mse.mean(),
                               U15_ae30_fashion_mse.mean(), SO4_ae30_fashion_mse.mean(), SU4_ae30_fashion_mse.mean(),
                               SU4_1_ae30_fashion_mse.mean()]).mean()
HAE_AE_FASHION_std = np.array([TTN_ae30_fashion_mse.std(), U5_ae30_fashion_mse.std(), U6_ae30_fashion_mse.std(),
                               U9_ae30_fashion_mse.std(), U13_ae30_fashion_mse.std(), U14_ae30_fashion_mse.std(),
                               U15_ae30_fashion_mse.std(), SO4_ae30_fashion_mse.std(), SU4_ae30_fashion_mse.std(),
                               SU4_1_ae30_fashion_mse.std()]).mean()
print("\n")
print("Mean Values for PCA and AE Encodings: ")
print("HAE PCA MNIST : " + str(HAE_PCA_MNIST_mean) + " +\- " + str(HAE_PCA_MNIST_std))
print("HAE AE MNIST: " + str(HAE_AE_MNIST_mean) + " +\- " + str(HAE_AE_MNIST_std))
print("HDE PCA MNIST : " + str(HDE_PCA_MNIST_mean) + " +\- " + str(HDE_PCA_MNIST_std))
print("HDE AE MNIST: " + str(HDE_AE_MNIST_mean) + " +\- " + str(HDE_AE_MNIST_std))
print("HAE PCA FASHION : " + str(HAE_PCA_FASHION_mean) + " +\- " + str(HAE_PCA_FASHION_std))
print("HAE AE FASHION: " + str(HAE_AE_FASHION_mean) + " +\- " + str(HAE_AE_FASHION_std))
print("HDE PCA FASHION : " + str(HDE_PCA_FASHION_mean) + " +\- " + str(HDE_PCA_FASHION_std))
print("HDE AE FASHION: " + str(HDE_AE_FASHION_mean) + " +\- " + str(HDE_AE_FASHION_std))
