def var_vs_comp(X, start, stop, step): print("Making variance v/s components plot. . . ") components = [] variances = [] d = X.shape[1] i_cols = np.arange(start, stop, step) for k in i_cols: pca = Preprocessing.PCA(X, k=k, whiten=False) components.append(k) variances.append(pca.var_retained) plt.plot(components, variances) plt.ylabel('variance retained') plt.xlabel('number of components') plt.show()
def performPCA(inputDataClass, reduced_columns): ############################################## PCA Visualisation ############################################# # #variance v/s n_components : Fashion MNIST # start = 10 # stop = 500 # step = 15 # Visualization.var_vs_comp(inputDataClass.Train[:,:-1], start, stop, step) ########################################################### PCA ############################################# ##### Our PCA #### pca = Preprocessing.PCA(inputDataClass.Train[:, :-1], k=reduced_columns, whiten=False) ##### Hyperparameter #### reduced_train = pca.reduce(inputDataClass.Train[:, :-1], True) inputDataClass.Train = np.hstack( (reduced_train, inputDataClass.Train[:, -1].reshape(-1, 1))) print("train_data reduced. YAYAYAYA") print("Train data reduced to columns = " + str(reduced_train.shape[1])) reduced_test = pca.reduce(inputDataClass.Test[:, :-1], False) inputDataClass.Test = np.hstack( (reduced_test, inputDataClass.Test[:, -1].reshape(-1, 1))) print("test_data reduced. YAYAYAYA") print("Test data reduced to columns = " + str(reduced_test.shape[1]))