Construire un arbre de probabilité de chemin pour les voyages sur un site Web

10

Je fais actuellement une analyse sur un site Web qui nécessite que je crée un diagramme d'arbre de décision montrant la route probable que les gens prennent chaque fois qu'ils arrivent sur le site Web. Je traite un data.framequi montre les chemins de tous les clients vers le site, à partir de la page d'accueil. Par exemple, un client peut emprunter le chemin suivant:

Homepage - pg 1
Kitchen Items page - pg 2
Pots and Pans page - pg 3

ce client aurait donc un parcours de 3 pages. Ce que je veux essayer de faire dans R, c'est combiner tous les chemins des clients et ainsi attribuer une probabilité à un client qui suit un certain chemin sur le site. Par exemple, si je devais examiner tous les chemins, je pourrais trouver que 34% des personnes qui arrivent sur la page d'accueil vont sur la «page des articles de cuisine». Est-ce que R a cette facilité?

J'ai recherché différentes méthodes à travers les packages rpart et partykit , mais elles ne semblent pas être d'aucune aide.

Tout virage dans la bonne direction est très apprécié!

nellington
la source
1
je ne sais pas grand-chose sur ce domaine, mais le igraphpaquet semble être assez complet.
richiemorrisroe
3
yup, igraph est la voie à suivre pour la visualisation. Vous devez calculer les probabilités de transition à l'avance par vous-même. En général, j'ai recommandé de jeter un œil aux chaînes de Markov
steffen
1
Pouvez-vous publier des exemples de données? Cela nous aiderait à mieux comprendre la situation.
curious_cat

Réponses:

1

Ce n'est pas une façon de commencer, c'est d'avoir une matrice (disons ) où est le nombre de pages. Ensuite, en fonction de votre élément de matrice d'incrémentation de données brutes par un chaque fois que vous avez un saut utilisateur de la page à la page . Cela vous donne les probabilités de transition.M n × n n M r c r cn×nMn×nnMrcrc

Votre première question est déjà répondue par ceci: "Quel pourcentage d'utilisateurs sur la page d'accueil (disons page 1) voyage à côté, disons, des articles de cuisine (disons page 2)?"

M12cM1c

Ou est-ce trop simpliste?

curious_cat
la source
1
Non c'est vrai. À partir d'ici cependant - existe-t-il un moyen de représenter graphiquement chacun de ces éléments dans un arbre dans R? Sinon, existe-t-il un autre outil que je pourrais utiliser?
nellington
@nellington: Quel genre d'arbre avez-vous en tête?
curious_cat
1
De préférence un arbre de probabilité, avec le nœud racine étant la page d'accueil (mais si je peux changer le nœud racine, vers une autre page sur le site - ce serait une excellente fonctionnalité), chaque branche du nœud racine représenterait la page suivante visitée après le nœud racine. Idéalement, chaque branche aurait une probabilité de% attachée. Ce serait dynamique dans le sens où je devrais être capable de me développer et de me contracter sur chaque sous-nœud. Connaissez-vous un logiciel de visualisation qui pourrait gérer cela?
nellington
@nellington: Pour visualiser purement, vous pouvez essayer graphviz. Cet arbre sera un graphique orienté et il existe de nombreux outils orientés graphviz pour gérer cela.
curious_cat
0

Il semble que vous essayez de recréer l'algorithme PageRank de Google. La plupart de l'algorithme PageRank a été développé à l'aide de chaînes de Markov. Vous pouvez trouver beaucoup de mentions sur le développement de méthodes de PageRank dans R.

igraph.sourceforge.net/doc/R/page.rank.htm

IEORTools
la source
1
Pour autant que je vois, il ne s'agit pas de pagerank. À mon humble avis, le seul chevauchement est que les chemins d'utilisateur seront très probablement en corrélation avec la conception du site (liens), mais c'est tout. De plus, le lien fourni ne fonctionne pas.
steffen
1
Je pense que j'ai trouvé le lien, il était probablement sur la page Web d'igraph à un moment donné car il semble utiliser igraph fortement. stat.berkeley.edu/users/vigre/undergrad/reports/…
geneorama
Oh, je vois ... et page.rank est une fonction en igraph. Certains documents: link1 lien2 link3
geneorama
Après avoir survolé brièvement le premier rapport, je pense en fait que c'est une assez bonne réponse, et je l'ai voté (bien qu'il aurait pu utiliser une certaine élaboration!). La fonctionnalité de classement des pages semble être la réponse.
geneorama
0

D'après ce que je vois ici, je conviens que igraphs / Markov Chains est probablement la voie à suivre, mais vous pouvez certainement utiliser rpart et / ou le partykit.

Il m'est difficile de donner une réponse simple avec votre exemple limité, mais je peux expliquer de manière générale comment vous le feriez.

Vous voulez voir où se trouvaient tous vos utilisateurs et résumer cela en une chaîne par exemple

"Home / product4 / product3 / product4 / buynow"
"Home / product3 / buynow"
"Home / product3 / product4"

Vous pouvez ensuite segmenter vos utilisateurs en catégories, par exemple ceux qui se sont retrouvés sur la page "acheter maintenant" et ceux qui ne l'ont pas fait. Ensuite, vous pouvez simplement commencer à prédire ce résultat final. Dans cet exemple, vous découvrirez peut-être que les personnes qui ont fait le plus de comparaison ont acheté / n'ont pas acheté quelque chose.

Vous pouvez également créer plus de variables, telles que "quelle était la page avant la page d'achat" "combien de pages ont-ils visitées avant d'acheter quelque chose" ou "quand ont-elles créé leur premier compte", et vous pouvez ajouter ces mesures à votre analyse.

Il y a beaucoup de façons différentes de procéder, et cela commence à répondre à différentes questions, mais mon point est que vous pouvez utiliser les arbres et que pour certains problèmes, cela pourrait être un itinéraire plus rapide et plus simple pour obtenir des informations.

Soit dit en passant, vous devrez créer des facteurs de variables non numériques en utilisant factorou as.factor, si vous comptez utiliser Party. La fête a de belles vignettes pour vous aider à démarrer.

geneorama
la source
1
Pour être honnête, je veux optimiser la page d'accueil, donc prédire où les gens vont de la page d'accueil à la page 2, puis de la page 2 à la troisième page est la section de données la plus importante que j'aimerais. La page du terminal n'a pas beaucoup d'intérêt. J'ai des URL de page et des numéros de page dans le voyage, donc les probabilités de transition semblent être un moyen de le faire. Malgré cela, cela semble un peu manuel et je pensais que R pourrait être en mesure de fournir une solution plus itérative ...
nellington
Après avoir relu votre question et votre dernier commentaire, je pense que vous voulez simplement un tableau de ce que les gens font depuis la page d'accueil. (pour commencer)
geneorama
Ce que les gens font de la page d'accueil et de la page après la page d'accueil est le plus important, mais il est le plus difficile de concaténer toutes les données des utilisateurs dans r et d'attribuer des probabilités. Peut-être que Excel est la voie à suivre? Je descends la route des sommets / bords dans igraph mais cela semble causer plus de mal que d'aide.
nellington
J'ai ajouté des informations de contact à mon profil. Peut-être que nous pourrions parler hors ligne?
geneorama
ce serait très utile merci - mail envoyé
nellington