def test_epochs_vectorizer(): """Test methods of EpochsVectorizer """ raw = io.Raw(raw_fname, preload=False) events = read_events(event_name) picks = pick_types(raw.info, meg=True, stim=False, ecg=False, eog=False, exclude="bads") picks = picks[1:13:3] with warnings.catch_warnings(record=True): epochs = Epochs(raw, events, event_id, tmin, tmax, picks=picks, baseline=(None, 0), preload=True) epochs_data = epochs.get_data() vector = EpochsVectorizer(epochs.info) y = epochs.events[:, -1] X = vector.fit_transform(epochs_data, y) # Check data dimensions assert_true(X.shape[0] == epochs_data.shape[0]) assert_true(X.shape[1] == epochs_data.shape[1] * epochs_data.shape[2]) assert_array_equal(vector.fit(epochs_data, y).transform(epochs_data), X) # Check if data is preserved n_times = epochs_data.shape[2] assert_array_equal(epochs_data[0, 0, 0:n_times], X[0, 0:n_times]) # Check inverse transform Xi = vector.inverse_transform(X, y) assert_true(Xi.shape[0] == epochs_data.shape[0]) assert_true(Xi.shape[1] == epochs_data.shape[1]) assert_array_equal(epochs_data[0, 0, 0:n_times], Xi[0, 0, 0:n_times]) # Test init exception assert_raises(ValueError, vector.fit, epochs, y) assert_raises(ValueError, vector.transform, epochs, y)
def test_epochs_vectorizer(): """Test methods of EpochsVectorizer """ raw = io.Raw(raw_fname, preload=False) events = read_events(event_name) picks = pick_types(raw.info, meg=True, stim=False, ecg=False, eog=False, exclude='bads') picks = picks[1:13:3] with warnings.catch_warnings(record=True): epochs = Epochs(raw, events, event_id, tmin, tmax, picks=picks, baseline=(None, 0), preload=True) epochs_data = epochs.get_data() vector = EpochsVectorizer(epochs.info) y = epochs.events[:, -1] X = vector.fit_transform(epochs_data, y) # Check data dimensions assert_true(X.shape[0] == epochs_data.shape[0]) assert_true(X.shape[1] == epochs_data.shape[1] * epochs_data.shape[2]) assert_array_equal(vector.fit(epochs_data, y).transform(epochs_data), X) # Check if data is preserved n_times = epochs_data.shape[2] assert_array_equal(epochs_data[0, 0, 0:n_times], X[0, 0:n_times]) # Check inverse transform Xi = vector.inverse_transform(X, y) assert_true(Xi.shape[0] == epochs_data.shape[0]) assert_true(Xi.shape[1] == epochs_data.shape[1]) assert_array_equal(epochs_data[0, 0, 0:n_times], Xi[0, 0, 0:n_times]) # Test init exception assert_raises(ValueError, vector.fit, epochs, y) assert_raises(ValueError, vector.transform, epochs, y)
def _epochs_to_rawarray(epochs): """Concatenate the epochs in a raw object.""" from mne.io import RawArray from mne.decoding import EpochsVectorizer # bring channels to the first dimension data = epochs.get_data().transpose((1, 0, 2)) raw_data = EpochsVectorizer().transform(data) raw_array = RawArray(raw_data, epochs.info.copy()) return raw_array
exclude='bads') epochs = Epochs(raw, events, event_id, tmin, tmax, proj=False, picks=picks, baseline=None, preload=True, add_eeg_ref=False, verbose=False) # Create classification pipeline clf = make_pipeline(Xdawn(n_components=3), EpochsVectorizer(), MinMaxScaler(), LogisticRegression(penalty='l1')) # Get the labels labels = epochs.events[:, -1] # Cross validator cv = StratifiedKFold(y=labels, n_folds=10, shuffle=True, random_state=42) # Do cross-validation preds = np.empty(len(labels)) for train, test in cv: clf.fit(epochs[train], labels[train]) preds[test] = clf.predict(epochs[test]) # Classification report
rt_client.send_data(rt_epochs, picks, tmin=0, tmax=90, buffer_size=1000) # Decoding in sensor space using a linear SVM n_times = len(rt_epochs.times) from sklearn import preprocessing # noqa from sklearn.svm import SVC # noqa from sklearn.pipeline import Pipeline # noqa from sklearn.cross_validation import cross_val_score, ShuffleSplit # noqa from mne.decoding import EpochsVectorizer, FilterEstimator # noqa scores_x, scores, std_scores = [], [], [] filt = FilterEstimator(rt_epochs.info, 1, 40) scaler = preprocessing.StandardScaler() vectorizer = EpochsVectorizer() clf = SVC(C=1, kernel='linear') concat_classifier = Pipeline([('filter', filt), ('vector', vectorizer), ('scaler', scaler), ('svm', clf)]) data_picks = mne.pick_types(rt_epochs.info, meg='grad', eeg=False, eog=True, stim=False, exclude=raw.info['bads']) for ev_num, ev in enumerate(rt_epochs.iter_evoked()): print("Just got epoch %d" % (ev_num + 1))
# Setup for reading the raw data raw = io.Raw(raw_fname, preload=True) raw.filter(1, 20, method='iir') events = read_events(event_fname) picks = pick_types(raw.info, meg=False, eeg=True, stim=False, eog=False, exclude='bads') epochs = Epochs(raw, events, event_id, tmin, tmax, proj=False, picks=picks, baseline=None, preload=True, add_eeg_ref=False, verbose=False) # Create classification pipeline clf = make_pipeline(Xdawn(n_components=3), EpochsVectorizer(), MinMaxScaler(), LogisticRegression(penalty='l1')) # Get the labels labels = epochs.events[:, -1] # Cross validator cv = StratifiedKFold(y=labels, n_folds=10, shuffle=True, random_state=42) # Do cross-validation preds = np.empty(len(labels)) for train, test in cv: clf.fit(epochs[train], labels[train]) preds[test] = clf.predict(epochs[test])