8 votos

La máquina de aprendizaje en la no-longitud fija de datos secuenciales?

Tengo un problema que me gustaría aplicar el aprendizaje de máquina (clasificación supervisada), sin embargo, los datos es secuencial, y cada fila en el vector de datos tiene su propia longitud. Esto implica que el número de elementos de cada fila no es constante (piensa en datos de series de tiempo - por ejemplo - por día-por-día de los datos). Así que esto significa que el orden de los datos tiene un sentido y simplemente no podemos por ejemplo, la almohadilla con ceros a hacer todas las filas tienen la misma longitud, ya que introducir señales espurias que podrían confundir mi clasificador. Al menos esa es mi opinión actual.

  • Un enfoque posible es el uso de por ejemplo, las funciones de la ventana y simplemente calcular (por cada día) de sumas de cosas. Pero eso significa que estoy perdiendo la información sobre la historia, ya que cada día tendría que ser representada como en su propia fila en la matriz con el fin de hacer que todas las filas tienen un número fijo de columnas, de modo que yo pueda aplicar clásica ML algoritmos. Quiero evitar esto, como creo que es un óptimo enfoque - pero me va a escuchar argumentos en contra de mi opinión.

  • No tengo mucha experiencia con las redes neuronales, pero creo que hay arquitecturas que el soporte no fijo-longitud de la secuencia de datos, por ejemplo, RNNs? ¿Alguien tiene alguna buena enlaces/recursos me puede considerar?

Doy la bienvenida a los pensamientos y sugerencias de los profesionales sobre cómo abordar este problema de modelamiento. Gracias!

Saludos, M

6voto

rinspy Puntos 106

Parece que están haciendo dos preguntas aquí:

  1. Cómo lidiar con la situación en la que muestras diferentes tienen diferentes números de cuenta, es decir, cuando algunas de las características que no son aplicables a algunas muestras o no están disponibles
  2. Cómo realizar una clasificación supervisada en datos de series de tiempo

Con respecto a la pregunta 1, depende. Cada muestra debe tener el mismo número de características. Algunos modelos, es decir, el árbol de decisiones, explícitamente pueden lidiar con la falta de/NA de datos. Otros, como la regresión logística, la necesidad ordinal características y no puede lidiar con los categórica características. En este caso, puede ser digno de la introducción de binarios adicionales características (que representa si la característica X está presente/aplicable), y la elección de algunas correspondiente valor de la característica X en caso de falta / no aplicable. Una buena elección dependerá del problema específico.

Pregunta 2: usted tiene una opción de manual de ingeniería de características, o tratando de un modelo que se puede tratar de lidiar con la estructura temporal de los datos de forma automática. La mayoría de los modelos asumen que cada muestra es independiente de los demás; lo ideal sería aplicar algunas característica de la ingeniería para hacer su serie de tiempo estacionaria y el uso de su conocimiento del dominio para decidir qué datos históricos es importante para cada muestra y cómo debe ser representado. Las puntuaciones Z, moviendo los promedios, varianzas, etc. todo podría ser útil aquí. Si usted tiene un montón de datos, usted puede intentar usar RNNs, pero en mi experiencia es sólo vale la pena si usted tiene un montón de datos y, de lo contrario, no tienen intuición acerca de las características que pueden ser útiles.

Independientemente del modelo que se utilice, la configuración de validación adecuada y los marcos de las pruebas de que es absolutamente crucial. Con el tiempo la serie se debe tener mucho cuidado. E. g. usted necesita decidir si el uso de datos desde el futuro para entrenar el modelo es adecuado, si usted necesita para lanzar algunos de los datos alrededor de su conjunto de entrenamiento, distancia, etc. No sólo ciegamente al azar de la muestra de datos en la validación/conjuntos de la prueba, seguramente dará salvajemente estimaciones sesgadas que no será útil.

También recomendaría la investigación de cada una por separado, ambos se han abordado en este stackexchange antes. Buena suerte!

5voto

Nicholas Puntos 1

Parece una RNN sería un buen modelo para su problema.

Se puede tratar con series de tiempo de las secuencias de diferentes longitudes. Básicamente, se implementa en su estado interno de un mecanismo de memoria que permiten "recordar" lo que pasó en el fin de estudiar el pasado para adoptar una decisión sobre el futuro.

Sin embargo, son bastantes los modelos genéricos y se pueden utilizar en un montón de dominios. En general, usted puede encontrar diferentes tipos de RNNs, probablemente, los más comunes son el LSTM y el GRU.

En mi opinión en Colah del blog hay una gran explicación de LSTM

En cambio, si usted está buscando algo más práctico sugiero que el PyTorch tutorial.

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