def testmmcml(trainx, testx, trainy, testy): mlmnn = MLMNN.load(MODEL_NAME) # randomstate=32 traind = mlmnn.get_DMatrix(trainx) from MMCML import MMCML mmcml = MMCML() As = [mmcml.fit(traind[:i], trainy, max_iter=50, lr=5e-5).A.flatten() for i in range(1, 11) ] return As
def testlmnn(trainx, testx, trainy, testy): mlmnn = MLMNN.load(MODEL_NAME) # randomstate=32 traind = mlmnn.get_DMatrix(trainx) from LMNN_alpha import LMNN_alpha lmnn = LMNN_alpha() As = [lmnn.fit(traind[:i], trainy, max_iter=50, lr=5e-5).A.flatten() for i in range(1, 11) ] return As
def svmtest(trainx, testx, trainy, testy): mlmnn = MLMNN.load(MODEL_NAME) traind = mlmnn.get_DMatrix(trainx, trainx).sum(0) testd = mlmnn.get_DMatrix(testx, trainx).sum(0) from sklearn import svm clf = svm.SVC(kernel='precomputed', C=1.0) clf.fit(traind, trainy) print clf.predict(traind) print trainy print (clf.predict(traind)==trainy).sum() print clf.predict(testd) print testy print (clf.predict(testd)==testy).sum()
def loadtest(trainx, testx, trainy, testy, As=None): mlmnn = MLMNN.load(MODEL_NAME) acc = [] for Time2 in np.linspace(0.1, 1, 10): Time2 = int(Time2*10) f = lambda x: x.reshape(x.shape[0], 10, -1)[:, :Time2, :].reshape(x.shape[0], -1) ttrainx = f(trainx) ttestx = f(testx) if As: acc.append(mlmnn.fittest(ttrainx, ttestx, trainy, testy, Time2, alpha=As[Time2-1][:Time2])) else: acc.append(mlmnn.fittest(ttrainx, ttestx, trainy, testy, Time2)) print acc acc = np.array(acc) print acc[:,0] print acc[:,1] return acc
def loadtest(trainx, testx, trainy, testy, model=None): if model: mlmnn = model else: print "load temp.MLMNN" mlmnn = MLMNN.load("temp.MLMNN") acc = [] for Time2 in np.linspace(0.1, 1, 10): f = lambda x: x.reshape(x.shape[0], 10, -1)[:, : int(Time2 * 10), :].reshape(x.shape[0], -1) ttrainx = f(trainx) ttestx = f(testx) acc.append(mlmnn.fittest(ttrainx, ttestx, trainy, testy, int(Time2 * 10))) print acc acc = np.array(acc) print acc[:, 0] print acc[:, 1] return acc
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. # for count, ind in enumerate(test_ind): # ttest = mlmnn.transform(trunc(x[ind:ind+1]), g) # if mlmnn_knns[g-1].predict(ttest)[0]==y[ind]: # acc += 1 # print acc/(count+1)
import matplotlib matplotlib.use('Agg') from tSNE.draw import visualize import cPickle if __name__ == '__main__': K = 100 Time = 1.0 M = 10 trainx, testx, trainy, testy = cPickle.load(open('./features/[K={}][T={}]BoWInGroup.pkl'.format(K, Time),'r')) print trainx.shape print trainy.shape visualize(trainx, trainy, './tSNE/pre-Train.png') visualize(testx, testy, './tSNE/pre-Test.png') from MLMNN import MLMNN mlmnn = MLMNN.load('./temp.MLMNN') trainx = mlmnn.transform(trainx) testx = mlmnn.transform(testx) print trainx.shape visualize(trainx, trainy, './tSNE/post-Train.png') visualize(testx, testy, './tSNE/post-Test.png')
x = x.reshape(x.shape[0], -1) print x.shape # trainx, testx, trainy, testy = train_test_split(x, y, test_size=1./60.) # trainx, testx, trainy, testy = cPickle.load(open('{}/[K={}][T={}]BoWInGroup.pkl'.format(featureDir, K, Time),'r')) # print trainx.shape # print trainy.shape train_acc, test_acc = [], [] loo = LeaveOneOut(x.shape[0]) for train_index, test_index in loo: trainx, testx = x[train_index], x[test_index] trainy, testy = y[train_index], y[test_index] mlmnn = MLMNN(granularity=int(Time*G), K=len(set(y)), mu=0.5, lmdb=0.25, gamma=5.00, dim=110, alpha_based=0.0, normalizeFunction=normalize) mlmnn.fit(trainx, trainy, testx, testy, tripleCount=10000, learning_rate=0.5, alpha_learning_rate=1e-5, max_iter=2, reset_iter=5, epochs=15, verbose=True) acc = loadtest(trainx, testx, trainy, testy, mlmnn) sys.stdout.flush() train_acc.append(acc[:, 0]) test_acc.append(acc[:, 1]) train_acc = np.array(train_acc) test_acc = np.array(test_acc)