¿Qué algoritmo puedo usar para encontrar correlaciones entre eventos?

12

Soy nuevo en el aprendizaje automático, así que estoy tratando de encontrar algo de literatura, pero ni siquiera estoy seguro de qué buscar en Google. Mis datos son de la siguiente forma:

User A performs Action P
User B performs Action Q
User C performs Action R
...
User C performs Action X
User A performs Action Y
User B performs Action Z
...

Donde cada acción tiene ciertas características (fecha, hora, cliente, etc.). Hay alrededor de 300 usuarios y tenemos alrededor de 20,000 acciones.

Pregunta :

Quiero saber si hay alguna causalidad / correlación entre las acciones del usuario. Por ejemplo, "cada vez que el Usuario E realiza la Acción T, 2 días después, el Usuario G realiza la Acción V". Pero en el medio, podría haber muchos otros usuarios realizando muchas otras acciones, y es posible que no se encuentre ninguna correlación. También es posible que algunos usuarios estén correlacionados, pero otros sean completamente independientes. ¿Es esto algo que el aprendizaje automático podría encontrar para mí? ¿Existe un algoritmo específico o un conjunto de algoritmos que podrían ayudarme?

He estado leyendo sobre el análisis de asociación y el algoritmo Apriori, pero no creo que esto me dé lo que necesito, ya que parece requerir conjuntos de datos conocidos y bien delimitados como entrada, mientras que solo tengo una larga secuencia de usuarios aparentemente aleatorios. comportamiento. ¡Cualquier sugerencia sobre qué mirar sería muy apreciada!

Mate
fuente
1
G=(V,E)P(i,j)ij

Respuestas:

1

Creo que debe hacer una preparación de datos antes de usar cualquier algoritmo para encontrar conjuntos de elementos frecuentes y reglas de asociación.

Consulte la tabla de transacciones en este artículo: análisis de la cesta de la compra

En su caso, debe establecer (y ajustar) un período de tiempo máximo entre la interacción que se espera esté correlacionada, luego puede elegir un usuario frecuente y, para cada transacción que realizó (o una muestra), adjuntará un registro único 2 días de otra transacción de usuario. Los atributos deben ser booleanos como

UserA,transactionP |UserB,transaction Z| UserB, transaction F | [...]
cesko80
fuente
Eso es realmente útil, gracias! Entonces, ¿ejecutaría el algoritmo una vez para cada usuario, preguntándole si algún otro usuario está correlacionado con ese usuario, o es posible ejecutarlo solo una vez, y pregunto "muéstrame conjuntos de usuarios que están correlacionados"?
Matt
Siguiendo mi enfoque, solo podría probar un "patrón" iniciado por un par de usuarios + tradición. Los usuarios y las acciones que se elegirán dependen de su conocimiento de la posible correlación.
cesko80
Tres sugerencias 1. Limite su consulta. No para ser irrespetuoso, pero no existe un procedimiento estadístico único y maravillosamente completo que pueda decirle todas las asociaciones significativas de las muchas, muchas posibles inherentes a sus datos. 2. Lea sobre el análisis de series de tiempo. 3. Lea sobre los métodos para distinguir la causalidad de la mera correlación. Desafortunadamente, no tengo ninguna solución rápida para ofrecer.
rolando2
1

Una forma de explorar sus datos es hacer una tabla de acción previa x acción siguiente. Entonces, para cada evento, encuentre la siguiente acción del mismo usuario. De manera similar, puede tabular la acción anterior X retraso hasta la próxima acción.

Luego, podría explorar si la acción anterior influye en la siguiente. Si no, sus usuarios son "apátridas".

Otra posible simplificación es ignorar los ID de usuario y preguntar si la frecuencia de cada acción es la misma a lo largo del tiempo o si varía; y si varía si es cíclico o muestra una tendencia.

Las respuestas a estas preguntas pueden mostrar que sus datos tienen poca estructura. Alternativamente, podrían plantear algunas nuevas hipótesis para probar.

Hugh Morris
fuente
1

Esta es una pregunta interesante. El mejor enfoque es examinar todo el conjunto de datos y crear una tabla de frecuencias. Por ejemplo: el usuario A realiza la acción P e Y, el usuario B realiza la acción Q y Z, el usuario C realiza la acción R y X De manera similar, hay más usuarios que realizan más acciones. Por lo tanto, hay varios enfoques para lidiar con este conjunto de datos 1) Algoritmo de agrupamiento para agrupar elementos similares en diferentes segmentos 2) Análisis de la cesta de mercado para identificar a los usuarios frente al mapeo de acciones y la frecuencia

Sin revisar todo el conjunto de datos, no se recomienda prescribir ningún algoritmo particular para este tipo de preguntas.

Vishwa Dharma
fuente