# http://contrib.scikit-learn.org/metric-learn/generated/metric_learn.NCA.html from metric_learn import NCA from sklearn.datasets import make_classification from sklearn.neighbors import KNeighborsClassifier nca = NCA() X, y = make_classification() nca.fit(X, y) knn = KNeighborsClassifier(metric=nca.get_metric()) knn.fit(X, y) print(knn.predict(X[0:2, :])) print(y[0:2])
row = 0 for M in M_array: U = norm_eigenvec_ld[:, 0:M] W = np.matmul(U.T, A) W_testing = np.matmul(U.T, A_testing) index_training_array = np.array(index_training[0,:]) index_testing_array = np.array(index_testing[0,:]) nca = NCA() nca.fit(W.T, index_training_array) new_indices, rank_1, rank_10 = KNN(W_testing.T, index_testing_array, nca.get_metric()) mAP = mAP_calculation(new_indices, index_testing_array) scores_NCA_A[row,0] = rank_1 scores_NCA_A[row,1] = rank_10 scores_NCA_A[row,2] = mAP row = row+1 # NCA B_testing mean_training_B = B_training.mean(axis=1, keepdims=True) B = B_training - mean_training_B norm_eigenvec_ld_B = PCA_eigenvec(B) B_testing = B_test - mean_training M_array = [16,32,64,128,256]