UNIVERSIDAD DE GRANADA E.T.S. de Ingenierías Informática y de Telecomunicación Departamento de Ciencias de la Computación e Inteligencia Artificial Inteligencia de Negocio Guión de Prácticas Práctica 4: Escalabilidad en Grandes Conjuntos de Datos Curso 2016-2017 Cuarto Curso del Grado en Ingeniería Informática
Práctica 4 Escalabilidad en Grandes Conjuntos de Datos 1. Objetivos y Evaluación En esta cuarta práctica de la asignatura Inteligencia de Negocio veremos la eficiencia de algoritmos de clasificación al trabajar con grandes conjuntos de datos y estudiaremos métodos para facilitar la escalabilidad de dichos algoritmos. La práctica se calificará hasta un máximo de 1,75 puntos. Se valorará la calidad de los experimentos realizados, la interpretación de los resultados, la organización y redacción del informe, etc. 2. Descripción de los Problemas Trabajaremos con cuatro conjuntos de datos como se describe a continuación: 1. CoverType: Se trata de predecir el tipo de cobertura forestal a partir de variables cartográficas. El tipo de cobertura forestal real para una observación dada (celdas de 30 x 30 metros) se determinó a partir del Servicio Forestal de EE.UU. (USFS), Region 2 Resource Information System (RIS). Las variables independientes se obtuvieron a partir de datos procedentes originalmente de Geological Survey (USGS) y el USFS de EE.UU. Los datos contienen características que indican cualidades del terreno (altura, pendiente, distancia a superficies con agua, sombra en distintos momentos del día, etc.) así como características que indican la zona (cuatro áreas silvestres) y el tipo de suelo (40 valores posibles). Los datos corresponden a áreas silvestres ubicadas en el Parque Nacional Roosevelt del norte de Colorado que representan bosques con perturbaciones de origen humano mínimos, de modo que los tipos de cobertura forestal existentes son principalmente el resultado de procesos ecológicos y no de prácticas de gestión forestal. Los datos originales se encuentran en la dirección http://archive.ics.uci.edu/ml/datasets/covertype. 1
3 Recomendaciones 2 Este conjunto de datos cuenta con 581.012 instancias y 12 características (de las cuales 10 son numéricas y 2 nominales). La variable de clase tiene 7 categorías posibles. 2. KDDCup99: Se trata de una base de datos utilizada en The Third International Knowledge Discovery and Data Mining Tools Competition que se celebró conjuntamente con The Fifth International Conference on Knowledge Discovery and Data Mining (KDD 1999). En esa ocasión, la competición consistió en construir un detector de intrusiones en la red, es decir, un modelo predictivo capaz de distinguir entre malas conexiones (llamadas intrusiones o ataques) y conexiones normales buenas, empleando para ello tanto variables nominales como continuas. Se generaron datos de forma artificial que simulaban distintos tipos de conexiones. Los datos originales se encuentran en la dirección http://kdd.ics.uci.edu/databases/kddcup99/kddcup99.html y http: //archive.ics.uci.edu/ml/datasets/kdd+cup+1999+data. Este conjunto de datos cuenta con 4.898.431 instancias y 41 características (de las cuales 26 son reales y 15 nominales). La variable de clase tiene 23 categorías posibles. 3. PokerHand: Cada instancia de este conjunto de datos es un ejemplo de una mano de póker con cinco cartas procedentes de una baraja francesa de 52 naipes. Cada carta se describe mediante dos atributos (palo y número), habiendo por tanto un total de 10 características. El atributo de clase describe el tipo de mano de póker obtenido (parejas, color, full, etc.). Los datos originales se encuentran en la dirección http://archive.ics. uci.edu/ml/datasets/poker+hand. Este conjunto de datos cuenta con 1.025.010 instancias y 10 características (de las cuales 5 son numéricas y 5 nominales). La variable de clase tiene 10 categorías posibles. 4. Protein: Este tercer problema consiste en predecir un mapa de contacto de proteínas. Del problema original, compuesto de 631 variables y 32 millones de instancias, se ha seleccionado un subconjunto para esta práctica consistente en 20 variables y un millón de instancias escogidas aleatoriamente. La variable de clase tiene 2 categorías posibles. A modo de referencia, experimentos realizados en una máquina Intel R Core TM i7 CPU 870 @ 2,93GHz muestran que una ejecución de C4.5 sobre el total de datos de entrenamiento tarda en generar el modelo alrededor de 5 minutos en CoverType, 12 minutos en KDDCup99 y 30 minutos en PokerHand y Protein. 3. Recomendaciones Para un estudio de tiempos correcto, todos los experimentos deberán realizarse en la misma máquina evitando su sobrecarga con otros procesos durante las ejecuciones. En la documentación deberán indicarse las características del software y hardware utilizado (versión del sistema operativo y del resto del software utilizado, tamaño de memoria RAM, procesador, etc.). Se recomienda emplear versiones del sistema operativo, Weka y JRE de Java de 64 bits. Para
4 Tareas a Realizar 3 Java, podrá ser necesario emplear asignaciones de memoria (opción -Xmx****M o -Xmx*G) altas dentro de la disponibilidad de la máquina. Dado que se trabajará con conjuntos de datos de gran tamaño, la ejecución en software con entorno gráfico (GUI) puede ser considerablemente más lento e incluso inviable por cuestiones de consumo de RAM. Por tanto, se recomienda usar Weka en modo de línea de comandos (más información en http://weka.wikispaces.com/primer). Para su funcionamiento es necesario tener la variable de entorno CLASSPATH con la dirección del fichero weka.jar. Por ejemplo, la siguiente línea ejecuta C4.5 y vuelca el resultado en el fichero res.txt (entre los resultados obtenidos se incluye el tiempo de ejecución): java -Xmx2048M weka.classifiers.trees.j48 -t tra.arff -T tst.arff -i > res.txt A partir de la versión 3.7.12 no se acepta la opción -i para obtener estadísticas detalladas, ya se proporcionan sin necesidad de usar esta opción. Los modelos se pueden guardar en un archivo con la opción -d y pueden leerse con -l (obteniendo así la categoría predicha para cada instancia), lo cual puede ser útil durante el desarrollo de la práctica. Para obtener la confianza de predicción en cada instancia puede emplearse la opción -p 0 junto con -l (se puede añadir -distribution si se desea la probabilidad de cada clase). Para el tratamiento de los datos y la visualización puede emplearse software adicional a elección del alumno. 4. Tareas a Realizar La práctica consiste en estudiar la escalabilidad de algoritmos de clasificación en grandes conjuntos de datos y aplicar una técnica de estratificación para reducir los tiempos de ejecución. Se deberán resolver adecuadamente las dos tareas descritas a continuación (escalabilidad y estratificación) para obtener la máxima calificación de 1,75 puntos. La primera sección se valora con 0,5 puntos (0,25 si se trabaja solo con CoverType y KDDCup99 más 0,25 si también se usa PokerHand y Protein) y la segunda con 1,25 puntos (0,75 puntos si se trabaja con CoverType y KDDCup99 y 0,5 adicionales si también se usa PokerHand y Protein). 1. Estudio de escalabilidad: Para esta tarea se probarán con distintos subconjuntos de datos de entrenamiento de diferente tamaño y se analizarán los resultados en cuanto a tiempo de ejecución, precisión y tamaño del modelo de clasificación. En cada problema, se dividirá el conjunto total en uno de entrenamiento (80 %) y otro de prueba (20 %), es decir, se seguirá un método hold out. Cada experimento se analizará siempre sobre el conjunto de prueba para estudiar la precisión del modelo obtenido. En cuanto al entrenamiento, este subconjunto se dividirá a su vez en conjuntos de diferente tamaño para así poder analizar el efecto de la dimensión del problema respecto al número de instancias frente al tiempo requerido para el aprendizaje y la calidad de las soluciones obtenidas. Se probarán con subconjuntos del conjunto de entrenamiento de tamaño 20 %, 40 %, 60 %, 80 % y 100 %. Cada subconjunto de tamaño mayor contendrá a los subconjuntos de tamaño inferior. Por tanto, se sugiere dividir en cinco grupos el conjunto de entrenamiento para luego usar el
5 Entrega 4 primero de ellos en el caso del 20 %, los dos primeros para el 40 %, los tres primeros para 60 %, etc. Todas las particiones de datos se harán conservando la distribución original de las categorías de la clase. Se estudiarán dos algoritmos de aprendizaje para clasificación: C4.5 y Random Forest (sin paralelización y con al menos 50 árboles, opción -I 50, aunque pueden emplearse más si el tiempo computacional lo permite). En cada caso se generarán gráficas que muestren el comportamiento del algoritmo según el tamaño del conjunto de entrenamiento. El algoritmo Random Forest es mucho más ineficiente que C4.5, por lo que es posible que llegue a requerir mucho tiempo de ejecución. Para este caso, se permite no llegar a estudiar el comportamiento en los casos de mayor tamaño si el tiempo para su ejecución excede de seis horas. 2. Estratificación: En esta segunda tarea se propone aplicar una técnica de estratificación que permita reducir los tiempos de entrenamiento. Consistirá en ejecutar de forma independiente el algoritmo objeto de estudio (C4.5 y Random Forest) sobre cada uno de los cinco subconjuntos en los que se dividió el conjunto de entrenamiento en la tarea anterior (es decir, con un tamaño del 16 % sobre el conjunto de datos total). Cada subconjunto se empleará para entrenar el algoritmo de clasificación obteniendo un modelo (un árbol en C4.5 o varios árboles en Random Forest) en cada caso. Para calcular la precisión de la solución global sobre el conjunto de prueba se aplicarán dos modos de voto. Una primera versión consistirá en un voto simple entre la predicción hecha por los cinco modelos para cada instancia. La segunda versión será un voto ponderado por la confianza de predicción estimada. En caso de empate (situación que puede darse sobre todo en la primera versión), la predicción se resolverá escogiendo la solución propuesta por el modelo que demostró ser el más preciso sobre su correspondiente conjunto de entrenamiento. Se realizará un estudio comparativo entre los dos modos de votación. En ambas tareas se valorará positivamente el empleo de recursos de visualización adecuados para mostrar los resultados obtenidos. 5. Entrega La fecha límite de entrega será el viernes 20 de enero de 2017 hasta las 23:59. La entrega se realizará a través de la web de la asignatura en https://decsai.ugr.es. En un único fichero zip se incluirá todo el material creado necesario para las ejecuciones y análisis de resultados, la documentación de la práctica realizada en pdf y cualquier otro archivo que el alumno considere relevante. El nombre del archivo zip será el siguiente (sin espacios): P4-apellido1-apellido2-nombre.zip. Es decir, la alumna María Teresa del Castillo Gómez subirá el archivo: P4-delCastillo-Gómez-MaríaTeresa.zip. El documento pdf contenido en él tendrá el mismo nombre.