Saltar al contenido

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.

En resumen
  • 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
EEGPhysioNet · .edfband-pass8-30 Hz · MNEepochs-0.5 s to 4 sCSPfrom scratchlogistic reg.sklearn pipelinepredicttwo-class task
Fig. — cómo funciona
1

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.

2

Lo que construí

Solo

  1. 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.
  2. Construí el pipeline: el CSP propio alimentando una regresión logística, con validación cruzada k-fold y guardado y carga del modelo.
  3. Escribí la capa de preprocesamiento con MNE: carga de EDF, un paso banda de 8–30 Hz, extracción de eventos y epoching.
  4. Construí la herramienta de línea de comandos (train, predict, stream) y un bucle por lotes sobre los 109 sujetos.
3

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.
4

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.

5

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