Erstellen Sie einen Pfadwahrscheinlichkeitsbaum für Reisen durch eine Website

10

Ich mache derzeit eine Analyse auf einer Website, für die ich ein Entscheidungsbaumdiagramm erstellen muss, das den wahrscheinlichen Weg zeigt, den Menschen bei jeder Ankunft auf der Website einschlagen. Ich habe es mit einem zu tun, data.frameder die Wege aller Kunden zur Site zeigt, beginnend von der Homepage. Ein Kunde könnte beispielsweise den folgenden Weg einschlagen:

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

Dieser Kunde hätte also eine 3-seitige Reise. Was ich in R versuchen möchte, ist, alle Kundenpfade zu kombinieren und dadurch einem Kunden eine Wahrscheinlichkeit zuzuweisen, die einem bestimmten Pfad auf der Site folgt. Wenn ich zum Beispiel alle Pfade untersuchen würde, könnte ich feststellen, dass 34% der Personen, die auf der Homepage ankommen, auf die Seite "Küchenartikel" gehen. Hat R diese Möglichkeit?

Ich habe verschiedene Methoden in den Paketen rpart und partykit nachgeschlagen, aber sie schienen keine Hilfe zu sein.

Jede Lenkung in die richtige Richtung dafür wird sehr geschätzt!

Nellington
quelle
1
Ich weiß nicht viel über diesen Bereich, aber das igraphPaket scheint ziemlich umfassend zu sein.
Richiemorrisroe
3
Ja, igraph ist der Weg zur Visualisierung. Sie müssen die Übergangswahrscheinlichkeiten vorher selbst berechnen. Im Allgemeinen empfahl ich, einen Blick auf Markov Chains
steffen
1
Können Sie einige Beispieldaten veröffentlichen? Es würde uns helfen, die Situation besser zu verstehen.
neugierige Katze

Antworten:

1

Ist nicht eine Möglichkeit zu beginnen, ist eine Matrix (sagen wir ), wobei die Anzahl der Seiten ist. Dann basierend auf Ihrem Rohdateninkrement-Matrixelement um eins, wenn ein Benutzer von Seite zu Seite . Damit erhalten Sie die Übergangswahrscheinlichkeiten.M n × n n M r c r cn×nMn×nnMrcrc

Ihre erste Frage wird bereits beantwortet: "Wie viel Prozent der Benutzer auf der Homepage (z. B. Seite 1) reisen neben beispielsweise Küchenartikeln (z. B. Seite 2)?"

M12cM1c

Oder ist das zu simpel?

neugierig_katze
quelle
1
Nein, das ist richtig. Von hier aus - gibt es eine Möglichkeit, jedes dieser Elemente dynamisch in einem Baum in R grafisch darzustellen? Wenn nicht, gibt es ein anderes Tool, das ich verwenden könnte?
Nellington
@nellington: Was für einen Baum hast du vor?
neugierige Katze
1
Vorzugsweise ein Wahrscheinlichkeitsbaum, wobei der Stammknoten die Startseite ist (aber wenn ich den Stammknoten auf eine andere Seite auf der Site ändern kann - das wäre eine großartige Funktion), würde jeder Zweig vom Stammknoten die nächste Seite darstellen, die danach besucht wird der Wurzelknoten. Im Idealfall ist jedem Zweig eine prozentuale Wahrscheinlichkeit zugeordnet. Es wäre dynamisch in dem Sinne, dass ich in der Lage sein sollte, jeden Unterknoten zu erweitern und zusammenzuziehen. Kennen Sie eine Visualisierungssoftware, die damit umgehen kann?
Nellington
@nellington: Zur reinen Visualisierung können Sie graphviz ausprobieren. Dieser Baum wird ein gerichteter Graph sein und es gibt viele graphviz-orientierte Werkzeuge, um damit umzugehen.
neugierige Katze
0

Anscheinend versuchen Sie, den PageRank-Algorithmus von Google neu zu erstellen. Der größte Teil des PageRank-Algorithmus wurde unter Verwendung von Markov-Ketten entwickelt. In R finden Sie viele Erwähnungen zur Entwicklung von PageRank-Methoden.

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

