def run(self): data = self.imgHandler.constructData() # print(data.head()) # pca = PCA(n_components=4, svd_solver='full') # pca.fit(data) # data_PCA = pca.transform(data) # print(pca.explained_variance_ratio_) p = PCA(3) p.loadData(data.copy()) data_PCA, transformation_mat = p.transform() reconstruct = p.reconstruct(data_PCA) cv.imwrite('eigenfaces/rec.jpg', np.array(reconstruct)[:, 0].reshape(self.res, self.res)) cv.imwrite('eigenfaces/img1.jpg', np.array(data_PCA)[:, 0].reshape(self.res, self.res)) cv.imwrite('eigenfaces/img2.jpg', np.array(data_PCA)[:, 1].reshape(self.res, self.res)) cv.imwrite('eigenfaces/img3.jpg', np.array(data_PCA)[:, 2].reshape(self.res, self.res)) # cv.imwrite('eigenfaces/img4.jpg',np.array(data_PCA)[:,3].reshape(self.res,self.res)) # mean_init = data_PCA.mean(axis=1) # self.__init__('verification_2','eigenfaces') # data_test = self.imgHandler.constructData() # data_test_PCA = p.project(data_test) # mean_test = np.array(data_test_PCA.mean(axis=1)) # print(mean_init) # print(mean_test) # dist = np.linalg.norm(data_PCA[:,0]-data_test_PCA[:,0]) # print(dist) # cv.imwrite('eigenfaces/rec.jpg',np.array(reconstruct)[:,0].reshape(self.res,self.res)) # cv.imwrite('eigenfaces/img1.jpg',np.array(data_PCA)[:,0].reshape(self.res,self.res)) # cv.imwrite('eigenfaces/img2.jpg',np.array(data_PCA)[:,1].reshape(self.res,self.res)) # cv.imwrite('eigenfaces/img3.jpg',np.array(data_PCA)[:,2].reshape(self.res,self.res)) # cv.imwrite('eigenfaces/img4.jpg',np.array(data_PCA)[:,3].reshape(self.res,self.res)) cv.waitKey()
# print('iter:',i,'cost:',sess.run(mse, feed_dict=feed_dict)) print('iter:', i, 'loss:', loss_) cost_list.append(loss_) prob = sess.run(y_pred, feed_dict={ x_input: np.array(test_X), y_real: np.array(test_y), keep_prob: 1, batch_size: test_size - look_back }) #反归一化 realpredict_y, real_y = scaler.inverse_transform( prob), scaler.inverse_transform(test_y) pre_reconstruct = pca_obj.reconstruct(test_main_y, realpredict_y) real_reconstruct = pca_obj.reconstruct(test_main_y, real_y) print_res_index(pre_reconstruct, real_reconstruct, get_metrics) plt.plot(pre_reconstruct, label='Predicted line') plt.plot(real_reconstruct, label='Excepted line') plt.show() plt.close() plt.plot(m, label='Excepted line') plt.plot(([None for _ in range(train_size)] + [x for x in real_reconstruct]), label='Predicted line') plt.title('RawData lstm predict') plt.legend(loc='best') plt.show()
sess = tf.Session() # 初始化变量 sess.run(tf.global_variables_initializer()) for i in range(1, max_epoch + 1): feed_dict = { x_input: dataX, y_real: dataY, keep_prob: dropout_keep_rate, batch_size: batch } sess.run(train_op, feed_dict=feed_dict) print('iter:', i, 'cost:', sess.run(mse, feed_dict=feed_dict)) if i % 100 == 0: y_pre = sess.run(y_pred, feed_dict=feed_dict) # (50,288) #反归一化 realpredict_y, real_y = scaler.inverse_transform( [y_pre[0]]), scaler.inverse_transform([dataY[0]]) pre_reconstruct = pca_obj.reconstruct(realpredict_y) plt.plot(pre_reconstruct[0], label='Predicted reconstruct line') # plt.plot() plt.plot(realpredict_y[0], label='Predicted line') plt.plot(real_y[0], label='Excepted line') plt.legend(loc='best') plt.show() plt.close()
x2 = p.fit_transform(x) print(p.get_variance_score()) #Visusalization time plt.scatter(x2[:, 0], x2[:, 1]) plt.plot() p = None """now image compression""" x = load_imgs() print("The x matrix contains {} images converted to row vectors of length {}". format(x.shape[0], x.shape[1])) #Now let's convert them to 25x25 size images. So the number of #principal components becomes 25*25 = 625 p = PCA(nb_components=625) x3 = p.fit_transform(x) x2 = p.reconstruct() #Reconstruct to visualize print(p.get_variance_score()) #Display original new_img = x[3].reshape((30, 30)) cv2.imshow("", new_img) cv2.waitKey(0) #Display converted image new_img = x2[3].reshape((30, 30)) #new_img = cv2.resize(new_img, (30,30), interpolation = cv2.INTER_AREA) cv2.imshow("", new_img)