Zbuduj drzewo prawdopodobieństwa ścieżki dla podróży przez stronę internetową

10

Obecnie robię analizy na stronie internetowej, która wymaga, aby utworzyć diagram drzewa decyzyjnego pokazujący prawdopodobną trasę, którą ludzie wybiorą za każdym razem, gdy dotrą na stronę. Mam do czynienia z tym, data.framektóry pokazuje ścieżki wszystkich klientów do strony, zaczynając od strony głównej. Na przykład klient może wybrać następującą ścieżkę:

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

aby ten klient odbył 3-stronicową podróż. To, co chcę spróbować w R, to połączenie wszystkich ścieżek klientów, a tym samym przypisanie prawdopodobieństwa klientowi podążając określoną ścieżką w witrynie. Na przykład, gdybym zbadał wszystkie ścieżki, stwierdziłbym, że 34% osób, które pojawiają się na stronie głównej, przechodzi na stronę „Artykuły kuchenne”. Czy R ma tę funkcję?

Szukałem różnych metod w pakietach rpart i partykit , ale nie były one pomocne.

Jakiekolwiek kierowanie w tym kierunku jest bardzo mile widziane!

nellington
źródło
1
nie wiem dużo o tym obszarze, ale igraphpakiet wydaje się być dość kompleksowy.
richiemorrisroe
3
tak, igraph jest drogą do wizualizacji. Najpierw musisz obliczyć prawdopodobieństwo przejścia na własną rękę. Ogólnie rzecz biorąc, poleciłem przyjrzeć się Markov Chains
steffen
1
Czy możesz opublikować przykładowe dane? Pomoże nam to lepiej zrozumieć sytuację.
curious_cat

Odpowiedzi:

1

Nie jest jednym ze sposobów na rozpoczęcie, jest macierz (powiedzmy M n × n ), gdzie n jest liczbą stron. Następnie na podstawie elementu macierzy przyrostu surowych danych M r c po jednym, gdy użytkownik przeskakuje ze strony r do strony c . To daje prawdopodobieństwo przejścia.n×nM.n×nnM.rdordo

Odpowiedź na twoje pierwsze pytanie brzmi: „Jaki procent użytkowników na stronie głównej (powiedzmy na stronie 1) podróżuje obok powiedzmy artykułów kuchennych (powiedzmy na stronie 2)?”

M.12doM.1do

Czy to zbyt uproszczone?

ciekawy kot
źródło
1
Nie, to prawda. Odtąd jednak - czy istnieje sposób, aby dynamicznie przedstawić to wszystko w drzewie w R? Jeśli nie, czy istnieje inne narzędzie, którego mogę użyć?
nellington,
@nellington: Jakie drzewo masz na myśli?
curious_cat
1
Najlepiej drzewo prawdopodobieństwa, gdzie węzłem głównym jest strona główna (ale jeśli mogę zmienić węzeł główny, na inną stronę w witrynie - byłoby to świetną funkcją), każda gałąź z węzła głównego reprezentowałaby następną stronę odwiedzaną po węzeł główny. Idealnie byłoby, gdyby do każdej gałęzi dołączono% prawdopodobieństwa. Byłoby to dynamiczne w tym sensie, że powinienem być w stanie rozwinąć i skurczyć się w każdym podwęzle. Czy znasz jakieś oprogramowanie do wizualizacji, które mogłoby to obsłużyć?
nellington,
@nellington: Aby wizualizować wyłącznie, możesz spróbować graphviz. To drzewo będzie grafem ukierunkowanym i jest do tego mnóstwo narzędzi zorientowanych na grafviz.
curious_cat
0

Wygląda na to, że próbujesz odtworzyć algorytm PageRank Google. Większość algorytmu PageRank została opracowana przy użyciu łańcuchów Markowa. Wiele wzmianek o rozwijaniu metod PageRank można znaleźć w R.

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

IEORTools
źródło
1
O ile mi wiadomo, nie chodzi o PageRank. IMHO, jedynym nakładaniem się jest to, że ścieżki użytkownika najprawdopodobniej będą korelować z projektem witryny (linki), ale to wszystko. Poza tym podany link nie działa.
steffen
1
Myślę, że znalazłem link, prawdopodobnie był on kiedyś na stronie igraph, ponieważ wydaje się, że intensywnie używa igraph. stat.berkeley.edu/users/vigre/undergrad/reports/…
genorama
Och, widzę ... i page.rank jest funkcją w igraph. Trochę dokumentacji: link1 link2 link3
genorama
Po krótkim przejrzeniu pierwszego raportu uważam, że jest to całkiem dobra odpowiedź i podniosłem głos (choć można by go nieco rozwinąć!). Wydaje się, że odpowiedzią jest ranking strony.
genorama
0

Z tego, co widzę tutaj, zgadzam się, że igraphs / Markov Chains jest prawdopodobnie dobrym rozwiązaniem, jednak zdecydowanie możesz użyć rpart i / lub partykit.

Trudno mi podać prostą odpowiedź na podstawie twojego ograniczonego przykładu, ale mogę ogólnie wyjaśnić, jak byś to zrobił.

Chcesz zobaczyć, gdzie byli wszyscy twoi użytkownicy, i podsumuj to na przykład w postaci ciągu

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

Następnie możesz podzielić użytkowników na kategorie, na przykład tych, którzy znaleźli się na stronie „kup teraz”, i tych, którzy tego nie zrobili. Następnie możesz po prostu zacząć przewidywać wynik końcowy. W tym przykładzie może dowiesz się, że ludzie, którzy zrobili najwięcej porównań, coś kupili / nie kupili.

Możesz także utworzyć więcej zmiennych, np. „Jaka była strona przed stroną buynow”, „ile stron odwiedzili przed zakupem” lub „kiedy utworzyli swoje pierwsze konto”, a te dane możesz dodać do swojej analizy.

Istnieje wiele różnych sposobów można przejść, a to zaczyna się odpowiedzieć na różne pytania, ale chodzi mi o to, że mogliśmy skorzystać z drzew, a dla niektórych problemów może być szybsza i prostsza droga do wglądu.

Nawiasem mówiąc, musiałbyś wprowadzić czynniki zmiennych nieliczbowych, używając factorlub as.factor, jeśli zamierzasz użyć party. Impreza ma na początek fajne winiety.

genorama
źródło
1
Szczerze mówiąc, chcę zoptymalizować stronę główną, więc przewidywanie, gdzie ludzie przechodzą ze strony głównej do strony 2, a następnie strony 2 do trzeciej strony jest najważniejszą sekcją danych, którą chciałbym. Strona terminalu nie jest zbyt interesująca. Mam adresy URL i numery stron w podróży, więc prawdopodobieństwo przejścia wydaje się być sposobem na to. Mimo to wydaje się nieco manualny i myślałem, że R może być w stanie zapewnić bardziej iteracyjne rozwiązanie ...
nellington
Po ponownym przeczytaniu pytania i ostatniego komentarza, myślę, że po prostu chcesz tabelę tego, co ludzie robią ze strony głównej. (na początek)
genorama
To, co ludzie robią ze strony głównej i strony po stronie głównej, jest najważniejsze, ale możliwość połączenia wszystkich danych użytkowników wr i przypisania prawdopodobieństw jest najtrudniejsza. Może Excel to najlepsza droga? Przechodzę ścieżką wierzchołków / krawędzi w igraph, ale wydaje się, że powoduje więcej szkody niż pomocy.
nellington
Dodałem trochę informacji kontaktowych do mojego profilu. Może moglibyśmy porozmawiać offline?
genorama
byłoby to bardzo pomocne dzięki - wysłano pocztę
nellington