train_y_file = "./data/train_label.csv" train_y = np.genfromtxt(train_y_file, delimiter=',') print(train_y.shape) test_x_file = "./data/test_data.csv" test_x = np.genfromtxt(test_x_file, delimiter=',') print(test_x.shape) test_y_file = "./data/test_label.csv" test_y = np.genfromtxt(test_y_file) print(test_y.shape) #addition PCA here pca = PCA(166, 50) train_x = pca.getPC(train_x) test_x = pca.projectData( test_x) # standardization will be performed inside the function print(train_x.shape) print(test_x.shape) knn = Knn() print type(train_x) new_train_x, new_train_y = knn.shuffle(train_x, train_y) new_train_x = np.array(new_train_x) new_train_y = np.array(new_train_y) k_values = [2 * l + 1 for l in range(0, 9)] k_value_acc = {i: 0.0 for i in k_values} for k in k_values: sum_accuracy = 0 folds = 5 for i in range(1, folds + 1): train_x1, train_y1, test_x1, test_y1 = knn.get_kth_fold( new_train_x, new_train_y, folds, i)
p1 = mu p2 = mu + 1.5 * S[0] * U[:, 0].T data = np.r_[p1, p2].reshape([-1, 2]) ax.plot(data[:, 0], data[:, 1], '-k', linewidth=2) p2 = mu + 1.5 * S[1] * U[:, 1].T data = np.r_[p1, p2].reshape([-1, 2]) ax.plot(data[:, 0], data[:, 1], '-k', linewidth=2) # =================== Dimension Reduction =================== ax = fig.add_subplot(1, 2, 2) ax.plot(X_norm[:, 0], X_norm[:, 1], 'bo') K = 1 Z = pca.projectData(X_norm, U, K) X_rec = pca.recoverData(Z, U, K) ax.plot(X_rec[:, 0], X_rec[:, 1], 'ro') for i in range(m): data = np.r_[X_norm[i, :], X_rec[i, :]].reshape([-1, 2]) ax.plot(data[:, 0], data[:, 1], '--k', linewidth=2) # =============== Loading and Visualizing Face Data ============= def displayData(X): m, n = X.shape example_width = np.int(np.sqrt(n)) example_height = np.int(n / example_width)