Tutorial de Minería de Datos Dr. Ricardo Blanco Vega 14 de noviembre de 2016
Tabla de Contenido Minería de Datos en WEKA... 4 Desarrollo Rápido de Sistemas de Predicción... 14 Aplicación de la metodología CRISP-DM... 17 Programar con Java usando WEKA... 20 2
MOTIVACIÓN Aprender de forma práctica la Minería de Datos. Se utiliza WEKA y Java para crear sistemas de predicción. Se enseña cómo aplicar la metodología CRISP-DM en el desarrollo de proyectos de Minería de Datos. Se muestra cómo desarrollar de forma rápida un sistema de predicción. También cómo programar con Java un sistema de predicción tomando como base un modelo de predicción comprensible o incomprensible. CONTENIDO 1. Minería de Datos en WEKA 2. Desarrollo Rápido de Sistemas de Predicción 3. Aplicación de la metodología CRISP-DM 4. Programar con Java usando WEKA ESTILO DE EXPOSICIÓN Se imparte una práctica por hora con un total de 4 horas. Las prácticas son frente a computadora. Se debe reservar un laboratorio de cómputo. PREREQUISITOS Tener conocimientos básicos de Java en especial si conocer el IDE de Netbeans. Si se lleva su propia laptop debe tener instalado Netbeans 8+ con la versión SE y WEKA 3.8+ La sala de laboratorio solamente soporta 40 participantes. INSTRUCTOR Ricardo Blanco Vega Doctor en Programación Declarativa e Ingeniería de la Programación. Otorgado en 2007 por la Universidad Politécnica de Valencia, España. Maestro en Ciencias en Ciencias Computacionales por el Instituto Tecnológico de Nogales. Docente en la Facultad de Ingeniería de la Universidad Autónoma de Chihuahua (21 años). Maestro Jubilado del Tecnológico de Chihuahua II con 34 años de servicio. Desarrollador de Software en la empresa Tauridas desde 1º. Marzo del 2016 a la fecha. Perfil Deseable PROMEP desde 2007. Primer perfil deseable en el Instituto Tecnológico de Chihuahua II. 3
Minería de Datos en WEKA Se genera un modelo de predicción utilizando el programa explorer de WEKA. Accediendo al Explorer Suponiendo que WEKA ya está instalado en un ambiente Windows Vista o Windows 7. 1- Dar click en botón inicio Figura 1. Menú de inicio al seleccionar el botón inicio 2- Se escribe weka (no es sensitivo a minúsculas o mayúsculas). Figura 2. Escribir weka 4
3- Se selecciona Weka 3.7 Figura 3. Elección de Weka 3.7 4- Aparece la interfaz principal de WEKA. Figura 4. Pantalla principal WEKA 5
5- Para ejecutar el explorador de Weka se da clic en el botón de Explorer. El explorador es de los programas más importantes pues permite tareas de: 1. Preprocesado de los datos y aplicación de filtros. 2. Clasificación. 3. Clustering. 4. Búsqueda de Asociaciones. 5. Selección de atributos. 6. Visualización de datos. Figura 5. Botón del Explorer 6- Finalmente se obtiene la pantalla principal del Explorer Figura 6. Interfaz inicial del Explorer. 6
Creación de un modelo de predicción Ahora se explica cómo realizar un modelo de clasificación a partir del conjunto de datos weather. Se sabe, a manera de descripción del problema, que un grupo de personas que les gusta jugar tenis se levantan temprano, se preparan y trasladan al centro deportivo. Regularmente juegan pero existen ocasiones en donde no lo hacen. Por lo que están interesados en conocer con anticipación si jugarán o no en un determinado día. Para ello registran los datos del clima dado que ellos sospechas que esto es lo que influye de manera significativa sobre la decisión de jugar, aunque siempre juegan cuando está nublado no saben de forma explícita como se toma la decisión en otros casos. Los valores del clima que almacenan en el conjunto de datos son: como está el cielo (outlook), la temperatura (temperature), el porcentaje de humedad (humidity), la presencia o ausencia del viento (windy) y por último si jugaron o no. Para abrir el ejemplo se debe dar click en el botón Open file... situado en la parte izquierda superior de la primera página del programa. Figura 7. Abrir archivo. Automáticamente, genera un acceso a archivos donde se debe buscar la ruta donde se encuentran los conjuntos de datos de ejemplo de WEKA. Hay que entrar en la carpeta de Weka-3-7 que está en archivos de programa. 7
Figura 8. Ubicación de la carpeta de Weka. Luego a la carpeta de data. Para el ejemplo de este documento se utiliza el archivo weather. Figura 9. Seleccionando el ejemplo weather De inmediato, aparece una pantalla con los atributos del ejemplo, su peso, instancias, etc. 8
Figura 10. Archivo cargado mostrando sus características. Para crear un modelo de clasificación se utiliza el clasificador J48. Se cambia a la página Classify. Se da click en el botón Choose. Figura 11. Eligiendo clasificador 9
Se elige clasificadores, después trees y J48. Se puede observar que el clasificador ha sido elegido correctamente ya que aparece en el recuadro de texto que se encuentra enseguida del botón Choose Figura 12. Clasificador J48 elegido. Para crear el modelo se debe oprimir el botón Start. En este ejemplo se observa que se tiene una precisión (instancias correctamente clasificadas) del 64.28% por lo que hay que analizar si es posible una opción con la que se obtenga un mejor rendimiento. Figura 13. Numero de instancias clasificadas correctamente 10
Para corroborar cual de los atributos tiene un menor peso y mayor variabilidad se entra en la pestaña superior Select attributes, se elige el evaluador GainRatioAttributeEval y se click en Start. En la parte baja donde viene escrito Ranked attributes se observa los atributos del más al menos importante. Siguiendo con este ejemplo, entonces se elige el atributo temperature para ser removido. Figura 14. Elección del atributo a remover Para aplicar el filtro Remove es necesario moverse nuevamente a la pestaña inicial del preprocesado, elegir el filtro remove, seleccionar el atributo a remover y dar click en el botón inferior de leyenda Remove. Figura 15. Removiendo un atributo 11
Al corroborar nuevamente la precisión se verifica que efectivamente el porcentaje de clasificación correcto ha llegado a un 71.42%. Figura 16. Obteniendo mejores resultados. Al llegar al porcentaje mayor, o que se considere mas efectivo para el ejemplo en cuestión entonces de procede a guardar los datos y el modelo en una carpeta de trabajo. El archivo de datos se guarda dando click en el botón derecho superior con la leyenda Save, tomando en cuenta que los dos archivos a guardar deben estar ubicados dentro de la misma carpeta y deben tener el mismo nombre para poder correr la aplicación de predicción sin problemas, en nuestro caso utilizar el nombre de ejemplo. 12
Figura 17. Guardando los datos Para guardar el modelo hay que ubicarse en la pestaña de clasificación, elegir el modelo desarrollado, dar click derecho y elegir Save model. Figura 18. Guardando el modelo 13
Desarrollo Rápido de Sistemas de Predicción El presente documento describe cómo realizar el desarrollo de un sistema de predicción utilizando Java y WEKA (Hall et. al., 2009). Desarrollo A continuación se describen los pasos necesarios para primero crear un modelo de predicción y finalmente como utilizarlo en la construcción de un programa de predicción. Creación del programa de predicción Enseguida se procede a copiar la librería y la aplicación predicción.jar (Blanco et. al., 2010). Estos recursos se obtienen de la carpeta dist del proyecto predicción que se les proporciona en la plataforma. Se pegan en la carpeta donde se guardaron los archivos anteriores, quedando como lo muestra la Figura 19. Figura 19. Copiando los archivos de apoyo Por último, se hace la prueba de la aplicación dando doble click en prediccion.jar. 14
La pantalla principal se muestra y se eligen los valores para realizar la estimación del resultado. Figura 20. Corriendo el programa Y por último, ser realiza una predicción introduciendo los datos y haciendo clic sobre el botón predicir. El resultado muestra una caja de dialogo en la que muestra la clase que se predice además de la probabilidad con la que se hace la estimación. Figura 21. Resultado de la predicción. Conclusiones Para desarrollar un sistema de predicción se requieren los pasos generales de creación de un modelo de predicción y creación del programa de predicción. Con el uso del proyecto de predicción realizado en Java es muy sencillo desarrollar sistemas de predicción. La dificultad está en la búsqueda del mejor modelo de predicción. 15
Recomendaciones Realice la práctica. Busque encontrar un mejor modelo cambiando de algoritmo de Minería de datos por ejemplo una red neuronal (en el grupo de functions MultilayerPerceptron). El modelo sálvelo con el mismo nombre (ejemplo). Repita la práctica con otro conjunto de datos por ejemplo el de lentes de contacto (contact-lenses.arff). Por favor, lea el artículo (Blanco et. al., 2010). Posteriormente analice el proyecto predicción realice una documentación de ese análisis. Referencias Hall, Mark; Frank, Eibe; Holmes, Geoffrey; Pfahringer, Bernhard; Reutemann, Peter; Witten, Ian H. (2009). The WEKA Data Mining Software: An Update; SIGKDD Explorations, Volume 11, Issue 1. Blanco Vega, Ricardo; Blanco Vega, Humberto; De la Garza Gutiérrez, Hernán; Camacho Ríos, Alberto; Ibarra Murrieta, Blanca Maricela; Anchondo, Ramón. CREACIÓN AUTOMÁTICA DE PROGRAMAS DE PREDICCIÓN. 3er Congreso Internacional de Investigación CIPITECH 2010. Parral, Chih., México, 13-15 de octubre 2010. ISBN 978-607-7912-08-8. Pág 199 a 205 16
Aplicación de la metodología CRISP-DM CRISP-DM (Cross-Industry Standard Process for Data Mining) es un modelo de proceso de minería de datos que describe los enfoques comunes que utilizan los expertos en minería de datos. Incluye un modelo de referencia y una guía para llevar a cabo un proyecto de minería de datos. La guía puede ser muy útil como referencia a la hora de establecer una formulación o planificación de un programa de minería de datos adaptado a las necesidades de cada organización. Como modelo de proceso, CRISP-DM ofrece un resumen del ciclo vital de minería de datos. El modelo y la guía se conforman de seis fases principales, y además existe la realimentación bidireccional entre algunas fases, es decir, algunas fases pueden obligar a revisar parcial o totalmente las fases anteriores. 17
Ciclo de Vida en Espiral A continuación, se describen las fases, subfases y subproductos del ciclo de vida del modelo CRISP-DM: 1. Análisis del Problema. La primera fase se centra en conocer los objetivos y requerimientos del proyecto desde una perspectiva de negocio, plantandolo en una definición del problema de minería de datos y un plan preliminar diseñado para obtener objetivos. Consta de cuatro subfases: Establecimiento de los Objetivos de Negocio: Es fundamental analizar cuáles son los objetivos del negocio para abordar las cuestiones que son realmente importantes y beneficiosas para la organización. Evaluación de la Situación: Esta tarea involucra una búsqueda detallada de los recursos, restricciones, suposiciones y otros factores al definir el plan del proyecto. La primera salida de esta subfase es un inventario de recursos, incluyendo el personal, los datos y conocimiento previo existente, recursos informáticos, software específico de minería de datos. Establecimiento de los Objetivos de la Minería de Datos: Deben especificarse en términos de minería de datos, y no en términos de negocio. El productor principal de esta subfase es un listado de los objetivos de minería de datos, otro son los criterios de éxito para los objetivos de minería de datos que ya pueden expresarse en términos de precisión, error cuadrático medio, número de reglas, etc. Generación del Plan del Proyecto: El plan del proyecto es la salida principal de esta subfase, que implica la comprensión del negocio y debe incluir todas las etapas a desarrollar en el proyecto, junto con la duración, los recursos requeridos, las entradas, las salidas y las dependencias. Este plan de proyecto es dinámico y debe actualizarse a medida que se avanza en el proyecto. 2. Análisis de los Datos: Según este estándar, se trata de recopilar y familiarizarse con los datos, identificar los problemas de calidad de datos y ver las primeras potencialidades o subconjuntos de datos que puede ser interesante analizar, (para ello es importante haber establecido los objetivos de negocio en la fase anterior). Esta fase consta de cuatro subfases: Recopilación Inicial de Datos: En esta subfase se produce el informe de recopilación. Descripción de Datos: Aquí se genera el informe de descripción. Exploración de Datos: En ella se genera el informe de exploración. Verificación de Calidad de Datos: Se verifica que los datos obtenidos sean adecuados. 18
3. Preparación de los Datos: El objetivo de esta fase es obtener la vista minable, aunque el estándar no use esta terminología en realidad se habla de dataset y de su descripción. Aquí se incluye la integración, selección, limpieza, y transformación. Esta fase consta de cinco subfases: Selección de Datos: Razones de inclusión / exclusión. Limpieza de Datos: Informe de limpieza de datos. Construcción de Datos: Atributos derivados, registros generados. Integración de Datos: Datos mezclados. Formateo de Datos: Datos reformateados. 4. Modelado: Es la aplicación de técnicas de modelado o de minería de datos propiamente dichas a las vistas minables anteriores. Esta fase consta de cuatro subfases: Selección de la Técnica de Modelado: Técnica de modelado, suposiciones de modelado. Diseño de la Evaluación: Diseño del test. Construcción del Modelo: Parámetros elegidos, modelos, descripción de los modelos. Evaluación del Modelo: Medidas del modelo, revisión de los parámetros elegidos. 5. Evaluación: Es necesario evaluar los modelos de la fase anterior, pero ya no solo desde un punto de vista estadístico respecto a los datos, como se realiza en la última subfase de la anterior, sino evaluar si el modelo se ajusta a las necesidades establecidas en la primera fase, es decir, si el modelo nos sirve para responder a algunos de los requerimientos del negocio. Esta fase posee tres subfases: Evaluación de los Resultados: Evaluación de los resultados de minería de datos, modelos aprobados. Revisar el Proceso: En esta subfase se inspecciona el proceso. Establecimiento de los Siguientes Pasos: Lista de posibles acciones, decisión. 6. Despliegue: Busca explotar la utilidad de los modelos, integrándolos en las tareas de toma de decisiones de la organización. Consta de cuatro subfases: Planificación del Despliegue. Planificación de la Monitorización y del Mantenimiento. Generación del Informe Final. Revisión del Proyecto. Esta metodología para proyectos de minería de datos no es la más actual o la mejor, pero es muy útil para comprender esta tecnología o extraer ideas para diseñar o revisar métodos de trabajo para proyectos de similares características. 19
Programar con Java usando WEKA El objetivo de esta práctica es hacer un sistema de predicción desde 0, tomando en cuenta los datos de algún caso que vienen por defecto en los datos de WEKA. En este caso se tomaron los datos de los lentes de contacto. Desarrollo Lo primero que debemos de hacer es crear un proyecto nuevo en Java Netbeans, y en los paquetes de fuente crear un formulario Jframe. Luego colocaremos 2 labels, 2 ComboBox, y dos botones. 20
Luego a los labels, les pondremos los nombres de Porcentaje de Lagrimeo y Astigmatismo. Un ComboBox tendrá los valores de reducido y normal, y el otro de No y Si. Un botón tendrá el texto de Qué tipos de lentes debo usar?. Y el último será el botón de salir. Le damos click en el botón que dice Qué tipos de lente debo usar? y escribimos el siguiente código: 21
En el botón de salir agregamos la siguiente línea de código para que haga su función. Y finalmente corremos nuestro sistema de predicción. Conclusión Es fácil realizar un sistema de predicción siempre y cuando entendamos los datos y veamos cual es la problemática que se nos presenta, para así poder desarrollar un sistema entendible, de calidad y sobre todo útil. Recomendaciones La recomendación que se hace es que no empiecen el sistema si no han comprendido los datos ni la problemática que hay que resolver. 22