Beispiel #1
0
import numpy as np
import joblib
from Utils import get_color
import matplotlib.pyplot as plt
from DimensionReduction import get_normalize

# 获取一位受试者的训练数据
train_data = np.array(joblib.load('data/event_data_by_S_single.pkl')[0])
train_event = np.array(joblib.load('data/event_labels_by_S_single.pkl')[0])

non_p300_wave_avg = np.zeros(200)
p300_wave_avg = np.zeros(200)

for i in range(60):
    wave = np.array(get_normalize(train_data[i])).T[0]
    if train_event[i] == 0:
        non_p300_wave_avg = non_p300_wave_avg + wave
    else:
        p300_wave_avg = p300_wave_avg + wave

non_p300_wave_avg = non_p300_wave_avg / 50
p300_wave_avg = p300_wave_avg / 10

print(train_data.shape)

print(train_data.shape, train_event.shape)

default_colors = ['r', 'b']
colors = get_color(range(8))

x = range(0, 800, 4)
Beispiel #2
0
    return labels_predict, ARI(labels, labels_predict)


sim_data = Similarity(dim_data, alpha=0.6, beta=0.3)
pred, ari = calc_and_output(sim_data)
rel = RelevanceMatrix(pred)
print(len(rel[rel > 1e-10]))
sim_next = sim_data
l0 = len(sim_next[sim_next > 1e-10])

while l0 != 0:
    print('l0:', l0)
    # print(sim_next, rel)
    sim_next = 0.01 * sim_next + 0.99 * rel
    pred, ari = calc_and_output(sim_next)
    rel = get_normalize(RelevanceMatrix(pred))
    l0 = len(sim_next[sim_next > 1e-5])
# calc_and_output(sim_dis)
# calc_and_output(sim_cor)
# calc_and_output(sim_mu)
#
# x = []
# y = []
# z = []
# step = 0.1
# n_steps = int(1 / step) + 1
# m_z = np.zeros((n_steps, n_steps))
#
# range_index = np.arange(0, 1.1, 0.1)
#
# range_index = [round(i, 2) for i in range_index]

test_event_data_by_S = []

for i in range(5):
    test_data = test_data_by_S[i]
    test_event = test_event_by_S[i]

    char_len = test_data.shape[0]
    print(char_len)

    event_data_s = []

    for j in range(9):
        char_name = char_names[j]
        event = test_event[j]
        for k in range(len(event)):
            # 剔除实验开始结束时的标记 event
            if k % 13 != 0:
                # 开始和结束时间在数据表中的索引
                event_start = event[k][1] - 1
                event_end = event_start + 200
                # 获取对应时间段的采样数据
                event_data = get_normalize(
                    np.array(cb_filter(test_data[j])[event_start:event_end]))
                event_data_s.append(event_data)

    test_event_data_by_S.append(event_data_s)

joblib.dump(test_event_data_by_S, 'data/test_event_data_by_S.pkl')
Beispiel #4
0
        event_data = np.zeros((200, 20))

        for k in range(1, 13):
            event_label = get_true_label(char_name, k)
            event_labels.append(event_label)
            event_data = np.zeros((200, 20))

            for idx in range(1, len(event)):  # 0 - 66
                # 剔除实验开始结束时的标记 event 求五个轮次中同一行列的均值
                if event[idx][0] == k:
                    # 开始和结束时间在数据表中的索引
                    event_start = event[idx][1] - 1
                    event_end = event_start + 200
                    # 获取对应时间段的采样数据
                    event_data = event_data + get_normalize(
                        np.array(
                            cb_filter(train_data[j])[event_start:event_end]))

            event_data = event_data / 5

            event_data_s.append(event_data)
            print(len(event_data_s))

    event_data_by_S.append(event_data_s)
    event_labels_by_S.append(event_labels)

joblib.dump(event_data_by_S, 'data/event_data_by_S.pkl')
joblib.dump(event_labels_by_S, 'data/event_labels_by_S.pkl')

print(len(event_data_by_S[0]))
print(event_labels_by_S[0])