Total Perspective Vortex
Une interface cerveau-machine qui classe des signaux EEG d'imagerie motrice : un filtre spatial CSP écrit de zéro alimente une régression logistique, câblés en pipeline scikit-learn.
- 62,5 % moy. · 109 sujets
- passe-bande 8–30 Hz
Ma contributionImplémentation de Common Spatial Patterns de zéro — covariances par classe normalisées par la trace, une décomposition en valeurs propres généralisée et des features de log-variance — sous forme de transformateur scikit-learn.
- RÔLE
- Solo
- CONTEXTE
- École 42 · projets IA
- STATUT
- Terminé
- RÉSULTAT
- Sur les 109 sujets, les six configurations d'expériences donnent 62,5 % de précision moyenne (hasard = 50 %) ; la meilleure (poings vs pieds, mouvement réel) atteint 71 %, tandis que le poing gauche/droit reste autour de 58–60 %. Le CSP écrit de zéro et l'intégration scikit-learn sont le cœur du projet.
- MISE À JOUR
- 26 sept. 2026
Données
PhysioNet EEG Motor Movement/Imagery : 109 sujets, EEG à 64 canaux à 160 Hz ; runs 3–14, poing gauche/droit et les deux poings/les deux pieds.
Ce que j'ai construit
Solo
- Implémentation de Common Spatial Patterns de zéro — covariances par classe normalisées par la trace, une décomposition en valeurs propres généralisée et des features de log-variance — sous forme de transformateur scikit-learn.
- Construction du pipeline : le CSP maison alimentant une régression logistique, avec validation croisée k-fold et sauvegarde/chargement du modèle.
- Écriture de la couche de prétraitement MNE : chargement EDF, un passe-bande 8–30 Hz, extraction des événements et découpage en époques.
- Construction de l'outil en ligne de commande (train, predict, stream) et d'une boucle par lots sur les 109 sujets.
Choix clés
- CSP écrit de zéro, pas celui de la bibliothèque
- Le sujet impose une réduction de dimension implémentée à la main : les covariances, le problème de valeurs propres généralisé et la matrice de projection sont donc calculés directement ; le CSP de MNE n'est gardé que comme référence de contrôle.
- Un transformateur compatible scikit-learn
- Le CSP hérite de BaseEstimator et TransformerMixin, si bien qu'il se compose avec la régression logistique dans un même pipeline et traverse la validation croisée sans modification.
- Une bande 8–30 Hz et un focus sensorimoteur
- Le filtrage est restreint aux bandes mu et bêta où se situe l'activité d'imagerie motrice, avec des époques découpées de −0,5 s à 4 s autour de chaque événement.
Résultats
Sur les 109 sujets, les six configurations d'expériences donnent 62,5 % de précision moyenne (hasard = 50 %) ; la meilleure (poings vs pieds, mouvement réel) atteint 71 %, tandis que le poing gauche/droit reste autour de 58–60 %. Le CSP écrit de zéro et l'intégration scikit-learn sont le cœur du projet.
Limites
- Le mode stream est une relecture hors ligne, pas une acquisition en direct : il parcourt les époques pré-calculées une par une et affiche le temps de traitement.
- Un seul modèle global par type de tâche, écrasé à chaque entraînement ; il n'y a pas de modèles sauvegardés par sujet.
- L'évaluation est intra-sujet : chaque modèle est entraîné et testé sur le même sujet, sans généralisation à de nouveaux sujets.
- La précision varie fortement selon le sujet et la tâche (de ~0,58 en poing gauche/droit à ~0,71 en poings/pieds) — le CSP écrit de zéro et l'intégration scikit-learn restent l'essentiel.
Des questions sur ce projet ? → Écrivez-moi