Clasifique a los clientes en función de 2 características Y una serie temporal de eventos


12

Necesito ayuda sobre cuál debería ser mi próximo paso en un algoritmo que estoy diseñando.

Debido a los NDA, no puedo revelar mucho, pero intentaré ser genérico y comprensible.

Básicamente, después de varios pasos en los algoritmos, tengo esto:

Para cada cliente que tengo y los eventos que realizan durante un mes, durante los primeros pasos he agrupado los eventos en varias categorías (cada cliente tendrá los eventos separados en categorías que van de 1 a x, siendo x entre 1 a 25, generalmente las primeras categorías tienen más densidad de eventos que las otras).

Para cada categoría y cliente, he creado una serie temporal que agrega los eventos del mes por hora (obteniendo patrones de cuándo se realizan estos eventos). También estoy usando un par de variables de normalización basadas en el número de días durante un mes (30 días) que el chico realiza al menos un evento, y el número de días con al menos un evento sobre el total de días con al menos uno evento (agregando todos los clústeres). El primero me da una relación de cuán activo es el cliente durante el mes, y el segundo compara la categoría con los demás.

La mesa final se ve así

|*Identifier*|  *firstCat* | *feature1* | *feature2*  |   {      *(TIME SERIES)*   }

CustomerID  |  ClusterID |  DaysOver30 | DaysOverTotal | Events9AM Events10AM ... 

 xx | 1 | 0,69 |  0,72 |  0,2   0,13   ...

 xx | 2 | 0,11 |  0,28 |  0,1   0,45   ...

 xy | 1 | 0,23 |  0,88 |  0,00  0,60   ...

 xy | 2 | 0,11 |  0,08 |  1,00  0,00   ...

 xy | 3 | 0,10 |  0,04 |  0,40  0,60   ...

Las variables de series de tiempo son el porcentaje sobre el total de eventos por día en cada categoría específica (esto significa que por cada fila que suma todas las variables debe ser 1). La razón para hacerlo así es porque, por ejemplo, una serie temporal con eventos 0 0 0 1 0y 1 1 1 2 1son completamente diferentes, y la normalización a la normalidad daría resultados similares. Y debido al alto sesgo entre las diferentes categorías, verifico los valores en las series de tiempo independientemente con los demás.

Lo que tengo que hacer ahora es identificar estas categorías (recuerde, pueden ser de 1 a x siendo x cualquier número de 1 a 25) en 3 etiquetas: etiqueta A, etiqueta B y Ninguna de ellas. Al observar estas variables, puedo identificar manualmente a qué etiqueta pertenecen, y la idea es identificarlo manualmente tanto como pueda y usar cualquier algoritmo clasificador para aprender de eso e identificarlos a todos.

Mi idea era usar múltiples regresiones logísticas en la tabla, pero todas las variables de las series de tiempo están correlacionadas (ya que son una combinación lineal entre sí), por lo que pensé que sería mejor usar un algoritmo de agrupación solo en las series de tiempo usando euclidiana. distancia para clasificar los diferentes patrones y usar el resultado y las otras dos variables de normalización en la regresión logística.

La otra preocupación que tengo es que este enfoque toma cada fila independientemente de las demás, y en teoría, para cada cliente debe haber solo 0 o 1 etiqueta A, 0 o 1 etiqueta B y el resto de ellos debe ser Ninguno (otro El consejo es que normalmente las etiquetas A y B se encuentran entre las primeras categorías, ya que depende en gran medida de las características de normalización (si los días sobre el total son altos, existe una alta posibilidad de que la fila sea A o B, dependiendo del patrón de serie temporal) .

Editar: Esto ya no es una preocupación, solo realizaré dos regresiones logísticas diferentes, una para la Etiqueta A u Otra y otra para la Etiqueta B u otra, con las probabilidades de resultado que puedo seleccionar solo lo mejor de cada una.

El conjunto de datos es enorme y el algoritmo final debe aplicarse usando SQL (en Teradata), pero para obtener los coeficientes de la regresión logística, o los centros de agrupamiento, obtengo una muestra y uso R.


Solo una sugerencia :) ... No estoy seguro de que obtenga una respuesta adecuada siempre que la pregunta sea tan larga. Por ejemplo, sus etiquetas son exactamente mi dirección de investigación, ¡pero realmente no tengo tiempo ni energía para leerlo todo! Si puede actualizar una versión más corta, sería mejor para usted Q y también para usted, ya que en los informes científicos necesita hablar brevemente.
Kasra Manshaei

Intentaré reducir la pregunta. Es solo que, por lo general, si no me explico, la gente confunde lo que pretendía. De todos modos, tan pronto como tenga tiempo en mi trabajo, intentaré reducir el tamaño de la pregunta, gracias por la recomendación
JusefPol

¿Cuál es tu pregunta exacta? Simplemente calcularía las características de la serie temporal y luego agregaría estas características a las características de los clientes. Entonces solo tendrás clustering básico. Para elegir las características de la serie temporal, se requiere conocimiento de dominio.
Nikolas Rieble

Respuestas:


2

Sé que ha pasado un tiempo desde que se publicó la pregunta, pero para futuros lectores propongo aquí otra solución para el problema de clasificar series temporales de datos proporcionales, es decir, vectores de proporciones.

Los modelos ocultos de Markov (HMM) se utilizan ampliamente para la clasificación de series temporales. Las implementaciones originales se desarrollaron para datos discretos y gaussianos, pero desde entonces, se han extendido a más distribuciones de probabilidad.

Entre ellos, las distribuciones Dirichlet, Dirichlet generalizada y Beta-Liouville, que son perfectamente adecuadas para trabajar con datos proporcionales.

Por lo general, se entrena un modelo para cada categoría ("Etiqueta" en esta pregunta) de series de tiempo para las que se conoce la categoría. Cuando se debe clasificar una nueva serie temporal, se calcula su probabilidad con respecto a cada modelo. La nueva serie temporal generalmente se asigna a la categoría que conduce a la mayor probabilidad.

Aquí están los documentos de referencia para estos modelos que los presentan más profundamente y proporcionan todas las ecuaciones necesarias para la implementación:

  • Modelo de mezcla dinámica de Dirichlet, Informe de investigación de IDIAP, L. Chen, D. Barber, J.-M. Odobez, abril de 2007
  • Modelado de datos proporcionales con modelos ocultos de Markov basados ​​en mezclas de Dirichlet y Beta-Liouville generalizadas aplicadas a la detección de anomalías en áreas públicas, E. Epaillard, N. Bouguila, Pattern Recognition 55, pp 125-136, 2016

Para las dos características adicionales mencionadas en la pregunta, también se han desarrollado HMM para datos mixtos en el siguiente documento de investigación: Modelo híbrido oculto de Markov para modelado de datos mixto continuo / continuo y discreto / continuo, E. Epaillard, N. Bouguila, MMSP, pp. 1-6, 2015.

Estos modelos son más pesados ​​de implementar que los modelos de regresión, pero tienen la ventaja de ser modelos discriminativos y generativos y de poder generalizar bien cuando hay alguna variabilidad en los datos procesados.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.