IEORTools
quelle
1
Soweit ich sehe, geht es hier nicht um Pagerank. IMHO ist die einzige Überlappung, dass Benutzerpfade höchstwahrscheinlich mit dem Site-Design (Links) korrelieren, aber das war's. Abgesehen davon funktioniert der bereitgestellte Link nicht.
steffen
1
Ich glaube, ich habe den Link gefunden, er war wahrscheinlich irgendwann auf der Webseite von igraph, weil er anscheinend stark von igraph verwendet wird. stat.berkeley.edu/users/vigre/undergrad/reports/…
geneorama
Oh, ich verstehe ... und page.rank ist eine Funktion in igraph. Einige Dokumentation: Link1 Link2 Link3
Genorama
Nachdem ich den ersten Bericht kurz überflogen habe, denke ich tatsächlich, dass dies eine ziemlich gute Antwort ist, und ich habe sie hochgestimmt (obwohl es eine Ausarbeitung hätte gebrauchen können!). Die Seitenrangfunktion scheint die Antwort zu sein.
Genorama
0

Nach allem, was ich hier sehe, stimme ich zu, dass Igraphs / Markov-Ketten wahrscheinlich der richtige Weg sind, aber Sie könnten definitiv rpart und / oder das Partykit verwenden.

Es fällt mir schwer, mit Ihrem begrenzten Beispiel eine einfache Antwort zu geben, aber ich kann allgemein erklären, wie Sie es tun würden.

Sie möchten sehen, wo sich alle Benutzer befunden haben, und dies beispielsweise in einer Zeichenfolge zusammenfassen

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

Sie können Ihre Benutzer dann in Kategorien unterteilen, z. B. diejenigen, die auf der Seite "Jetzt kaufen" gelandet sind, und diejenigen, die dies nicht getan haben. Dann könnten Sie einfach anfangen, das Endergebnis vorherzusagen. In diesem Beispiel würden Sie vielleicht herausfinden, dass Leute, die den meisten Vergleichsladen betrieben haben, etwas gekauft haben / nicht gekauft haben.

Sie können auch weitere Variablen festlegen, z. B. "Was war die Seite vor der Buynow-Seite?", "Wie viele Seiten haben sie vor dem Kauf besucht?" Oder "Wann haben sie ihr erstes Konto erstellt?", Und Sie können diese Metriken zu Ihrer Analyse hinzufügen.

Es gibt viele verschiedene Wege, die Sie gehen könnten, und dies beginnt, verschiedene Fragen zu beantworten, aber mein Punkt ist, dass Sie die Bäume verwenden könnten und für einige Probleme könnte es ein schnellerer und einfacherer Weg zum Einblick sein.

Übrigens müssten Sie nicht numerische Variablenfaktoren mithilfe von factoroder festlegen as.factor, wenn Sie party verwenden möchten . Party hat einige schöne Vignetten, um Ihnen den Einstieg zu erleichtern.

Genorama
quelle
1
Um ehrlich zu sein, möchte ich die Homepage optimieren. Daher ist es der wichtigste Datenabschnitt, den ich möchte, vorherzusagen, wohin die Leute von der Homepage zu Seite 2 und dann von Seite 2 zur dritten Seite gehen. Terminalseite ist nicht von großem Interesse. Ich habe Seiten-URLs und Seitenzahlen auf der Reise, daher scheinen Übergangswahrscheinlichkeiten ein Weg zu sein, dies zu tun. Trotzdem scheint es ein bisschen manuell zu sein und ich
denke,
Nachdem Sie Ihre Frage und Ihren letzten Kommentar noch einmal gelesen haben, möchten Sie einfach eine Tabelle mit den Aktivitäten der Benutzer auf der Startseite erstellen. (um zu beginnen)
Genorama
Was die Leute von der Homepage und der Seite nach der Homepage aus tun, ist am wichtigsten, aber es ist am schwierigsten, alle Benutzerdaten in r zu verketten und Wahrscheinlichkeiten zuzuweisen. Vielleicht ist Excel der richtige Weg? Ich gehe die Route der Eckpunkte / Kanten in igraph entlang, aber es scheint mehr Schaden als Hilfe zu verursachen.
Nellington
Ich habe meinem Profil einige Kontaktinformationen hinzugefügt. Vielleicht könnten wir offline reden?
Genorama
das wäre sehr hilfreich danke - mail gesendet
nellington