Exemplo n.º 1
0
                    max_iter=500,
                    hidden_layer_sizes=(20, 10, 3),
                    random_state=1)
svc = SVC(kernel='linear')
csp = CSP(n_components=8, reg=None, log=True, norm_trace=False)

x, y = data.load_single(cut=True)
y = [np.where(yi == 1)[1] for yi in y]
xt, yt = data.load_single(cut=True, study=False)
yt = [np.where(yi == 1)[1] for yi in yt]

subs = len(x)
splits = 10
for name, classifier in [('LDA', lda), ('SVM', svc), ('MLP', mlp)]:
    acc = 0
    acc2 = 0
    for sub in range(18):
        n = x[sub].shape[0]

        for tr, val in util.kfold(n, splits, shuffle=True):
            clf = Pipeline([('CSP', csp), ('LDA', lda)])
            #clf.set_params(CSP__reg=0.5)
            clf.fit(x[sub][tr], y[sub][tr])
            a = clf.score(x[sub][val], y[sub][val])
            a2 = clf.score(xt[sub], yt[sub])
            acc += a
            acc2 += a2

    print("{} got {}/{}".format(name, acc / (splits * subs),
                                acc2 / (splits * subs)))
Exemplo n.º 2
0
m_save = model.get_config()

model.summary()

avgacc = 0
wlist = np.zeros((18, ), dtype=np.object)
for i in range(n_subs):
    n = x[i].shape[0]
    acc = 0

    model = Model.from_config(m_save)
    model.compile(loss='categorical_crossentropy',
                  optimizer='adam',
                  metrics=['accuracy'])

    tr, val = util.kfold(n, splits)[0]

    # fit with next kfold data
    h = model.fit(x[i][tr], y[i][tr], batch_size=64, epochs=50, verbose=0)

    _, acc = model.evaluate(x[i][val], y[i][val], verbose=0)

    print("subject {}, avg accuracy {}".format(i + 1 if i + 1 < 10 else i + 2,
                                               acc))
    layers = model.layers
    print(len(layers))
    print(layers[3])
    w0 = model.layers[3].get_weights()[0]
    print(w0.shape)
    wlist[i] = w0
Exemplo n.º 3
0
    model.add(Flatten())
    model.add(Dense(mset["dense_nodes"], activation='tanh'))
    model.add(Dense(3, activation='softmax'))

    model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

    model.summary()
    print(mset)

    w_save = model.get_weights()
    avgacc = 0
    for i in range(n_subs):
        n = x[i].shape[0]
        acc = 0
        for tr, val in util.kfold(n, splits):
            # reset to initial weights
            model.set_weights(w_save)

            # fit with next kfold data
            model.fit(x[i][tr], y[i][tr],
                      batch_size=64, epochs=90, verbose=0)

            loss, accuracy = model.evaluate(x[i][val], y[i][val],
                                            verbose=0)
            acc += accuracy

        acc /= splits
        avgacc += acc

        print("subject {}, avg accuracy {} over {} splits".format(i + 1 if i + 1 < 10 else i + 2, acc, splits))