예제 #1
0
파일: NCA.py 프로젝트: UesugiErii/lake
# 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])
예제 #2
0
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]