# nca = NCA() # nca.fit(X, y, max_iter=10, lr=100) # print nca.A import sys; sys.path.append('/home/shaofan/Projects') from FastML import KNN print "\nTest 3, LFW" from sklearn.datasets import fetch_lfw_people from sklearn.decomposition import PCA from sklearn.cross_validation import train_test_split from sklearn.preprocessing import normalize lfw_people = fetch_lfw_people(min_faces_per_person=70, resize=0.4) pca = PCA(n_components=100) X = pca.fit_transform(lfw_people.data) X = normalize(X) y = lfw_people.target X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42) knn = KNN(n_neighbors=4) pred = knn.fit(X_train, y_train).predict(X_test) print '{}/{}'.format( (pred == y_test).sum(), len(y_test) ) nca = NCA() X_train = nca.fit(X_train, y_train, max_iter=10, lr=5e-3).transform(X_train) X_test = nca.transform(X_test) knn = KNN(n_neighbors=4) pred = knn.fit(X_train, y_train).predict(X_test) print '{}/{}'.format( (pred == y_test).sum(), len(y_test) )
# assert all(data['y']==rawdata['y']) x, y = data["x"], data["y"] n = x.shape[0] x = x.reshape(n, -1) trainx, testx, trainy, testy = train_test_split(x, y, test_size=0.32, random_state=32) train_ind, test_ind = train_test_split(range(n), range(n), test_size=0.32, random_state=32)[:2] # assert ((trainx==x[train_ind]).all()) # assert ((testx==x[test_ind]).all()) duration_model = LMNN_duration.load("./BIT/models/[K=300][rs=32]duration.model") duration_trainx, duration_trainy = expand(trainx, trainy, K, G) duration_testx, duration_testy = expand(testx, testy, K, G) duration_trainx = duration_model.transform(duration_trainx) duration_testx = duration_model.transform(duration_testx) duration_knn = KNN(n_neighbor).fit(duration_trainx, duration_trainy) print duration_trainx.shape print duration_trainy.shape prediction = duration_knn.predict(duration_testx) print prediction.tolist() mlmnn = MLMNN.load("./BIT/models/[K=300][rs=32]mlmnn.model") mlmnn_knns = [] trunc = lambda x: x.reshape(x.shape[0], G, -1)[:, :g, :].reshape(x.shape[0], -1) for g in range(1, G + 1): mlmnn_knn = KNN(mlmnn.K).fit(mlmnn.transform(trunc(trainx), g), trainy) mlmnn_knns.append(mlmnn_knn) for g in range(1, G + 1): # print '='*10 # acc = 0.
# print mcml.A # print mcml.transform(X) import sys; sys.path.append('/home/shaofan/Projects') from FastML import KNN print "\nTest 3, LFW" from sklearn.datasets import fetch_lfw_people from sklearn.decomposition import PCA from sklearn.cross_validation import train_test_split from sklearn.preprocessing import normalize lfw_people = fetch_lfw_people(min_faces_per_person=70, resize=0.4) pca = PCA(n_components=10) X = pca.fit_transform(lfw_people.data) X = normalize(X) y = lfw_people.target X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42) knn = KNN(n_neighbors=2) pred = knn.fit(X_train, y_train).predict(X_test) print '{}/{}'.format( (pred == y_test).sum(), len(y_test) ) knn = KNN(n_neighbors=2) mcml = MCML() for _ in range(100): X_train = mcml.fit(X_train, y_train, max_iter=5, lr=1e-6).transform(X_train) X_test = mcml.transform(X_test) pred = knn.fit(X_train, y_train).predict(X_test) print '{}/{}'.format( (pred == y_test).sum(), len(y_test) )
# x = normalize(x) print sum(pca.explained_variance_ratio_) trainx, testx, trainy, testy = train_test_split(x, y, test_size=0.10) print trainx.shape print trainy.shape print len(set(trainy)) from sklearn.svm import SVC # from sklearn.multiclass import OneVsRestClassifier from sklearn.metrics import classification_report # svm = OneVsRestClassifier(SVC(C=0.11)) # 0.90 svm = SVC(C=100.11) # 0.90 svm.fit(trainx, trainy) print classification_report(testy, svm.predict(testx)) import sys; sys.path.append('/home/shaofan/Projects') from FastML import NCA, KNN, MCML knn = KNN(n_neighbors=8) knn.fit(trainx, trainy) print classification_report(testy, knn.predict(testx)) # nca = NCA() # for i in range(100): # trainx = nca.fit(trainx, trainy, max_iter=5, lr=5e-3).transform(trainx) # testx = nca.transform(testx) # # print classification_report(testy, knn.predict(testx)) # sys.stdout.flush()