Grado en Matema´tica Computacional Estancia en Pra´cticas y Proyecto Final de Grado Algoritmos de aprendizaje automatizado para el meta compresor de datos Blosc Supervisor: Autor: Francesc Alted Abad Alberto Sabater Morales Tutor acad´emico: Amelia Simo´ Vidal Fecha de lectura: 8 de mayo de 2017 Curso acad´emico 2016/2017 Resumen Estedocumentorecopilalosdetallesyprocedimientosm´asimportantesdelProyectodeFinal de Grado realizado a partir de la Estancia en Pr´acticas en la empresa de Francesc Alted. El principalobjetivofueeldesarrollodealgoritmosdeaprendizajeautomatizadoparaelcompresor de datos Blosc. Actualmente,elcompresorBlosc disponedetantasopcionesaconfigurarparaelusuarioque resulta dif´ıcil conseguir la ´optima para cada caso de uso y adem´as requiere tener conocimientos sobre el mismo para utilizarlo de forma eficaz. Con el objetivo de reducir la complejidad de uso, durante la estancia en pr´acticas se desarrollaron algoritmos de clasificaci´on supervisada para que escogieran las opciones ´optimas por el usuario, segu´n el resultado que´este quisiera obtener. Adem´as de los procedimientos seguidos en el desarrollo de estos algoritmos, tambi´en se detallan los fundamentos te´oricos en los que se basan y se realiza una comparativa entre los mismos en cuanto a precisi´on y rendimiento. Las t´ecnicas de clasificaci´on supervisada que se han utilizado son: an´alisis discriminante, regresi´on multinomial, m´aquinas de vector soporte, vecinos m´as pr´oximos y bosques aleatorios. Palabras clave Compresi´on, Aprendizaje autom´atico, Clasificaci´on supervisada Keywords Compression, Machine learning, Supervised classification. 4 ´ Indice general 1. Introducci´on 9 1.1. Contexto y motivaci´on del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2. Estancia en pr´acticas 11 2.1. Introducci´on. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2. Software utilizado. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2.1. Blosc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2.2. Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.3. Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.2.4. HDF5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.2.5. Jupyter Notebook . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4. Metodolog´ıa y tareas realizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.4.1. Generaci´on de datos de pruebas de compresi´on con Blosc . . . . . . . . . 16 2.4.2. An´alisis de los datos recogidos . . . . . . . . . . . . . . . . . . . . . . . . 18 2.4.3. Generaci´on de datos de entrenamiento . . . . . . . . . . . . . . . . . . . . 19 5 2.4.4. An´alisis de las t´ecnicas de aprendizaje automatizado . . . . . . . . . . . . 21 2.5. Planificaci´on temporal de las tareas . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.6. Grado de consecuci´on de los objetivos propuestos . . . . . . . . . . . . . . . . . . 24 2.7. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3. Algoritmos clasificadores de aprendizaje automatizado 25 3.1. Motivaci´on y objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.2. M´etricas de puntuaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.3. An´alisis discriminante lineal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.3.1. Clasificaci´on entre dos poblaciones . . . . . . . . . . . . . . . . . . . . . . 28 3.3.2. Generalizaci´on para varias poblaciones . . . . . . . . . . . . . . . . . . . . 31 3.4. Regresi´on multinomial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.4.1. Regresi´on log´ıstica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.4.2. Generalizaci´on para G poblaciones: regresi´on multinomial . . . . . . . . . 36 3.5. A´rboles de decisi´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.5.1. Algoritmo CART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.5.2. Bosques aleatorios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.6. Vecinos m´as pr´oximos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.7. Ma´quinas de vector soporte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4. An´alisis de los Resultados 45 4.1. An´alisis de los datos de pruebas de compresi´on . . . . . . . . . . . . . . . . . . . 45 4.2. Generaci´on de los datos de entrenamiento . . . . . . . . . . . . . . . . . . . . . . 48 6 4.3. An´alisis de los algoritmos de clasificaci´on . . . . . . . . . . . . . . . . . . . . . . 52 4.3.1. An´alisis individual: Bosques aleatorios . . . . . . . . . . . . . . . . . . . . 52 4.3.2. Comparativa de algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . 58 5. Conclusiones 65 A. Generador de datos de las pruebas de compresi´on 69 A.1. C´odigo test data generator.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 B. An´alisis descriptivo de las pruebas de compresi´on 77 B.1. C´odigo custom plots.py . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 B.2. Cuaderno blosc test analysis.ipynb . . . . . . . . . . . . . . . . . . . . . . . . . . 87 C. Generador de los datos de entrenamiento 109 C.1. Cuaderno training data generator.ipynb . . . . . . . . . . . . . . . . . . . . . . . 110 D. An´alisis de los algoritmos de clasificaci´on 115 D.1. Programas Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 D.2. Cuaderno lda logit analysis.ipynb . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 D.3. Cuaderno SVM analysis.ipynb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 D.4. Cuaderno KNeig analysis.ipynb . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 D.5. Cuaderno RFC analysis.ipynb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 D.6. Cuaderno classifiers comparison.ipynb . . . . . . . . . . . . . . . . . . . . . . . . 150 7 8 Cap´ıtulo 1 Introduccio´n 1.1. Contexto y motivaci´on del proyecto Este Proyecto de Final de Grado, junto a la Estancia en Pr´acticas forma parte del plan de formaci´on establecido por el Grado en Matem´atica Computacional. El objetivo consisti´o en profundizar en las t´ecnicas de aprendizaje automatizado o clasificaci´on supervisada y su aplicacio´n a la mejora de un compresor de datos denominado Blosc. A lo largo de los an˜os se ha empleado la compresi´on para superar limitaciones f´ısicas de la inform´atica. Desde conseguir transmitir informaci´on m´as r´apido cuando las conexiones a Internet no alcanzaban ni para descargar las noticias de la localidad, hasta acelerar el proceso de entrenamiento de un algoritmo de aprendizaje autom´atico [9]. Para casos como estos resulta fundamental el uso de librer´ıas de compresi´on ultra r´apidas como Blosc, que permiten acelerar procesos de entrada/salida que a d´ıa de hoy soportan enormes cantidades de tr´afico, gracias a la enorme cantidad de datos que se generan, tanto por redes sociales, como por dispositivos inteligentes conectados a Internet. Este proyecto nace motivado por la necesidad de simplificar el uso del meta compresor de datos Blosc, una librer´ıa desarrollada por Francesc Alted que permite compresi´on y descom- presi´on muy r´apida de datos sin p´erdida de informacio´n. A la hora de utilizar Blosc el usuario debe estar familiarizado con el mismo y las opciones que ofrece, con el objetivo de superar esta barrera, se aplicar´an diversas t´ecnicas de aprendizaje automatizado para desarrollar un algo- ritmo que decida por el usuario las opciones de Blosc segu´n los resultados que quiere obtener. Estos algoritmos b´asicamente consisten en t´ecnicas de clasificaci´on supervisada donde a partir de unas variables descriptivas o caracter´ısticas x = (x ,...,x ) se infiere la variable respuesta i i1 ip o valor objetivo y . En este proyecto las caracter´ısticas son los resultados de la compresi´on que i 9 desea el usuario y las caracter´ısticas de los datos; y las variables objetivo son las opciones de Blosc. EnelCap´ıtulo2,sedetallantodoslosprocedimientosseguidosdurantelaestanciaenpr´acti- cas,desdelageneraci´ondelosdatosdepruebasdecompresi´on,hastalosan´alisisycomparativas de algoritmos de aprendizaje automatizado. En el Cap´ıtulo 3, se presentan los fundamentos te´oricos de las t´ecnicas utilizadas. El an´alisis de las t´ecnicas y los resultados se detallan en el Cap´ıtulo 4 y por u´ltimo en el Cap´ıtulo 5 se presentan las conclusiones. 10
Description: