Tengo acceso a un conjunto de datos muy grande. Los datos son de MEG grabaciones de personas que escuchan extractos musicales, de uno de los cuatro géneros. Los datos son los siguientes:
- 6 Sujetos
- 3 Repeticiones experimentales (épocas)
- 120 ensayos por época
- 8 segundos de datos por prueba a 500Hz (=4000 muestras) de 275 canales MEG
Así que cada "ejemplo" aquí es una matriz de tamaño [4000x275], y hay 2160 de tales ejemplos, y eso es antes de cualquier extracción de características. El objetivo es predecir el género basado en la señal del cerebro (clasificación de 4 clases).
Claramente hay algunos temas desafiantes aquí, a saber:
- El conjunto de datos no cabe en la memoria
- Habrá fuertes correlaciones temporales en los datos, y la variación entre los sujetos será enorme. Como resultado, no es obvio cómo dividir los datos
- La relación señal-ruido es muy baja
- No es obvio cuáles serían las características correctas para un clasificador
Tomando estos a su vez:
-
Hay varias cosas que uno puede hacer. En primer lugar, podemos reducir la muestra de 500Hz a ~200Hz, ya que incluso teniendo en cuenta el límite de Nyquist, la actividad cerebral no se produce realmente a más de 100Hz. También podríamos submuestrear del conjunto de canales (por ejemplo, centrarnos en las áreas auditivas) pero preferiríamos no hacer esto a-priori ya que puede haber actividad en otras áreas (frontales, etc.) que podrían ser de interés. Probablemente también podemos dejar caer una parte de la ventana de tiempo. ¿Quizás sólo las 2 primeras son importantes para la tarea? No se sabe realmente. Por supuesto que todo el mundo gritará " Reducción de la dimensionalidad pero eso tampoco es trivial. En primer lugar, tendríamos que ser muy cuidadosos con nuestras divisiones de tren/prueba (ver 2.) y tampoco es obvio si hacerlo antes o después de la generación de la característica. En segundo lugar, aparte de la costosa validación cruzada, o de una minuciosa inspección visual, no hay una forma obvia de seleccionar el método apropiado o el número apropiado de dimensiones. Podríamos, por supuesto, utilizar, por ejemplo, PCA, ICA o proyecciones aleatorias y esperar lo mejor ....
-
Esto es difícil. Si tenemos muestras sucesivas en el conjunto de entrenamiento, es probable que nos sobrepase el conjunto de entrenamiento, mientras que si tenemos muestras sucesivas divididas en el conjunto de entrenamiento y el conjunto de prueba, es probable que nos sobrepase el conjunto de entrenamiento, pero aún podría sobrepase el conjunto de prueba. Parece que hay varias opciones aquí:
- Clasificación de una sola materia . Tome cada sujeto individual por su cuenta, y divídalo según las épocas. Este debería es la tarea más fácil, ya que no estamos tratando de predecir a través de los cerebros. Dentro de este uno podría usar los dos restos de época para la validación cruzada. Para completar, uno debería rotar todas las combinaciones. Simplemente informaríamos de la precisión media de todos los sujetos. Por supuesto, no esperamos que estos modelos se generalicen bien en absoluto.
- Dentro de la clasificación de los sujetos . Toma todos los sujetos juntos y divídelos según las épocas. Este puede de hecho será la tarea más fácil, ya que habremos visto a todos los sujetos en formación. Sin embargo, probablemente no esperemos que los modelos se generalicen bien a nuevos temas. Dentro de este uno podría usar los dos restos de época para la validación cruzada. Para completar, uno debería rotar todas las combinaciones.
- La clasificación entre los sujetos . También conocido como "leave-one-out", donde un solo sujeto se toma como datos de prueba, y el resto se utiliza para el entrenamiento. Luego rotaríamos a través de todos los sujetos. La validación cruzada se realizaría entonces sobre los sujetos. Esperamos que esta sea una tarea mucho más difícil, ya que estamos tratando de predecir en un "nuevo cerebro" cada vez. Aquí esperaríamos que los modelos se generalizaran bien a la población más grande, aunque hay un problema de fiabilidad de la prueba (es decir, cuánto sobreajuste es causado por las correlaciones temporales).
-
Se trata de un clásico problema de "aguja en un pajar": la señal real relativa al reconocimiento de un género musical, o cualquier procesamiento específico de un género, es probable que sea minúscula en comparación con la "sopa" de actividad en el cerebro. También hay artefactos notables que sólo pueden ser eliminados parcialmente (principalmente relacionados con el movimiento). Cualquier característica que se derive de los datos, y cualquier forma en que se traten los datos, debería evitar la destrucción de parte de la señal de interés.
-
Aquí uno podría imaginarse haciendo varias cosas. La primera sería simplemente utilizar los datos en bruto (concatenados en un vector) como el vector de características. No estoy seguro de cuán fructífero es eso, sin embargo, creo que estos vectores probablemente serían esencialmente uniformemente aleatorios. Esta es entonces realmente una cuestión de procesamiento de señales, pero hay algunas pautas generales que uno puede seguir. Una es hacer que el estándar Análisis de Fourier sobre una ventana corrediza, desde donde los componentes pueden dividirse en distintas bandas de frecuencia (alfa/beta/gama, etc.), y las estadísticas de éstas (media, desviación estándar) pueden utilizarse como características. O se pueden utilizar Wavelets, Transformaciones Hilbert, o incluso intentar buscar atractores caóticos . Por supuesto, entonces tenemos la opción de los núcleos (lineal, polinomio, RBF, etc.) que multiplica el número de permutaciones. Tal vez lo mejor que podemos hacer aquí es generar tantos conjuntos de características diferentes como sea posible, y luego usar MKL o impulsando los métodos para combinarlos entre sí.
¿Cómo abordaría este tipo de conjunto de datos (si no es éste específicamente)? ¿Hay algo que me haya perdido en el camino? ¿Cuál es la estrategia más probable para tener éxito, sin gastar cantidades interminables de tiempo de investigación y recursos computacionales?