Total Perspective Vortex
Una interfaz cerebro-computadora que clasifica señales de EEG de imaginación motora: un filtro espacial CSP hecho desde cero alimenta una regresión logística, montado como un pipeline de scikit-learn.
- 109 sujetos
- filtro paso banda 8–30 Hz
Mi contribuciónImplementé Common Spatial Patterns desde cero — covarianzas por clase normalizadas por la traza, una descomposición generalizada en valores propios y características de log-varianza — como un transformador de scikit-learn.
- ROL
- Solo
- CONTEXTO
- École 42 · Proyectos de IA
- ESTADO
- Terminado
- RESULTADO
- El pipeline funciona de extremo a extremo; en la única ejecución registrada (sujeto 4) alcanza una precisión de 0.53 en validación cruzada, cerca del nivel de azar de dos clases. El trabajo está en el CSP hecho desde cero y en la integración con scikit-learn, no en la puntuación.
- ACTUALIZADO
- 26 sept 2026
Datos
PhysioNet EEG Motor Movement/Imagery: 109 sujetos, EEG de 64 canales a 160 Hz; ejecuciones 3–14, puño izquierdo/derecho y ambos puños/ambos pies.
Lo que construí
Solo
- Implementé Common Spatial Patterns desde cero — covarianzas por clase normalizadas por la traza, una descomposición generalizada en valores propios y características de log-varianza — como un transformador de scikit-learn.
- Construí el pipeline: el CSP propio alimentando una regresión logística, con validación cruzada k-fold y guardado y carga del modelo.
- Escribí la capa de preprocesamiento con MNE: carga de EDF, un paso banda de 8–30 Hz, extracción de eventos y epoching.
- Construí la herramienta de línea de comandos (train, predict, stream) y un bucle por lotes sobre los 109 sujetos.
Decisiones clave
- CSP escrito desde cero, no el de la librería
- El enunciado exige una reducción de dimensionalidad implementada a mano, así que las covarianzas, el problema generalizado de valores propios y la matriz de proyección se calculan directamente; el CSP de MNE se conserva solo como referencia para comprobar.
- Un transformador compatible con scikit-learn
- El CSP hereda de BaseEstimator y TransformerMixin, de modo que se combina con la regresión logística en un solo pipeline y pasa por la validación cruzada sin cambios.
- Una banda de 8–30 Hz y un enfoque sensoriomotor
- El filtrado se restringe a las bandas mu y beta donde reside la actividad de imaginación motora, con épocas recortadas de −0.5 s a 4 s alrededor de cada evento.
Resultados
El pipeline funciona de extremo a extremo; en la única ejecución registrada (sujeto 4) alcanza una precisión de 0.53 en validación cruzada, cerca del nivel de azar de dos clases. El trabajo está en el CSP hecho desde cero y en la integración con scikit-learn, no en la puntuación.
Límites
- El modo stream es una reproducción sin conexión, no una adquisición en vivo: recorre épocas precalculadas una a una e imprime el tiempo de procesamiento.
- Un único modelo global por tipo de tarea, sobrescrito en cada ejecución de entrenamiento; no hay modelos guardados por sujeto.
- La evaluación es optimista: la validación cruzada se mide sobre una única ejecución, sin ningún sujeto reservado ni un conjunto de validación separado.
- En la única ejecución registrada, la clasificación se mantiene cerca del nivel de azar de dos clases — lo sustancial son el CSP hecho desde cero y la integración con scikit-learn, no la puntuación.
¿Preguntas sobre este proyecto? → Escríbeme