Construya un árbol de probabilidad de ruta para viajes a través de un sitio web

10

Actualmente estoy haciendo un análisis en un sitio web que requiere que cree un diagrama de árbol de decisión que muestre la ruta probable que las personas toman cada vez que llegan al sitio web. Estoy tratando con un data.frameque muestra los caminos de todos los clientes al sitio, comenzando desde la página de inicio. Por ejemplo, un cliente podría tomar la siguiente ruta:

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

entonces este cliente tendría un viaje de 3 páginas. Lo que quiero intentar hacer en R es combinar todas las rutas de los clientes y así asignar una probabilidad a un cliente que siga una determinada ruta en el sitio. Por ejemplo, si examinara todos los caminos, podría encontrar que el 34% de las personas que llegan a la página de inicio van a la "página de artículos de cocina". ¿R tiene esta facilidad?

He mirado por diferentes métodos a través de los rpart y partykit paquetes pero que no parecen ser de alguna ayuda.

¡Cualquier dirección en la dirección correcta para esto es muy apreciada!

nellington
fuente
1
No sé mucho sobre esta área, pero el igraphpaquete parece ser bastante completo.
richiemorrisroe
3
sí, igraph es el camino a seguir para la visualización. Debe calcular las probabilidades de transición de antemano por su cuenta. En general, recomiendo echar un vistazo a Markov Chains
steffen
1
¿Puedes publicar algunos datos de muestra? Nos ayudaría a comprender mejor la situación.
curious_cat

Respuestas:

1

n×nMn×nnMrcrc

Su primera pregunta ya está respondida por esto: "¿Qué porcentaje de usuarios en la página de inicio (por ejemplo, la página 1) viaja junto a, digamos, Artículos de cocina (por ejemplo, la página 2)?"

M12cM1c

¿O es esto demasiado simplista?

curioso_cat
fuente
1
No, esto es correcto. Sin embargo, a partir de aquí, ¿hay alguna forma de graficar cada uno de estos dinámicamente en un árbol en R? Si no, ¿hay otra herramienta que pueda usar?
nellington
@nellington: ¿Qué tipo de árbol tienes en mente?
curious_cat
1
Preferiblemente un árbol de probabilidad, con el nodo raíz como la página de inicio (pero si puedo cambiar el nodo raíz, a otra página en el sitio, sería una gran característica), cada rama del nodo raíz representaría la siguiente página visitada después El nodo raíz. Idealmente, cada rama tendría un% de probabilidad adjunto. Sería dinámico en el sentido de que debería poder expandirme y contraerme en cada subnodo. ¿Conoces algún software de visualización que pueda manejar esto?
nellington
@nellington: Para visualizar puramente, puedes probar graphviz. Ese árbol será un gráfico dirigido y hay muchas herramientas orientadas a graphviz para manejar eso.
curious_cat
0

Parece que estás intentando recrear el algoritmo de PageRank de Google. La mayor parte del algoritmo de PageRank se desarrolló utilizando las cadenas de Markov. Puede encontrar muchas menciones sobre el desarrollo de métodos de PageRank en R.

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

IEORTools
fuente
1
Por lo que veo, no se trata de pagerank. En mi humilde opinión, la única superposición es que las rutas de los usuarios probablemente se correlacionen con el diseño del sitio (enlaces), pero eso es todo. Aparte, el enlace proporcionado no funciona.
steffen
1
Creo que encontré el enlace, probablemente estaba en la página web de igraph en algún momento porque parece que usa mucho igraph. stat.berkeley.edu/users/vigre/undergrad/reports/…
geneorama
Ah, ya veo ... y page.rank es una función en igraph. Parte de la documentación: Link1 Link2 link3
geneorama
Después de leer brevemente el primer informe, en realidad creo que esta es una respuesta bastante buena, y lo voté (¡aunque podría haber tenido alguna elaboración!). La funcionalidad de rango de página parece ser la respuesta.
geneorama
0

Por lo que veo aquí, estoy de acuerdo en que los igraphs / Markov Chains son probablemente el camino a seguir, sin embargo, definitivamente podrías usar rpart y / o el kit de fiesta.

Es difícil para mí dar una respuesta simple con su ejemplo limitado, pero generalmente puedo explicar cómo lo haría.

Desea ver dónde habían estado todos sus usuarios y resumirlo en una cadena, por ejemplo

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

Luego, podría segmentar a sus usuarios en categorías, digamos los que terminaron en la página "comprar ahora" y los que no. Entonces podría simplemente comenzar a predecir el resultado de ese terminal. En este ejemplo, tal vez descubra que las personas que hicieron la mayor cantidad de comparación compraron / no compraron algo.

También podría hacer más variables, como "cuál era la página anterior a la página de compra ahora", "cuántas páginas visitaron antes de comprar algo" o "cuándo crearon su primera cuenta", y podría agregar esas métricas a su análisis.

Hay muchas maneras diferentes en que podría ir, y esto comienza a responder diferentes preguntas, pero mi punto es que podría usar los árboles y, para algunos problemas, podría ser una ruta más rápida y sencilla para obtener información.

Por cierto, necesitaría hacer factores de variables no numéricos usando factoro as.factor, si va a usar party. Party tiene algunas bonitas viñetas para que comiences.

geneorama
fuente
1
Para ser sincero, quiero optimizar la página de inicio, por lo que me gustaría predecir a dónde irán las personas desde la página de inicio a la página 2 y luego a la página 2 a la tercera página. La página de la terminal no es de mucho interés. Tengo URL de página y números de página en el viaje, por lo que las probabilidades de transición parecen ser una forma de hacerlo. A pesar de esto, parece un manual poco y aunque R podría ser capaz de proporcionar una solución más iterativo ...
nellington
Después de releer su pregunta y su último comentario, creo que simplemente desea una tabla de lo que hace la gente desde la página de inicio. (para comenzar)
geneorama
Lo que la gente hace desde la página de inicio y la página después de la página de inicio es lo más importante, pero poder concatenar todos los datos de los usuarios en r y asignar probabilidades es donde es más difícil. Quizás sobresalir es el camino a seguir? Voy por la ruta de vértices / bordes en igraph, pero parece estar causando más daño que ayuda.
nellington
Agregué información de contacto a mi perfil. Tal vez podríamos hablar sin conexión?
geneorama
eso sería muy útil gracias - correo enviado
nellington