from sklearn.model_selection import KFold
def examplar_epoch_data(epochs_in, N, navg):
epo = epochs_in.copy()[range(N)]
fold_num = N // navg
if N % navg > 0: fold_num += 1
X1 = epo.get_data() # signals: n_epochs, n_channels, n_times
y1 = epo.events[:, 2]
n_trl, n_ch, n_times = epo.get_data().shape
kf = KFold(n_splits=fold_num, shuffle= True)
kf_idx = [x for x in kf.split(X1, y1)]
train_y = [y1[x[0]] for x in kf_idx] # get y labels of each training-fold
test_y = [x[1] for x in kf_idx] # get y labels of each testing-fold
exampler_data = np.zeros((fold_num, n_ch, n_times))
for i in range(fold_num):
temp = epo[test_y[i]].average().data
exampler_data[i,:,:] = temp
pass
y = np.ones(fold_num)
return exampler_data, y
features_ = epochs.get_data()
labels = epochs.events[:, 2]
print(features_.shape)
epoch_subset = epochs[['Famous', 'Scrambled']]
features_ = epoch_subset.get_data()
labels = epoch_subset.events[:, 2]
print(features_.shape)
c1 = np.where(labels<10) # Famous face
c2 = np.where(labels>10) # Scrambled face
#c2 = [i for i, y_ in zip(range(len(labels)),labels) if (12<y_ and y_ < 16)] #Scrambled face
#c3 = np.where(labels>16) # Unfamiliar
labels[c1] = 0
labels[c2] = 1
labels
from sklearn.metrics import roc_curve, auc
from sklearn.model_selection import StratifiedKFold
N = 10
trl_numbers = features_.shape[0] # serial numbers from 0 to N, N = len(trlinfo) - 1
X = [i for i in range(trl_numbers)]
y_ = labels
skf = StratifiedKFold(n_splits=N, shuffle=True)
kf_idx = [x for x in skf.split(X, y_)]
train_y = [y_[x[0]] for x in kf_idx] # get y labels of each training-fold
test_y = [y_[x[1]] for x in kf_idx] # get y labels of each testing-fold
train_x = [features_[x[0],:,:] for x in kf_idx] # get y labels of each training-fold
test_x = [features_[x[1],:,:] for x in kf_idx] # get y labels of each testing-fold
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up