def test_SSVEP_paradigm(self): paradigm = SSVEP(n_classes=None) dataset = FakeDataset(event_list=["13", "15", "17", "19"], paradigm="ssvep") X, labels, metadata = paradigm.get_data(dataset, subjects=[1]) # Verify that they have the same length self.assertEqual(len(X), len(labels), len(metadata)) # X must be a 3D array self.assertEqual(len(X.shape), 3) # labels must contain 4 values, defined in the dataset self.assertEqual(len(np.unique(labels)), 4) # metadata must have subjets, sessions, runs self.assertTrue("subject" in metadata.columns) self.assertTrue("session" in metadata.columns) self.assertTrue("run" in metadata.columns) # Only one subject in the metadata self.assertEqual(np.unique(metadata.subject), 1) # We should have two sessions in the metadata self.assertEqual(len(np.unique(metadata.session)), 2) # should return epochs epochs, _, _ = paradigm.get_data(dataset, subjects=[1], return_epochs=True) self.assertIsInstance(epochs, BaseEpochs)
def test_SSVEP_singlepass(self): # Accept only single pass filter paradigm = SSVEP(fmin=2, fmax=25) dataset = FakeDataset(paradigm="ssvep") X, labels, metadata = paradigm.get_data(dataset, subjects=[1]) # Verify that they have the same length self.assertEqual(len(X), len(labels), len(metadata)) # X must be a 3D array self.assertEqual(len(X.shape), 3) # labels must contain all 3 classes of dataset, # as n_classes is "None" by default (taking all classes) self.assertEqual(len(np.unique(labels)), 3) # should return epochs epochs, _, _ = paradigm.get_data(dataset, subjects=[1], return_epochs=True) self.assertIsInstance(epochs, BaseEpochs)
def test_SSVEP_singlepass(self): # Accept only single pass filter paradigm = SSVEP(fmin=2, fmax=25) dataset = FakeDataset(paradigm='ssvep') X, labels, metadata = paradigm.get_data(dataset, subjects=[1]) # Verify that they have the same length self.assertEqual(len(X), len(labels), len(metadata)) # X must be a 3D array self.assertEqual(len(X.shape), 3) # labels must contain 2 values, as n_classes = 2 by default self.assertEqual(len(np.unique(labels)), 2)
def test_SSVEP_paradigm(self): paradigm = SSVEP(n_classes=None) dataset = FakeDataset(event_list=['13', '15', '17', '19'], paradigm='ssvep') X, labels, metadata = paradigm.get_data(dataset, subjects=[1]) # Verify that they have the same length self.assertEqual(len(X), len(labels), len(metadata)) # X must be a 3D array self.assertEqual(len(X.shape), 3) # labels must contain 4 values, defined in the dataset self.assertEqual(len(np.unique(labels)), 4) # metadata must have subjets, sessions, runs self.assertTrue('subject' in metadata.columns) self.assertTrue('session' in metadata.columns) self.assertTrue('run' in metadata.columns) # Only one subject in the metadata self.assertEqual(np.unique(metadata.subject), 1) # We should have two sessions in the metadata self.assertEqual(len(np.unique(metadata.session)), 2)
############################################################################## # Get data (optional) # ------------------- # # To get access to the EEG signals downloaded from the dataset, you could # use `dataset._get_single_subject_data(subject_id) to obtain the EEG under # an MNE format, stored in a dictionary of sessions and runs. # Otherwise, `paradigm.get_data(dataset=dataset, subjects=[subject_id])` # allows to obtain the EEG data in scikit format, the labels and the meta # information. X_all, labels_all, meta_all = [], [], [] for d in datasets: # sessions = d._get_single_subject_data(2) X, labels, meta = paradigm.get_data(dataset=d, subjects=[2]) X_all.append(X) labels_all.append(labels) meta_all.append(meta) ############################################################################## # Evaluation # ---------- # # The evaluation will return a dataframe containing a single AUC score for # each subject / session of the dataset, and for each pipeline. overwrite = True # set to True if we want to overwrite cached results evaluation = CrossSessionEvaluation(paradigm=paradigm, datasets=datasets,