1 votos

Continua + categórica + Datos no disponibles

Estoy teniendo algunos problemas con una tarea de clasificación, y tal vez la comunidad podría darme algún consejo. Mi problema es el siguiente.

En primer lugar, tenía algunas características continuas y tenía que decir si el sistema estaba en la clase 1, la clase 2 o la clase 3. Esta es una tarea de clasificación estándar, no es gran cosa, el clasificador podría ser un GMM o SVM, etc, y funcionó bien. La matriz de características tenía este aspecto:

\begin{array} {|l|rrrrrrrr|} \hline \textbf{Time}& T1 & T2 & T3 & T4 &T5 &T6 &T7 & ...\\ \hline \hline \textbf{Feat2}&0.2 &1 &0.15 &1.2 &10 &102 &120 &... \\ \hline \textbf{Feat2} &0.1 &0.11 &0.1 &0.2 &0.2 &0.1 &0.5 &...\\ \hline \textbf{...}& ...& ... &... &... &... &... &... &...\\ \hline \textbf{Label} & 0 &0 &1 &1 &1 &2 &2 & ...\\ \hline \end{array}

Ahora, puedo tener acceso a nuevos datos que sé que pueden ayudar. Sin embargo, los datos son categóricos {1, 2, 3} pero lo más importante es que a veces son no disponible . Así que mi matriz de características se ve ahora así:

\begin{array} {|l|rrrrrrrr|} \hline \textbf{Time} & T1 & T2 & T3 & T4 &T5 &T6 &T7 & ...\\ \hline \hline \textbf{Feat1} &0.2 &1 &0.15 &1.2 &10 &102 &120 &... \\ \hline \textbf{Feat2} &0.1 &0.11 &0.1 &0.2 &0.2 &0.1 &0.5 &...\\ \hline \textbf{...} & ...& ... &... &... &... &... &... &...\\ \hline \textbf{Y1} &NA &NA &1 &1 &1 &NA &2 &...\\ \hline \textbf{Y2} &NA &0 &NA &NA &1 &2 &NA &...\\ \hline \textbf{Y3} &NA &NA &2 &0 &NA &NA &NA &...\\ \hline \textbf{...}& ...& ... &... &... &... &... &... &...\\ \hline \textbf{Label} & 0 &0 &1 &1 &1 &2 &2 & ...\\ \hline \end{array}

NA = No disponible.

Algunos datos son irrelevantes, pero sé que algunos podrían ser útiles. En este ejemplo, sé que $Y1$ es valioso porque cuando está disponible, coincide con la etiqueta. Así que mi pregunta es: ¿cómo puedo manejar estos datos?

Sé que los datos categóricos pueden ser convertidos en datos numéricos y luego ser utilizados como el resto de las características continuas, pero ¿cómo manejar el hecho de que a veces no están disponibles? He intentado convertir los "NA" en, digamos, -1, y luego alimentar el clasificador con los datos ahora completos. Por ejemplo, $Y1$ se convierte:

\begin{array} {|l|rrrrrrr|} \hline \textbf{Time} & T1 & T2 & T3 & T4 &T5 &T6 &T7 & ...\\ \hline \textbf{Y1} &-1 &-1 &1 &1 &1 &-1 &2 &...\\ \hline \end{array}

Pero no funciona, y la precisión de la clasificación cae (lo cual no es sorprendente ya que alimento al clasificador con datos que son irrelevantes la mayor parte del tiempo, es decir, para diferentes clases dan la misma salida: -1).

Lo ideal sería que el clasificador utilizara los datos de forma más eficiente. El clasificador debería utilizar las características comunes pero también tener en cuenta la disponibilidad de las nuevas características Y, como "si Y está disponible, puedo confiar en ella, de lo contrario, utilizo la característica estándar".

¿Cómo debo tratar estos datos? ¿Debo cambiar el clasificador? Con la afirmación anterior, parece que debería añadir un Árbol de Decisión o algo así, pero al principio no quería añadir otro paso de clasificación.

¿Alguien tiene una idea al respecto? :)

Nota: También me recuerda el "problema de los datos perdidos" pero creo que no es el mismo caso.

0voto

TLR Puntos 51

Una forma habitual de rellenar los datos que faltan sería predecirlos, basándose en otros objetos que sí tienen esos datos.

Dependiendo de sus tipos de datos, esto podría ser una simple regresión.

Tratar todos los NA como el mismo valor numérico parece condenado al fracaso, como has visto.

0voto

Se trata de un problema de clasificación con tipos de variables mixtas (continuas y categóricas) junto con datos perdidos.

Ahora, en este caso, en lugar de SVM o GMM, es más apropiado un clasificador de decisión o de bosque aleatorio. Estos clasificadores funcionarán incluso en presencia de datos perdidos.

Y no sustituya el dato que falta por -1 porque la técnica considera que es su valor real. Sustitúyalo por un valor para que el algoritmo lo considere como un valor perdido. Por ejemplo, sustituya estos valores como NaN en Matlab o ? en Weka, según la plataforma de programación.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X