640 likes | 778 Views
“Sistema de Análisis de Patrones de Navegación usando Web Mining”. Integrantes Víctor Macas Fanny Idrovo Patricio Alcívar. Agenda. Introducción Objetivo Esquema Básico: Minería de Datos Fuente de Datos Preparación de los Datos Métodos de Minería Reportes Estadísticos Tipos de Reportes
E N D
“Sistema de Análisis de Patrones de Navegación usando Web Mining” Integrantes Víctor Macas Fanny Idrovo Patricio Alcívar
Agenda • Introducción • Objetivo • Esquema Básico: Minería de Datos • Fuente de Datos • Preparación de los Datos • Métodos de Minería • Reportes Estadísticos • Tipos de Reportes • Conclusiones
Agenda • Introducción • Objetivo • Esquema Básico: Minería de Datos • Fuente de Datos • Preparación de los Datos • Métodos de Minería • Reportes Estadísticos • Tipos de Reportes • Conclusiones
Introducción • Los miles de personas que navegan por la Web van dejando registrados todos sus accesos o visitas en archivos especiales. • El proyecto analiza el comportamiento del usuario en un sitio Web usando los conceptos Web Mining (WM). • WM genera conocimiento. • El proyecto describe el proceso necesario para generar conocimiento (patrones de navegación) • Caso Real: www.sidweb.espol.edu.ec
Introducción Qué es Web Mining? Web Mining es el descubrimiento y análisis de información útil en la World Wide Web.
Introducción Áreas de enfoque Web Mining se clasifica en función de la parte de la Web que se mina, por tanto existen tres áreas o enfoques: 1. Minería del contenido de la Web 2. Minería de la estructura de la Web 3. Minería del uso de la Web
Introducción Minería del contenido de la Web Es el descubrimiento de información útil desde los contenidos textuales y gráficos de los documentos Web, y tiene sus orígenes en el procesamiento del lenguaje natural y en la recuperación de la información.
Introducción Minería de la estructura de la Web Es el proceso de descubrir el modelo subyacente a la estructura de enlaces de la Web y analiza, fundamentalmente, la topología de los hipervínculos (con o sin descripción de los enlaces)
Introducción Minería del uso de la Web Es la aplicación de técnicas de minería de datos para descubrir patrones de acceso (o hábitos) desde los sitios Web. El principal objetivo es entender y servir mejor las necesidades de las aplicaciones basadas en Web. <<Área de enfoque de la presente Tesis>>
Introducción Problema Los administradores o empresas que están detrás de los sitios Web no conocen la existencia de la información valiosa que se puede obtener analizando los patrones de movimiento que siguen sus usuarios dentro del sitio
Introducción Solucion propuesta “Sistema de análisis de patrones de navegación usando Web Mining” Aplicacion: “MineroWeb” Una herramienta que analiza información útil de la Web (archivos log de un servidor web) mediante el uso de técnicas de Web Mining: • Reglas de Asociacion • Secuencia de Patrones • Clusterizacion • Reportes estadisticos de trafico del sitio
Agenda • Introducción • Objetivos • Esquema Básico: Minería de Datos • Fuente de Datos • Preparación de los Datos • Métodos de Minería • Reportes Estadísticos • Tipos de Reportes • Conclusiones
Analizar los archivos Log de un servidor Web y así encontrar patrones de navegación de los visitantes de un sitio Web, usando técnicas de la minería de datos. Objetivos • Predecir la forma de navegar por el sitio (Reglas asociación) • Predecir el posible tiempo en que los usuarios volverán a navegar por ciertas páginas (Patrones secuenciales) • Agrupar a usuarios por la preferencia entre sus páginas (Clusterizacion)
Agenda • Introducción • Objetivo • Esquema Básico: Minería de Datos • Fuente de Datos • Preparación de los Datos • Métodos de Minería • Reportes Estadísticos • Tipos de Reportes • Conclusiones
Esquema básico: Minería de datos Datos Iniciales .log .log .log .log .log .log .log
Agenda • Introducción • Objetivos • Esquema Básico: Minería de Datos • Fuente de Datos • Preparación de los Datos • Métodos de Minería • Reportes Estadísticos • Tipos de Reportes • Conclusiones
Fuente de datos Materia prima de la Aplicacion: Log de un servidor Web 200.49.246.36 - - [01/Jan/2006:18:08:00 -0500] "GET /images/folder_icons/356.gif HTTP/1.0" 200 1447 200.49.246.36 - - [01/Jan/2006:18:08:00 -0500] "GET /images/folder_icons/100.gif HTTP/1.0" 200 841 200.49.246.36 - - [01/Jan/2006:18:08:00 -0500] "GET /images/lv_esquina3.gif HTTP/1.0" 200 82 200.49.246.36 - - [01/Jan/2006:18:08:01 -0500] "GET /images/folder_icons/310.gif HTTP/1.0" 200 1530 200.25.170.92 - - [01/Jan/2006:18:08:08 -0500] "GET /private/mycourses/website/folders/assignment/assignment_view.jsp?folderId=-2&websiteId=948 HTTP/1.1" 200 4531 200.25.170.92 - - [01/Jan/2006:18:08:09 -0500] "GET /images/reply.gif HTTP/1.1" 200 154 200.25.170.92 - - [01/Jan/2006:18:08:09 -0500] "GET /images/open.gif HTTP/1.1" 200 91 200.25.170.92 - - [01/Jan/2006:18:08:17 -0500] "GET /private/mycourses/website/folders/link_view.jsp?folderId=19&websiteId=948 HTTP/1.1" 200 3668 200.25.170.92 - - [01/Jan/2006:18:08:19 -0500] "GET /private/mycourses/website/folders/view.js HTTP/1.1" 200 406 200.10.150.20 - - [01/Jan/2006:18:08:27 -0500] "GET / HTTP/1.0" 200 18223 200.25.170.92 - - [01/Jan/2006:18:09:06 -0500] "GET /private/mycourses/website/folders/forums_view.jsp?folderId=20&websiteId=948 HTTP/1.1" 200 4060 200.25.170.92 - - [01/Jan/2006:18:09:08 -0500] "GET /images/newdoc.gif HTTP/1.1" 200 870 200.25.170.92 - - [01/Jan/2006:18:09:22 -0500] "GET /private/mycourses/website/email/index.jsp?folderId=7&websiteId=948 HTTP/1.1" 200 6978 200.25.170.92 - - [01/Jan/2006:18:09:28 -0500] "GET /servlet/UserPhotoServlet?userCode=9451 HTTP/1.1" 200 6634 252.113.176.247 - - [16/Feb/2006:00:06:00 -0500] "GET /images/KDnuggets_logo.gif HTTP/1.1" 200 784 "http://www.kdnuggets.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MyIE2)" Formatos de archivo: ELF y CLF
Contenido página Log servidor Web 152.152.98.11 - - [16/Nov/2005:16:32:50 -0500] "GET … HTTP/1.1" 200 152.152.98.11 - - [16/Nov/2005:16:32:50 -0500] "GET /gps.html HTTP/1.1" 200 152.152.98.11 - - [16/Nov/2005:16:32:50 -0500] "GET /inicio.html/ HTTP/1.1" 200 … Ejemplo: Log servidor Web Fuente de datos Servidor usuarios http://www.sidweb.espol.edu.ec/inicio.html
Fuente de datos Ejemplo: Una línea del Log 152.152.98.11 - - [16/Nov/2005:16:32:50 -0500] "GET /jobs/ HTTP/1.1" 200 15140 "http://www.google.com/search?q=salary+for+data+mining&hl=en&lr=&start=10&sa=N" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)“
Campo: IP152.152.98.11 - - [16/Nov/2005:16:32:50 -0500] "GET /jobs/ HTTP/1.1" 200 15140 "http://www.google.com/search?q=salary+for+data+mining&hl=en&lr=&start=10&sa=N" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)“ Fuente de datos 152.152.98.11 Dirección IP del cliente que accesa
Fuente de datos Campo: Nombre, Login152.152.98.11- - [16/Nov/2005:16:32:50 -0500] "GET /jobs/ HTTP/1.1" 200 15140 "http://www.google.com/search?q=salary+for+data+mining&hl=en&lr=&start=10&sa=N" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)“ - El nombre del usuario remoto (usualmente omitido y reemplazado por un “-”) - Login del usuario remoto (tambien usualmente omitido y reemplazado por un “-”)
tiempo: Hh:mm:ss Time Zone: (+|-)HH00 Relativo a GMT -0500 es US EST Fuente de datos Campo: Fecha/Tiempo/TZ152.152.98.11- -[16/Nov/2005:16:32:50 -0500] "GET /jobs/ HTTP/1.1" 200 15140 "http://www.google.com/search?q=salary+for+data+mining&hl=en&lr=&start=10&sa=N" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)“ [16/Nov/2005:16:32:50 -0500] Fecha: dd/mm/yyy
Fuente de datos Campo: Pedido152.152.98.11- -[16/Nov/2005:16:32:50 -0500]"GET /jobs/inicio.html HTTP/1.1" 200 15140 "http://www.google.com/search?q=salary+for+data+mining&hl=en&lr=&start=10&sa=N" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)“ "GET /jobs/inicio.html/ HTTP/1.1" Metodo: GET HEAD POST … Protocolo HTTP: Ej: HTTP/1.0 o HTTP/1.1 URL: Relativo al dominio
Fuente de datos Campo: Codigo estado152.152.98.11- -[16/Nov/2005:16:32:50 -0500]"GET /jobs/ HTTP/1.1"200 15140 "http://www.google.com/search?q=salary+for+data+mining&hl=en&lr=&start=10&sa=N" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)“ 200 Codigo de estado (respuesta). Mas importantes son: • 200 – OK (mas frecuente) • 206 – acceso parcial • 301 – permanentemente redireccionado • 302 – temporalmente redireccionado • 304 – no modificado • 404 – no encontrado
Fuente de datos Campo: Referrer152.152.98.11- -[16/Nov/2005:16:32:50 -0500]"GET /jobs/ HTTP/1.1"200 15140 "http://www.google.com/search?q=salary+for+data+mining&hl=en&lr=&start=10&sa=N" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)“ http://www.google.com/search?q=salary+for+data+mining&hl=en&lr=&start=10&sa=N URL del visitante desde donde vino a mi página
Fuente de datos Campo: User Agent152.152.98.11- -[16/Nov/2005:16:32:50 -0500]"GET /jobs/ HTTP/1.1"200 15140 "http://www.google.com/search?q=salary+for+data+mining&hl=en&lr=&start=10&sa=N" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)“ "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)“ User agent (browser)
Agenda • Introducción • Objetivo • Esquema Básico: Minería de Datos • Fuente de Datos • Preparación de los Datos • Métodos de Minería • Reportes Estadísticos • Tipos de Reportes • Conclusiones
Preparación de los Datos Limpieza • Un registro válido debe: • Todos los campos deben ser diferente al valor null. • El campo CodEstado debe tener alguno de los valores válidos para nuestro análisis. • El campo NombreArchivo debe almacenar un tipo de archivo diferente a: jpg, bmp, gif, exe, js, css, pdf, doc, txt. • Si se considera como registro válido es almacenado en la tabla Registro_Log con su respectivo id.
Preparación de los Datos Sesionización • Identificación de usuarios • Identificación de páginas • Registrar sesiones en tablas de acuerdo a usuario y tiempo. • Cada sesión tiene un usuario • Un usuario puede tener varias sesiones • La sesión esta limitada por el tiempo de sesionización. • Formato resumido, rápida adaptación a algoritmos.
Agenda • Introducción • Objetivo • Esquema Básico: Minería de Datos • Fuente de Datos • Preparación de los Datos • Métodos de Minería • Reportes Estadísticos • Tipos de Reportes • Conclusiones
Reglas de Asociación Encontrar las asociaciones que se producen entre los diferentes sitios de la página Web cuando los usuarios acceden a ésta. Preparación Data Generación de Matriz Algoritmo Apriori Reglas de Asociación
Reglas de Asociación X Y [/public/about.jsp ]---->/public/team.jsp Soporte: Soporte (X Y) = Probabilidad (X U Y) Confianza: Confianza (X Y) = Probabilidad (X / Y)
Reglas de Asociación Preparación de Data Registro_Log Registro_Paginas_Site Registro_Sesion
S1= (0+1+1+0+1+0+…+0)/# sesiones Reglas de Asociación Generación Matriz
2 Sesión / Página 1 2 3 4 5 ….. # páginas 1 1 0 1 0 1 0 ….. 0 Candidatos antecedentes (Sop > Soporte) 2 1 0 1 1 0 ….. 0 3 1 1 0 1 0 ….. 0 4 0 1 1 1 0 ….. 0 5 1 0 0 0 0 ….. 0 1 6 0 1 0 0 1 ….. 0 3 : : : : : : ….. 0 5 : : : : : : ….. 0 # sesiones 0 1 0 1 0 ….. 0 20 S1 S2 ……S5 ……Sn 3 12 Solo si conf(12) > confianza confianza=Prob (X / Y) 1 1 2 3 6 20 21 Reglas de Asociación Algoritmo Apriori (matriz , soporte, confianza) Usa conocimiento a priori de las propiedades de los ítems (páginas) frecuentes que ya se han encontrado. “Si un conjunto no puede pasar un test, todos sus súper conjuntos también fallarán el mismo test”
Preparación Data Generación de Matriz Generación FBP-Arbol Algoritmo Patrones Secuenciales Patrones Secuenciales Descubrir patrones en los cuales la presencia de un conjunto de ítems es seguido por otro ítem en orden temporal. Encontrar y predecir el comportamiento de los visitantes de un sitio Web con respecto al tiempo.
Patrones Secuenciales [x1x2x3] [y1y2] en t días [/public/team.jsp ->]---->/public/findUsers.jsp-> /private/mycourses/website/folders/assignment/assignment_view.jsp-> /public/portalDocument.js en 2 dias Soporte: Soporte (X Y) = Probabilidad (X U Y) Confianza: Confianza (X Y) = Probabilidad (X / Y)
Patrones Secuenciales Generación Matriz • TM[i,j] representa el número de veces que los usuarios han visitado la página j después de la página i. • Umbral • FTM caminos frecuentes • Si un 2-camino(camino con 2 páginas) no es frecuente un 3-camino(camino con 3 páginas) del que sea subcamino el 2-camino tampoco lo será (propiedad Apriori).
Antecedente Punto de Ruptura Consecuente Consecuente Patrones Secuenciales Generación FBP-Árbol (Matriz FTM, Lista de Caminos) Pag 1 Pag 2 30 Pag 4 64 Pag 3 78 Pag 5 118
Patrones Secuenciales Algoritmo Patrones (FBP-Arbol, soporte, confianza) • La confianza de una regla de comportamiento-frecuente se representa como conf(PIND PDEP) y define la probabilidad de recorrer el camino PDEP una vez se ha recorrido el camino PIND. • Se recorre el árbol desde las hojas al nodo raíz. • Teniendo en cuenta el soporte de cada camino las reglas se son calculados como sigue. • Buscar en hojas el punto de ruptura. • Si la hoja no es Punto ruptura, ir a hoja anterior. • Si la hoja es Punto Ruptura, calcular confianza. • Si conf > confianza, genera Patrón • Si conf < confianza, podar rama de árbol.
Clusterización Encontrar entre los distintos visitantes grupos con características similares de navegación Web. Proporciona como salida k conjuntos de patrones sobre las características similares de navegación (páginas visitadas) de los usuarios. Preparación Data Generación de Matriz Algoritmo K-Medias Grupos
Clusterización Cluster #1 /js/tiny_mce/blank.htm /js/tiny_mce/themes/advanced/color_picker.htm Cluster #2 /js/tiny_mce/profiles/blank.htm
Clusterización Generación Matriz M[i,j] representa al usuario i visitando la página j en algunas de las sesiones iniciadas por el usuario i.
1.Seleccionar centroides aleatorios 2. Asignar cada objeto al grupo cuyo centróide sea el más cercano al objeto. 3. Cuando todos los objetos hayan sido asignados, recalcular la posición de los k centróides. Distancia Euclídea δ²E (Xi, Xj) = || Xi-Xj||2 = (Xi - Xj)T(Xi - Xj) Determinar la media de cada grupo Clusterización Algoritmo K-Medias (Matriz, soporte) 4. Repetir los pasos 2 y 3 hasta que los centróides no varíen
Agenda • Introducción • Objetivo • Esquema Básico: Minería de Datos • Fuente de Datos • Preparación de los Datos • Métodos de Minería • Reportes Estadísticos • Tipos de Reportes • Conclusiones
Reportes Estadísticos Objetivos • Análisis del sitio Web • Links o páginas mas visitados • Cantidad de usuarios que visitan el sitio Web • La descarga de bytes de nuestro sitio Web • Mejorar el sitio Web
Agenda • Introducción • Objetivo • Esquema Básico: Minería de Datos • Fuente de Datos • Preparación de los Datos • Métodos de Minería • Reportes Estadísticos • Tipos de Reportes • Conclusiones