############################################## 2d data, target = read_file() data = preprocessing.scale(data) pca = Pca() cov = pca.cov_matrix(data[:, 0], data[:, 1], data[:, 2], data[:, 3]) values, vectors = pca.eigen_values_vectors(cov) values, vectors = pca.sort_eigen(values, vectors) vectors = pca.eigen_strip_vectors(values, vectors, 0.90) print(vectors) values = values[:len(vectors[0])] result = np.matrix.transpose(pca.pca_result(data, vectors)).reshape(len(data), len(data[0])-2) result[:, 1] = -result[:, 1] points = result count = 0 class_points = [] fig = plt.figure() for label in range(3): for i in range(len(target)): if(label == target[i]): class_points.append(points[i]) class_points = np.array(class_points) x = class_points[:, 0] y = class_points[:, 1] plt.plot(x, y, colors[label], label=str(count)) count += 1 class_points = []
labels = np.array(labels) # # without pca batch_size = 2 # print(inputs[0]) # leng = [len(inp) for inp in inputs] # print(max(leng), min(leng)) # print(inputs.shape[1:]) # mlp.create_network(inputs.shape[1:], 0.001) # mlp.train(inputs, labels, num_epochs, batch_size) # with pca pca = Pca() data = preprocessing.scale(inputs) cov = np.cov(data, rowvar=False) values, vectors = pca.eigen_values_vectors(cov) values, vectors = pca.sort_eigen(values, vectors) vectors = pca.eigen_strip_vectors(values, vectors, 0.98) print(vectors.shape) values = values[:len(vectors[0])] result = np.matrix.transpose(pca.pca_result(data, vectors)).reshape( len(data), 8) print(result.shape) points = result inputs = points mlp.create_network(inputs.shape[1:], 0.001) mlp.train(inputs, labels, num_epochs, batch_size)