Question

J'utilise Google Analytics sur mon application mobile pour voir comment les différents utilisateurs utilisent l'application. Je dessine un chemin sur la base des pages qu'ils se déplacent à. Étant donné une liste de chemins pour dire 100 utilisateurs, comment puis-je faire pour regrouper les utilisateurs. Quel algorithme à utiliser? Soit dit en passant, je pense à l'aide de package apprendre SCKIT pour la mise en œuvre.

Mon jeu de données (csv) ressemblerait à ceci:

DeviceID,Pageid,Time_spent_on_Page,Transition.<br> 
ABC,Page1, 3s, 1->2.<br>
ABC,Page2, 2s, 2->4.<br>
ABC,Page4,1s,4->1.<br>

Alors le chemin, voici 1-> 2-> 4-> 1, où 1,2,4 sont Pageids.

Était-ce utile?

La solution

@ La réponse de Shagun est juste en fait. J'élargissons juste!

Il y a 2 approches différentes à votre problème:

Graphique Approche

  • Comme indiqué dans la réponse de @ Shagun vous avez un graphe orienté pondéré et que vous voulez regrouper les chemins. Je mentionne encore une fois parce qu'il est important de savoir que votre problème n'est pas Graphique Clustering ou Détection communautaire problème où les sommets sont regroupés!
  • Cunstructing un graphique à l'aide des deux NetworkX dernière colonne des données, vous pouvez ajouter le temps passé en poids et les utilisateurs qui ont passé ce lien comme un attribut de bord. Après tout, vous aurez différentes fonctionnalités pour le regroupement: l'ensemble de tous les sommets d'un individu jamais rencontré dans le graphique, au total, moyenne et std du temps passé, les plus courts paramètres de distribution de chemin, ... qui peuvent être utilisés pour regrouper les comportements des utilisateurs .

Données standard

  • Tous ci-dessus peut être fait par la lecture des données de manière efficace dans une matrice. Si l'on considère chaque bord pour un utilisateur spécifié comme une seule ligne (vous aurez M x N lignes M est le nombre de utilisateurs et N le nombre d'arêtes dans le cas où vous restez avec 100 cas!) et ajouter des propriétés que les colonnes que vous aurez probablement en mesure de comportements de cluster. si un utilisateur a passé un bord n fois, dans la ligne correspondant à cet utilisateur et que le bord ajouter une colonne de comptage avec une valeur n et même pour le temps passé, etc. Démarrage et bords de fin sont également instructifs. Veillez à ce que les noms de nœuds sont variables.

En ce qui concerne les algorithmes en cluster, vous pouvez trouver assez si vous avez un coup d'œil sur SKlearn.

Hope il a aidé. Bonne chance:)

Autres conseils

Je n'ai pas travaillé avec un tel jeu de données moi-même, mais je pense que vous pouvez modéliser ce problème comme un graphique où les pages forment le nœud puis vous avez dirigé des bords en fonction de transition. Ajouter des poids à des noeuds en fonction du temps passé sur eux et utiliser ensuite des algorithmes de regroupement graphique. Si vous choisissez d'utiliser, vous pouvez utiliser la bibliothèque NetworkX en python pour une analyse basée sur le graphique.

Edit: Nous pouvons utiliser les informations sur les différents chemins possibles et à quelle fréquence ils sont utiliser pour classer les utilisateurs. Soit l'exemple de prendre de l'application de recherche Google. Supposons que je veuille rechercher des images. Une option est que j'utilise l'option de recherche d'image, faire la requête et accéder à la page des résultats. Autre est que je fais d'abord la requête, puis passer à l'option d'image après avoir obtenu les résultats. Dans les deux cas, je l'ai fait à la même page. Je peux utiliser ces informations pour classer mes utilisateurs. Maintenant, il peut y avoir beaucoup de chemins possibles afin que tous dois-je envisager? Le graphique peut être utilisé pour effet de levier ici ainsi que les informations sur la façon dont vous souhaitez classer vos utilisateurs. La modélisation comme un aspect graphique très intuitif pour moi comme il se prête à la notion de chemin.

Licencié sous: CC-BY-SA avec attribution
scroll top