예제 #1
0
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
예제 #2
0
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
예제 #3
0
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()
예제 #4
0
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
예제 #5
0
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
예제 #6
0
    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)
예제 #7
0
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')



예제 #8
0
    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)