Pregunta

Estoy usando Google Analytics en mi aplicación móvil para ver cómo los diferentes usuarios utilizan la aplicación. Dibujo un camino basado en las páginas que se mueven a. Dada una lista de rutas para decir unas 100 usuarios, ¿cómo hago para agrupar los usuarios. Qué algoritmo a utilizar? Por cierto, estoy pensando en usar sckit aprender paquete de la aplicación.

Mi conjunto de datos (en formato CSV) se vería así:

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>

Así el camino, aquí es 1-> 2-> 4-> 1, donde 1,2,4 son Pageids.

¿Fue útil?

Solución

@ respuesta de Shagun es en realidad la derecha. Acabo de expandirla!

Hay 2 enfoques diferentes para su problema:

Gráfico Enfoque

  • Como se indica en la respuesta de @ Shagun tiene un grafo dirigido ponderado y desea agrupar los caminos. Menciono de nuevo porque es importante saber que su problema no es un Gráfico La agrupación o Detección Comunidad problema en el que los vértices están agrupados!
  • Cunstructing un gráfico en NetworkX usando las dos últimas columnas de los datos, se puede añadir el tiempo pasado como el peso y los usuarios que pasaron ese vínculo como un atributo borde. Después de todo lo que tiene diferentes características para la agrupación: el conjunto de todos los vértices de un individuo conocido nunca en el gráfico, totales, medias y std de tiempo pasado, los parámetros de distribución de camino más corto, ... que pueden utilizarse para agrupar los comportamientos de los usuarios .

Estándar de Datos

  • Todo lo anterior se puede hacer mediante la lectura de datos de manera eficiente en una matriz. Si se tiene en cuenta cada borde para un usuario especificado como una sola fila (es decir, tendrá M x N filas donde M es el número de usuarios y N el número de aristas en caso de que se pega con 100 casos!) y añadir propiedades como columnas que probablemente capaz de comportamientos de racimo. si un usuario pasa una ventaja n veces, en la fila correspondiente a ese usuario y que borde agregar una columna recuento con un valor de n y lo mismo para pasar el tiempo, etc. Inicio y bordes que terminan también son informativos. Tenga cuidado de que los nombres de nodo son variables categóricas.

En cuanto a la agrupación de los algoritmos se pueden encontrar suficiente si usted tiene un rápido vistazo a SKlearn.

La esperanza que ayudó. Buena suerte:)

Otros consejos

No he trabajado con un conjunto de datos tales mí mismo, pero creo que se puede modelar este problema como un gráfico donde las páginas forman el nodo y luego se han dirigido bordes basado en transición. Añadir pesos para nodos basados ??en el tiempo dedicado a ellos y luego utilizar algoritmos de agrupamiento gráfico. Si decide utilizar esto, se puede utilizar la biblioteca NetworkX en Python para el análisis basado en gráficos.

Editar: Podemos utilizar la información sobre los diferentes caminos posibles y la frecuencia con que son uso para clasificar los usuarios. Vamos a tomar ejemplo de la aplicación de búsqueda de Google. Supongamos que quiero buscar imágenes. Una opción es que utilizo la opción de búsqueda de imágenes, realizar la consulta y llegar a la página de resultados. Otra es que hago la consulta primero y luego cambiar a la opción de imagen después de obtener los resultados. En los dos casos que hice a la misma página. Puedo usar esta información para clasificar mis usuarios. Ahora no puede haber un buen montón de caminos posibles por lo cual todos ¿Considero? En el gráfico se puede utilizar para apalancado aquí, junto con la información sobre cómo desea clasificar sus usuarios. Modelarla como un gráfico se ve muy intuitivas para mí, ya que se presta al concepto de trayectoria.

Licenciado bajo: CC-BY-SA con atribución
scroll top