Note
Go to the end to download the full example code.
Decoding source space data#
Decoding to MEG data in source space on the left cortical surface. Here univariate feature selection is employed for speed purposes to confine the classification to a small number of potentially relevant features. The classifier then is trained to selected features of epochs in source space.
# Author: Denis A. Engemann <denis.engemann@gmail.com> # Alexandre Gramfort <alexandre.gramfort@inria.fr> # Jean-Rémi King <jeanremi.king@gmail.com> # Eric Larson <larson.eric.d@gmail.com> # # License: BSD-3-Clause # Copyright the MNE-Python contributors.
importmatplotlib.pyplotasplt importnumpyasnp fromsklearn.feature_selectionimport SelectKBest , f_classif fromsklearn.linear_modelimport LogisticRegression fromsklearn.pipelineimport make_pipeline fromsklearn.preprocessingimport StandardScaler importmne frommne.decodingimport LinearModel , SlidingEstimator , cross_val_multiscore , get_coef frommne.minimum_normimport apply_inverse_epochs , read_inverse_operator print(__doc__) data_path = mne.datasets.sample.data_path () meg_path = data_path / "MEG" / "sample" fname_fwd = meg_path / "sample_audvis-meg-oct-6-fwd.fif" fname_evoked = meg_path / "sample_audvis-ave.fif" subjects_dir = data_path / "subjects"
Set parameters
raw_fname = meg_path / "sample_audvis_filt-0-40_raw.fif" event_fname = meg_path / "sample_audvis_filt-0-40_raw-eve.fif" fname_cov = meg_path / "sample_audvis-cov.fif" fname_inv = meg_path / "sample_audvis-meg-oct-6-meg-inv.fif" tmin , tmax = -0.2, 0.8 event_id = dict(aud_r=2, vis_r=4) # load contra-lateral conditions # Setup for reading the raw data raw = mne.io.read_raw_fif (raw_fname , preload=True) raw.filter (None, 10.0, fir_design="firwin") events = mne.read_events (event_fname ) # Set up pick list: MEG - bad channels (modify to your needs) raw.info ["bads"] += ["MEG 2443"] # mark bads picks = mne.pick_types ( raw.info , meg=True, eeg=False, stim=True, eog=True, exclude="bads" ) # Read epochs epochs = mne.Epochs ( raw , events , event_id , tmin , tmax , proj=True, picks =picks , baseline=(None, 0), preload=True, reject=dict(grad=4000e-13, eog=150e-6), decim=5, ) # decimate to save memory and increase speed
Opening raw data file /home/circleci/mne_data/MNE-sample-data/MEG/sample/sample_audvis_filt-0-40_raw.fif... Read a total of 4 projection items: PCA-v1 (1 x 102) idle PCA-v2 (1 x 102) idle PCA-v3 (1 x 102) idle Average EEG reference (1 x 60) idle Range : 6450 ... 48149 = 42.956 ... 320.665 secs Ready. Reading 0 ... 41699 = 0.000 ... 277.709 secs... Filtering raw data in 1 contiguous segment Setting up low-pass filter at 10 Hz FIR filter parameters --------------------- Designing a one-pass, zero-phase, non-causal lowpass filter: - Windowed time-domain design (firwin) method - Hamming window with 0.0194 passband ripple and 53 dB stopband attenuation - Upper passband edge: 10.00 Hz - Upper transition bandwidth: 2.50 Hz (-6 dB cutoff frequency: 11.25 Hz) - Filter length: 199 samples (1.325 s) Not setting metadata 143 matching events found Setting baseline interval to [-0.19979521315838786, 0.0] s Applying baseline correction (mode: mean) Created an SSP operator (subspace dimension = 3) 3 projection items activated Using data from preloaded Raw for 143 events and 151 original time points (prior to decimation) ... Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] Rejecting epoch based on EOG : ['EOG 061'] 28 bad epochs dropped
Compute inverse solution
snr = 3.0 noise_cov = mne.read_cov (fname_cov ) inverse_operator = read_inverse_operator (fname_inv ) stcs = apply_inverse_epochs ( epochs , inverse_operator , lambda2=1.0 / snr **2, verbose=False, method="dSPM", pick_ori="normal", )
366 x 366 full covariance (kind = 1) found. Read a total of 4 projection items: PCA-v1 (1 x 102) active PCA-v2 (1 x 102) active PCA-v3 (1 x 102) active Average EEG reference (1 x 60) active Reading inverse operator decomposition from /home/circleci/mne_data/MNE-sample-data/MEG/sample/sample_audvis-meg-oct-6-meg-inv.fif... Reading inverse operator info... [done] Reading inverse operator decomposition... [done] 305 x 305 full covariance (kind = 1) found. Read a total of 4 projection items: PCA-v1 (1 x 102) active PCA-v2 (1 x 102) active PCA-v3 (1 x 102) active Average EEG reference (1 x 60) active Noise covariance matrix read. 22494 x 22494 diagonal covariance (kind = 2) found. Source covariance matrix read. 22494 x 22494 diagonal covariance (kind = 6) found. Orientation priors read. 22494 x 22494 diagonal covariance (kind = 5) found. Depth priors read. Did not find the desired covariance matrix (kind = 3) Reading a source space... Computing patch statistics... Patch information added... Distance information added... [done] Reading a source space... Computing patch statistics... Patch information added... Distance information added... [done] 2 source spaces read Read a total of 4 projection items: PCA-v1 (1 x 102) active PCA-v2 (1 x 102) active PCA-v3 (1 x 102) active Average EEG reference (1 x 60) active Source spaces transformed to the inverse solution coordinate frame
Decoding in sensor space using a logistic regression
# Retrieve source space data into an array X = np.array ([stc.lh_data for stc in stcs ]) # only keep left hemisphere y = epochs.events [:, 2] # prepare a series of classifier applied at each time sample clf = make_pipeline ( StandardScaler (), # z-score normalization SelectKBest (f_classif , k=500), # select features for speed LinearModel (LogisticRegression (C=1, solver="liblinear")), ) time_decod = SlidingEstimator (clf , scoring="roc_auc") # Run cross-validated decoding analyses: scores = cross_val_multiscore (time_decod , X , y , cv=5, n_jobs=None) # Plot average decoding scores of 5 splits fig , ax = plt.subplots (1) ax.plot (epochs.times , scores .mean(0), label="score") ax.axhline (0.5, color="k", linestyle="--", label="chance") ax.axvline (0, color="k") plt.legend ()
0%| | Fitting SlidingEstimator : 0/31 [00:00<?, ?it/s] 3%|▎ | Fitting SlidingEstimator : 1/31 [00:00<00:02, 14.28it/s] 6%|▋ | Fitting SlidingEstimator : 2/31 [00:00<00:01, 19.45it/s] 10%|▉ | Fitting SlidingEstimator : 3/31 [00:00<00:01, 22.13it/s] 13%|█▎ | Fitting SlidingEstimator : 4/31 [00:00<00:01, 19.56it/s] 16%|█▌ | Fitting SlidingEstimator : 5/31 [00:00<00:01, 21.12it/s] 19%|█▉ | Fitting SlidingEstimator : 6/31 [00:00<00:01, 22.34it/s] 23%|██▎ | Fitting SlidingEstimator : 7/31 [00:00<00:01, 23.24it/s] 26%|██▌ | Fitting SlidingEstimator : 8/31 [00:00<00:01, 21.45it/s] 29%|██▉ | Fitting SlidingEstimator : 9/31 [00:00<00:00, 22.28it/s] 32%|███▏ | Fitting SlidingEstimator : 10/31 [00:00<00:00, 22.97it/s] 35%|███▌ | Fitting SlidingEstimator : 11/31 [00:00<00:00, 23.59it/s] 39%|███▊ | Fitting SlidingEstimator : 12/31 [00:00<00:00, 24.09it/s] 42%|████▏ | Fitting SlidingEstimator : 13/31 [00:00<00:00, 22.65it/s] 45%|████▌ | Fitting SlidingEstimator : 14/31 [00:00<00:00, 23.19it/s] 48%|████▊ | Fitting SlidingEstimator : 15/31 [00:00<00:00, 23.65it/s] 52%|█████▏ | Fitting SlidingEstimator : 16/31 [00:00<00:00, 24.08it/s] 55%|█████▍ | Fitting SlidingEstimator : 17/31 [00:00<00:00, 22.86it/s] 58%|█████▊ | Fitting SlidingEstimator : 18/31 [00:00<00:00, 23.29it/s] 61%|██████▏ | Fitting SlidingEstimator : 19/31 [00:00<00:00, 23.70it/s] 65%|██████▍ | Fitting SlidingEstimator : 20/31 [00:00<00:00, 24.05it/s] 68%|██████▊ | Fitting SlidingEstimator : 21/31 [00:00<00:00, 24.40it/s] 71%|███████ | Fitting SlidingEstimator : 22/31 [00:00<00:00, 23.22it/s] 74%|███████▍ | Fitting SlidingEstimator : 23/31 [00:00<00:00, 23.59it/s] 77%|███████▋ | Fitting SlidingEstimator : 24/31 [00:01<00:00, 23.93it/s] 81%|████████ | Fitting SlidingEstimator : 25/31 [00:01<00:00, 22.97it/s] 84%|████████▍ | Fitting SlidingEstimator : 26/31 [00:01<00:00, 23.33it/s] 87%|████████▋ | Fitting SlidingEstimator : 27/31 [00:01<00:00, 23.67it/s] 90%|█████████ | Fitting SlidingEstimator : 28/31 [00:01<00:00, 22.79it/s] 94%|█████████▎| Fitting SlidingEstimator : 29/31 [00:01<00:00, 23.13it/s] 97%|█████████▋| Fitting SlidingEstimator : 30/31 [00:01<00:00, 23.44it/s] 100%|██████████| Fitting SlidingEstimator : 31/31 [00:01<00:00, 23.59it/s] 100%|██████████| Fitting SlidingEstimator : 31/31 [00:01<00:00, 23.37it/s] 0%| | Fitting SlidingEstimator : 0/31 [00:00<?, ?it/s] 3%|▎ | Fitting SlidingEstimator : 1/31 [00:00<00:02, 14.27it/s] 6%|▋ | Fitting SlidingEstimator : 2/31 [00:00<00:01, 19.44it/s] 10%|▉ | Fitting SlidingEstimator : 3/31 [00:00<00:01, 22.12it/s] 13%|█▎ | Fitting SlidingEstimator : 4/31 [00:00<00:01, 19.56it/s] 16%|█▌ | Fitting SlidingEstimator : 5/31 [00:00<00:01, 21.15it/s] 19%|█▉ | Fitting SlidingEstimator : 6/31 [00:00<00:01, 22.37it/s] 23%|██▎ | Fitting SlidingEstimator : 7/31 [00:00<00:01, 23.32it/s] 26%|██▌ | Fitting SlidingEstimator : 8/31 [00:00<00:00, 24.10it/s] 29%|██▉ | Fitting SlidingEstimator : 9/31 [00:00<00:00, 24.73it/s] 32%|███▏ | Fitting SlidingEstimator : 10/31 [00:00<00:00, 25.25it/s] 35%|███▌ | Fitting SlidingEstimator : 11/31 [00:00<00:00, 25.63it/s] 39%|███▊ | Fitting SlidingEstimator : 12/31 [00:00<00:00, 26.02it/s] 42%|████▏ | Fitting SlidingEstimator : 13/31 [00:00<00:00, 26.36it/s] 45%|████▌ | Fitting SlidingEstimator : 14/31 [00:00<00:00, 26.66it/s] 48%|████▊ | Fitting SlidingEstimator : 15/31 [00:00<00:00, 26.89it/s] 52%|█████▏ | Fitting SlidingEstimator : 16/31 [00:00<00:00, 27.12it/s] 55%|█████▍ | Fitting SlidingEstimator : 17/31 [00:00<00:00, 27.28it/s] 58%|█████▊ | Fitting SlidingEstimator : 18/31 [00:00<00:00, 27.46it/s] 61%|██████▏ | Fitting SlidingEstimator : 19/31 [00:00<00:00, 27.63it/s] 65%|██████▍ | Fitting SlidingEstimator : 20/31 [00:00<00:00, 25.91it/s] 68%|██████▊ | Fitting SlidingEstimator : 21/31 [00:00<00:00, 26.11it/s] 71%|███████ | Fitting SlidingEstimator : 22/31 [00:00<00:00, 26.35it/s] 74%|███████▍ | Fitting SlidingEstimator : 23/31 [00:00<00:00, 26.56it/s] 77%|███████▋ | Fitting SlidingEstimator : 24/31 [00:00<00:00, 26.77it/s] 81%|████████ | Fitting SlidingEstimator : 25/31 [00:00<00:00, 26.95it/s] 84%|████████▍ | Fitting SlidingEstimator : 26/31 [00:00<00:00, 27.09it/s] 87%|████████▋ | Fitting SlidingEstimator : 27/31 [00:01<00:00, 25.68it/s] 90%|█████████ | Fitting SlidingEstimator : 28/31 [00:01<00:00, 25.91it/s] 94%|█████████▎| Fitting SlidingEstimator : 29/31 [00:01<00:00, 26.11it/s] 97%|█████████▋| Fitting SlidingEstimator : 30/31 [00:01<00:00, 26.31it/s] 100%|██████████| Fitting SlidingEstimator : 31/31 [00:01<00:00, 26.63it/s] 100%|██████████| Fitting SlidingEstimator : 31/31 [00:01<00:00, 26.23it/s] 0%| | Fitting SlidingEstimator : 0/31 [00:00<?, ?it/s] 3%|▎ | Fitting SlidingEstimator : 1/31 [00:00<00:02, 14.37it/s] 6%|▋ | Fitting SlidingEstimator : 2/31 [00:00<00:01, 19.55it/s] 10%|▉ | Fitting SlidingEstimator : 3/31 [00:00<00:01, 22.22it/s] 13%|█▎ | Fitting SlidingEstimator : 4/31 [00:00<00:01, 23.83it/s] 16%|█▌ | Fitting SlidingEstimator : 5/31 [00:00<00:01, 21.04it/s] 19%|█▉ | Fitting SlidingEstimator : 6/31 [00:00<00:01, 22.27it/s] 23%|██▎ | Fitting SlidingEstimator : 7/31 [00:00<00:01, 23.24it/s] 26%|██▌ | Fitting SlidingEstimator : 8/31 [00:00<00:00, 24.01it/s] 29%|██▉ | Fitting SlidingEstimator : 9/31 [00:00<00:00, 24.62it/s] 32%|███▏ | Fitting SlidingEstimator : 10/31 [00:00<00:00, 25.16it/s] 35%|███▌ | Fitting SlidingEstimator : 11/31 [00:00<00:00, 25.56it/s] 39%|███▊ | Fitting SlidingEstimator : 12/31 [00:00<00:00, 25.96it/s] 42%|████▏ | Fitting SlidingEstimator : 13/31 [00:00<00:00, 26.30it/s] 45%|████▌ | Fitting SlidingEstimator : 14/31 [00:00<00:00, 26.59it/s] 48%|████▊ | Fitting SlidingEstimator : 15/31 [00:00<00:00, 26.83it/s] 52%|█████▏ | Fitting SlidingEstimator : 16/31 [00:00<00:00, 27.07it/s] 55%|█████▍ | Fitting SlidingEstimator : 17/31 [00:00<00:00, 27.23it/s] 58%|█████▊ | Fitting SlidingEstimator : 18/31 [00:00<00:00, 27.42it/s] 61%|██████▏ | Fitting SlidingEstimator : 19/31 [00:00<00:00, 27.59it/s] 65%|██████▍ | Fitting SlidingEstimator : 20/31 [00:00<00:00, 27.75it/s] 68%|██████▊ | Fitting SlidingEstimator : 21/31 [00:00<00:00, 27.86it/s] 71%|███████ | Fitting SlidingEstimator : 22/31 [00:00<00:00, 26.17it/s] 74%|███████▍ | Fitting SlidingEstimator : 23/31 [00:00<00:00, 26.40it/s] 77%|███████▋ | Fitting SlidingEstimator : 24/31 [00:00<00:00, 26.61it/s] 81%|████████ | Fitting SlidingEstimator : 25/31 [00:00<00:00, 26.77it/s] 84%|████████▍ | Fitting SlidingEstimator : 26/31 [00:00<00:00, 26.95it/s] 87%|████████▋ | Fitting SlidingEstimator : 27/31 [00:01<00:00, 25.57it/s] 90%|█████████ | Fitting SlidingEstimator : 28/31 [00:01<00:00, 25.78it/s] 94%|█████████▎| Fitting SlidingEstimator : 29/31 [00:01<00:00, 26.00it/s] 97%|█████████▋| Fitting SlidingEstimator : 30/31 [00:01<00:00, 26.21it/s] 100%|██████████| Fitting SlidingEstimator : 31/31 [00:01<00:00, 26.63it/s] 0%| | Fitting SlidingEstimator : 0/31 [00:00<?, ?it/s] 3%|▎ | Fitting SlidingEstimator : 1/31 [00:00<00:02, 14.28it/s] 6%|▋ | Fitting SlidingEstimator : 2/31 [00:00<00:01, 19.46it/s] 10%|▉ | Fitting SlidingEstimator : 3/31 [00:00<00:01, 22.11it/s] 13%|█▎ | Fitting SlidingEstimator : 4/31 [00:00<00:01, 23.74it/s] 16%|█▌ | Fitting SlidingEstimator : 5/31 [00:00<00:01, 21.00it/s] 19%|█▉ | Fitting SlidingEstimator : 6/31 [00:00<00:01, 22.23it/s] 23%|██▎ | Fitting SlidingEstimator : 7/31 [00:00<00:01, 23.19it/s] 26%|██▌ | Fitting SlidingEstimator : 8/31 [00:00<00:00, 23.97it/s] 29%|██▉ | Fitting SlidingEstimator : 9/31 [00:00<00:00, 24.61it/s] 32%|███▏ | Fitting SlidingEstimator : 10/31 [00:00<00:00, 25.15it/s] 35%|███▌ | Fitting SlidingEstimator : 11/31 [00:00<00:00, 25.54it/s] 39%|███▊ | Fitting SlidingEstimator : 12/31 [00:00<00:00, 25.94it/s] 42%|████▏ | Fitting SlidingEstimator : 13/31 [00:00<00:00, 26.28it/s] 45%|████▌ | Fitting SlidingEstimator : 14/31 [00:00<00:00, 26.58it/s] 48%|████▊ | Fitting SlidingEstimator : 15/31 [00:00<00:00, 26.82it/s] 52%|█████▏ | Fitting SlidingEstimator : 16/31 [00:00<00:00, 27.06it/s] 55%|█████▍ | Fitting SlidingEstimator : 17/31 [00:00<00:00, 25.25it/s] 58%|█████▊ | Fitting SlidingEstimator : 18/31 [00:00<00:00, 25.57it/s] 61%|██████▏ | Fitting SlidingEstimator : 19/31 [00:00<00:00, 25.86it/s] 65%|██████▍ | Fitting SlidingEstimator : 20/31 [00:00<00:00, 26.09it/s] 68%|██████▊ | Fitting SlidingEstimator : 21/31 [00:00<00:00, 26.33it/s] 71%|███████ | Fitting SlidingEstimator : 22/31 [00:00<00:00, 26.56it/s] 74%|███████▍ | Fitting SlidingEstimator : 23/31 [00:00<00:00, 26.76it/s] 77%|███████▋ | Fitting SlidingEstimator : 24/31 [00:00<00:00, 26.93it/s] 81%|████████ | Fitting SlidingEstimator : 25/31 [00:00<00:00, 27.11it/s] 84%|████████▍ | Fitting SlidingEstimator : 26/31 [00:00<00:00, 27.23it/s] 87%|████████▋ | Fitting SlidingEstimator : 27/31 [00:01<00:00, 27.39it/s] 90%|█████████ | Fitting SlidingEstimator : 28/31 [00:01<00:00, 27.53it/s] 94%|█████████▎| Fitting SlidingEstimator : 29/31 [00:01<00:00, 27.66it/s] 97%|█████████▋| Fitting SlidingEstimator : 30/31 [00:01<00:00, 26.21it/s] 100%|██████████| Fitting SlidingEstimator : 31/31 [00:01<00:00, 26.67it/s] 0%| | Fitting SlidingEstimator : 0/31 [00:00<?, ?it/s] 3%|▎ | Fitting SlidingEstimator : 1/31 [00:00<00:01, 27.15it/s] 6%|▋ | Fitting SlidingEstimator : 2/31 [00:00<00:01, 19.10it/s] 10%|▉ | Fitting SlidingEstimator : 3/31 [00:00<00:01, 21.84it/s] 13%|█▎ | Fitting SlidingEstimator : 4/31 [00:00<00:01, 23.52it/s] 16%|█▌ | Fitting SlidingEstimator : 5/31 [00:00<00:01, 24.66it/s] 19%|█▉ | Fitting SlidingEstimator : 6/31 [00:00<00:00, 25.48it/s] 23%|██▎ | Fitting SlidingEstimator : 7/31 [00:00<00:00, 26.10it/s] 26%|██▌ | Fitting SlidingEstimator : 8/31 [00:00<00:00, 26.58it/s] 29%|██▉ | Fitting SlidingEstimator : 9/31 [00:00<00:00, 26.97it/s] 32%|███▏ | Fitting SlidingEstimator : 10/31 [00:00<00:00, 27.28it/s] 35%|███▌ | Fitting SlidingEstimator : 11/31 [00:00<00:00, 27.54it/s] 39%|███▊ | Fitting SlidingEstimator : 12/31 [00:00<00:00, 27.68it/s] 42%|████▏ | Fitting SlidingEstimator : 13/31 [00:00<00:00, 27.88it/s] 45%|████▌ | Fitting SlidingEstimator : 14/31 [00:00<00:00, 28.05it/s] 48%|████▊ | Fitting SlidingEstimator : 15/31 [00:00<00:00, 28.20it/s] 52%|█████▏ | Fitting SlidingEstimator : 16/31 [00:00<00:00, 26.09it/s] 55%|█████▍ | Fitting SlidingEstimator : 17/31 [00:00<00:00, 26.36it/s] 58%|█████▊ | Fitting SlidingEstimator : 18/31 [00:00<00:00, 26.60it/s] 61%|██████▏ | Fitting SlidingEstimator : 19/31 [00:00<00:00, 26.83it/s] 65%|██████▍ | Fitting SlidingEstimator : 20/31 [00:00<00:00, 26.99it/s] 68%|██████▊ | Fitting SlidingEstimator : 21/31 [00:00<00:00, 25.43it/s] 71%|███████ | Fitting SlidingEstimator : 22/31 [00:00<00:00, 25.70it/s] 74%|███████▍ | Fitting SlidingEstimator : 23/31 [00:00<00:00, 25.93it/s] 77%|███████▋ | Fitting SlidingEstimator : 24/31 [00:00<00:00, 26.16it/s] 81%|████████ | Fitting SlidingEstimator : 25/31 [00:00<00:00, 26.38it/s] 84%|████████▍ | Fitting SlidingEstimator : 26/31 [00:00<00:00, 26.58it/s] 87%|████████▋ | Fitting SlidingEstimator : 27/31 [00:01<00:00, 26.75it/s] 90%|█████████ | Fitting SlidingEstimator : 28/31 [00:01<00:00, 25.43it/s] 94%|█████████▎| Fitting SlidingEstimator : 29/31 [00:01<00:00, 25.66it/s] 97%|█████████▋| Fitting SlidingEstimator : 30/31 [00:01<00:00, 25.88it/s] 100%|██████████| Fitting SlidingEstimator : 31/31 [00:01<00:00, 26.56it/s] 100%|██████████| Fitting SlidingEstimator : 31/31 [00:01<00:00, 26.42it/s]
To investigate weights, we need to retrieve the patterns of a fitted model
# The fitting needs not be cross validated because the weights are based on # the training sets time_decod.fit (X , y ) # Retrieve patterns after inversing the z-score normalization step: patterns = get_coef (time_decod , "patterns_", inverse_transform=True) stc = stcs [0] # for convenience, lookup parameters from first stc vertices = [stc.lh_vertno , np.array ([], int)] # empty array for right hemi stc_feat = mne.SourceEstimate ( np.abs (patterns ), vertices =vertices , tmin =stc.tmin , tstep=stc.tstep , subject="sample", ) brain = stc_feat.plot ( views=["lat"], transparent=True, initial_time=0.1, time_unit="s", subjects_dir =subjects_dir , )
0%| | Fitting SlidingEstimator : 0/31 [00:00<?, ?it/s] 3%|▎ | Fitting SlidingEstimator : 1/31 [00:00<00:02, 14.26it/s] 6%|▋ | Fitting SlidingEstimator : 2/31 [00:00<00:01, 14.58it/s] 10%|▉ | Fitting SlidingEstimator : 3/31 [00:00<00:01, 17.75it/s] 13%|█▎ | Fitting SlidingEstimator : 4/31 [00:00<00:01, 19.92it/s] 16%|█▌ | Fitting SlidingEstimator : 5/31 [00:00<00:01, 21.48it/s] 19%|█▉ | Fitting SlidingEstimator : 6/31 [00:00<00:01, 19.83it/s] 23%|██▎ | Fitting SlidingEstimator : 7/31 [00:00<00:01, 20.99it/s] 26%|██▌ | Fitting SlidingEstimator : 8/31 [00:00<00:01, 19.79it/s] 29%|██▉ | Fitting SlidingEstimator : 9/31 [00:00<00:01, 20.72it/s] 32%|███▏ | Fitting SlidingEstimator : 10/31 [00:00<00:01, 19.72it/s] 35%|███▌ | Fitting SlidingEstimator : 11/31 [00:00<00:00, 20.52it/s] 39%|███▊ | Fitting SlidingEstimator : 12/31 [00:00<00:00, 21.23it/s] 42%|████▏ | Fitting SlidingEstimator : 13/31 [00:00<00:00, 20.34it/s] 45%|████▌ | Fitting SlidingEstimator : 14/31 [00:00<00:00, 20.97it/s] 48%|████▊ | Fitting SlidingEstimator : 15/31 [00:00<00:00, 21.56it/s] 52%|█████▏ | Fitting SlidingEstimator : 16/31 [00:00<00:00, 20.70it/s] 55%|█████▍ | Fitting SlidingEstimator : 17/31 [00:00<00:00, 21.26it/s] 58%|█████▊ | Fitting SlidingEstimator : 18/31 [00:00<00:00, 21.77it/s] 61%|██████▏ | Fitting SlidingEstimator : 19/31 [00:00<00:00, 20.96it/s] 65%|██████▍ | Fitting SlidingEstimator : 20/31 [00:00<00:00, 21.45it/s] 68%|██████▊ | Fitting SlidingEstimator : 21/31 [00:01<00:00, 20.76it/s] 71%|███████ | Fitting SlidingEstimator : 22/31 [00:01<00:00, 21.23it/s] 74%|███████▍ | Fitting SlidingEstimator : 23/31 [00:01<00:00, 20.54it/s] 77%|███████▋ | Fitting SlidingEstimator : 24/31 [00:01<00:00, 21.00it/s] 81%|████████ | Fitting SlidingEstimator : 25/31 [00:01<00:00, 20.42it/s] 84%|████████▍ | Fitting SlidingEstimator : 26/31 [00:01<00:00, 20.87it/s] 87%|████████▋ | Fitting SlidingEstimator : 27/31 [00:01<00:00, 21.29it/s] 90%|█████████ | Fitting SlidingEstimator : 28/31 [00:01<00:00, 20.71it/s] 94%|█████████▎| Fitting SlidingEstimator : 29/31 [00:01<00:00, 21.12it/s] 97%|█████████▋| Fitting SlidingEstimator : 30/31 [00:01<00:00, 21.52it/s] 100%|██████████| Fitting SlidingEstimator : 31/31 [00:01<00:00, 21.61it/s] 100%|██████████| Fitting SlidingEstimator : 31/31 [00:01<00:00, 21.20it/s] Using control points [ 3.50724321 4.37721471 15.59502306]
Total running time of the script: (0 minutes 16.916 seconds)