Je suis nouveau dans l'apprentissage automatique, j'essaie donc de trouver de la littérature, mais je ne sais même pas pourquoi Google. Mes données sont de la forme suivante:
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
...
Où chaque action a certaines caractéristiques (date, heure, client, etc.). Il y a environ 300 utilisateurs et nous avons environ 20 000 actions.
Question :
Je veux savoir s'il existe une causalité / corrélation entre les actions des utilisateurs. Par exemple, "chaque fois que l'utilisateur E exécute l'action T, 2 jours plus tard, l'utilisateur G exécute l'action V". Mais entre les deux, de nombreux autres utilisateurs peuvent effectuer de nombreuses autres actions, et il est possible qu'aucune corrélation ne soit trouvée. Il est également possible que certains utilisateurs soient corrélés, mais d'autres sont complètement indépendants. Est-ce quelque chose que le machine learning pourrait trouver pour moi? Existe-t-il un algorithme spécifique ou un ensemble d'algorithmes qui pourraient m'aider?
J'ai lu sur Association Analysis et l'algorithme Apriori, mais je ne pense pas que cela me donnera ce dont j'ai besoin, car il semble nécessiter des ensembles de données connus et bien délimités en entrée, alors que j'ai juste un long flux d'utilisateurs apparemment aléatoires Actions. Toutes les suggestions sur quoi regarder seraient les plus appréciées!
P
Réponses:
Je pense que vous devez faire une certaine préparation des données avant d'utiliser un algorithme pour trouver des règles et des règles d'association d'éléments fréquents.
Voir le tableau des transactions dans cet article: analyse du panier de marché
Dans votre cas, vous devez définir (et affiner) un intervalle de temps maximum entre l'interaction qui devrait être corrélée, puis vous pouvez choisir un utilisateur fréquent, et pour chaque transaction qu'il a effectuée (ou un échantillon), vous joindrez un enregistrement unique 2 jours d'une autre transaction utilisateur. Les attributs doivent être booléens tels que
la source
Une façon d'explorer vos données est de faire un tableau de l'action précédente x action suivante. Donc pour chaque événement, trouvez la prochaine action du même utilisateur. Vous pouvez également tabuler le délai X d'action précédente jusqu'à l'action suivante.
Ensuite, vous pouvez explorer si l'action précédente influence la suivante. Sinon, vos utilisateurs sont "apatrides".
Une autre simplification possible consiste à ignorer les ID utilisateur et à se demander si la fréquence de chaque action est la même dans le temps ou varie; et s'il varie, qu'il soit cyclique ou montre une tendance.
Les réponses à ces questions peuvent montrer que vos données sont peu structurées. Alternativement, ils pourraient soulever de nouvelles hypothèses à tester.
la source
C'est une question intéressante. La meilleure approche consiste à examiner l'intégralité de l'ensemble de données et à créer une table de fréquences. Par exemple: l'utilisateur A exécute les actions P et Y l'utilisateur B exécute les actions Q et Z, l'utilisateur C exécute les actions R et X. De même, il y a plus d'utilisateurs effectuant plus d'actions. Il existe donc plusieurs approches pour gérer cet ensemble de données 1) Algorithme de cluster pour regrouper des éléments similaires dans différents compartiments 2) Analyse du panier de marché pour identifier les utilisateurs par rapport à la cartographie et à la fréquence des actions
Sans parcourir l'ensemble des données, il n'est pas recommandé de prescrire un algorithme particulier pour ce type de questions.
la source