mne-tools / mne-tools/mne-python

ENH: decoding module 2017

Open
#3,442 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
3.5k
Forks
1.6k
Avg merge
1d 6h
Merged PRs (30d)
100

Description

This aims at keeping track of the development related to the Google summer of code 2016 on decoding analyses.

We have quite a lot ongoing PRs, so I thought I would try to organize them here to keep track of the big picture. I'll edit the post along the issue along the way.

The aim is to make transformers that follow the sklearn API:

pipe = make_pipeline(
    CSP(sfreq=200, None, 30),
    TimeFrequency(),
    SlidingEstimator(make_pipeline(StandardScaler(), LogisticRegression())
)

score = cross_val_score(X=epochs.get_data(), y=epochs.event[:, 2])

For now, we're focusing on sklearn integration, not high level features (plotting, get_coefs_ etc).

  • Spatial filters:

  • Freq - time/freq transformers:

    • FIX: TemporalFilter: needs refactoring from mne.decoding.FilterEstimator to pass explicit args and not info + BUG in FilterEstimator: #3395, #3471, #3472
    • FIX: PSDEstimator
    • ENH: TimeFrequencyDecomposer #3488
    • ENH: SPoC #4144
    • Time Frequency Decoding object based on covariances / CSP ...
    • Power Decoding Estimator based on covariances / CSP: #4138 (example, but need to be converted in object)
  • Continuous signals (raw not epochs)

  • Search lights

    • ENH: SlidingEstimator and GeneralizingEstimator: #3381 #4103
    • ENH: n-dimensional search light #3481
    • FIX: Refactor TimeDecoding & GeneralizationAcrossTime #4103
    • ENH: 'scoring' param in SearchLight-like object #3475, #3502, #3833 #4103
    • ENH: option to warm_start from one estimator to the next
    • cross_val_multiscore #4103
    • window_size and step parameter in SlidingEstimator
  • Preprocessing

    • ENH: Scaler: scale channels over all time their corresponding time points to deal with issues related to mix channel types needs refactoring to comply to X y API
    • ENH: Vectorizer: to pass from n-D X to 2D X to be reviewed in https://github.com/mne-tools/mne-python/pull/3409
  • Examples:

    • RSA #3923
    • TimeFrequency Example #4115
    • PSD example #4138
    • get_coef for SlidingEstimator
    • Denoise tutorial
    • Frequency generalization #4019
    • UnsupervisedSpatialFilter example
  • Other:

    • partial_fit #3483, #3591
    • get_coef(pipeline) to retrieve and/or invert_transform linear coefficients if they exist

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

This is a historical tracking issue covering multiple decoding components, including CSP, SlidingEstimator, FilterEstimator, and examples. Start by reviewing the unchecked entries and their linked issues, then choose a specific subtask with a defined scope. Done means the selected item is implemented and its referenced example or tests are updated, rather than completing this tracker as a whole.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, scikit-learn
Domain
machine-learning
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.