Cluster les données de flot

8

Je suis récemment entré dans le domaine de l'apprentissage automatique et un projet sur lequel je travaille m'oblige à regrouper les utilisateurs en fonction de l'ordre dans lequel ils ont visité les pages Web sur un site Web. J'ai des données sous forme de:

['user_id', 1, 2, 4, 6, 3, 7, 3, 2, 4...]

Où chaque numéro est une catégorie / page visitée par l'utilisateur. De plus, la longueur des données pour chaque utilisateur n'est pas la même, c'est-à-dire que certains utilisateurs visitent plus de pages que d'autres.

Je me rends compte que c'est vraiment vague et qu'il est difficile de définir la similitude. J'ai essayé de suivre l'exemple de ce document de recherche et, pour être honnête, beaucoup de choses m'ont dépassé la tête.

J'ai besoin d'aide pour aborder ce problème et je suis ouvert à de nouvelles idées et suggestions.

Arjun Aletty
la source

Réponses:

3

C'est une bonne question avec de nombreuses applications pratiques.

Vos données sont séquentielles, nous avons donc besoin d'une mesure de similitude entre n'importe quelle paire de séquences. Je recommande la distance Levensthein car elle est très intuitive et très bien définie. Voir également cette belle thèse de baccalauréat avec un aperçu de plus de mesures pour les données séquentielles.

Enfin, si l'on a les distances entre toutes les paires de séquences, on peut utiliser n'importe quel algorithme de clustering qui prend une matrice de distance en entrée (par exemple n'importe quel algorithme hiérarchique).

Miroslav Sabo
la source
2

Vous pouvez utiliser le package clickstream ou clickclust en langage R. Il exécute exactement ce que vous recherchez.

Sagar
la source
2
C'est vraiment mieux adapté comme commentaire que comme réponse.
Silverfish