{"id":20841048,"url":"https://github.com/benchopt/benchmark_bci","last_synced_at":"2025-05-08T22:06:29.565Z","repository":{"id":171922112,"uuid":"644412715","full_name":"benchopt/benchmark_bci","owner":"benchopt","description":"Benchmark for Brain Computer Interface methods","archived":false,"fork":false,"pushed_at":"2025-02-01T17:07:07.000Z","size":218,"stargazers_count":16,"open_issues_count":10,"forks_count":7,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-05-08T22:06:12.439Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/benchopt.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-05-23T13:15:38.000Z","updated_at":"2025-04-09T10:25:19.000Z","dependencies_parsed_at":"2024-04-15T14:18:38.486Z","dependency_job_id":null,"html_url":"https://github.com/benchopt/benchmark_bci","commit_stats":null,"previous_names":["tommoral/benchmark_bci","benchopt/benchmark_bci"],"tags_count":0,"template":false,"template_full_name":"benchopt/template_benchmark","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benchopt%2Fbenchmark_bci","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benchopt%2Fbenchmark_bci/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benchopt%2Fbenchmark_bci/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benchopt%2Fbenchmark_bci/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/benchopt","download_url":"https://codeload.github.com/benchopt/benchmark_bci/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253154974,"owners_count":21862622,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-18T01:18:38.041Z","updated_at":"2025-05-08T22:06:29.558Z","avatar_url":"https://github.com/benchopt.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\nBrain Computer Interface (BCI) Benchmark\n========================================\n|Build Status| |Python 3.8+|\n\nThis repository evaluates BCI methods on various tasks, datasets, and paradigms.\nThe problem that is tackled depends on the paradigm and the evaluation.\n\nBCI problems aim to discriminate between various active conditions of subjects that are recorded\nusing a neuroimaging device such as an EEG headband. The paradigm defines the various conditions,\nor classes $\\\\{c_1, \\\\dots, c_k\\\\}$ to recognize in the data. For instance, the `left-right` paradigm\ncorresponds to imagining the moving of the left or right hand.\nEach condition occurrence is called an epoch or a trial, associated with a short period of time\nin the recorded signal $X_i$. BCI aims to learn a classifier able to predict from $X_i$\nwith the associated condition $y_i \\\\in \\\\{c_1, \\\\dots, c_k\\\\}$.\n\nUsually, multiple subjects are recorded for multiple sessions, during which they repeat several\ntimes the conditions. The choice of evaluation process defines which of these subjects and sessions\nare the training data and which are the test data:\n\n- With the `intra-session` evaluation (Cross-Session), we use part of the trials from one session as the training\n  data and the remaining trials as test data.\n- With the `inter-session` evaluation (Within-Session), we use all the trials from various sessions for the same\n  subject as training and evaluate on the trials from a different session but for the same subject.\n  This makes it harder as the EEG device has moved between the two sessions, but it is still the\n  the same individual who's recorded in the machine.\n- The `inter-subject` evaluation (Cross-Subject) is even harder, as this time, one uses all the trials from different\n  subjects to train the classifier and evaluate the trials from a subject that was not included\n  in the training data. This tests the generalization capabilities of the algorithms.\n\nFor each of these paradigms, we can evaluate all combinations of train/test trials, sessions, or subjects.\nFinally, once the process to obtain test data $\\\\mathcal D_{test}^i$ from the full data $\\\\mathcal D$ has\nbeen defined, the core metric of the benchmark is the balanced accuracy:\n\n$$ \\\\sum_{\\\\mathcal D_{test}^i} \\\\frac{1}{| \\\\mathcal D_{test}^i|}  \\\\sum_{(X_i, y_i) \\\\in \\\\mathcal D_{test}^i}  p(y_i) 1\\\\{y_i = f_{\\\\theta}(X_i)\\\\}$$\n\n\nInstall\n--------\n\nThis benchmark can be run using the following commands:\n\n.. code-block::\n\n   $ pip install -U benchopt\n   $ git clone https://github.com/benchopt/benchmark_bci\n   $ benchopt run benchmark_bci\n\nApart from the problem, options can be passed to ``benchopt run``, to restrict the benchmarks to some solvers or datasets, e.g.:\n\n.. code-block::\n\n    $ benchopt run benchmark_bci -s MDM -d BNCI -r 1 -n 1\n\n\nUse ``benchopt run -h`` for more details about these options, or visit https://benchopt.github.io/api.html.\n\n.. |Build Status| image:: https://github.com/benchopt/benchmark_bci/workflows/Tests/badge.svg\n   :target: https://github.com/benchopt/benchmark_bci/actions\n.. |Python 3.8+| image:: https://img.shields.io/badge/python-3.8%2B-blue\n   :target: https://www.python.org/downloads/release/python-380/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenchopt%2Fbenchmark_bci","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbenchopt%2Fbenchmark_bci","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenchopt%2Fbenchmark_bci/lists"}