2 ESTADO DEL ARTE
3.6 Despliegue
Esta sección va enfocada a la consecución de las estrategias derivadas de los resultados de la minería de datos obtenidos, su monitorización y fases finales de cierre de proyecto.
En nuestro caso se plantea la gestación de aplicaciones web como vía de consulta de los modelos generados. Se ha bautizado de manera simbólica a la aplicación del servicio como ALESIA (Ayuda a La Exclusión Social mediante Inteligencia Artificial). Una buena opción puede ser la adopción de sistemas basados en arquitecturas RESTful [48] debido, entre otras cuestiones, a la ventaja de trabajar “sin estado” para este tipo de consultas puesto que un usuario puede preguntar por una predicción para una serie de atributos, sin que el servidor necesite de un estado o de una sesión con respecto a dicho usuario para realizar las consultas al modelo. Dentro de otra casuística dependiente de otros modelos de negocio o situaciones del proyecto se puede plantear cualquier tipo de sistema para aprovechar el conocimiento obtenido del proceso de minería de datos. Sin embargo para este trabajo, se considera la forma más acertada, concisa y que mejor puede representar un ejemplo real de herramienta, es una aplicación de estas características.
Se ha decidido realizar la parte de herramienta web en Java mediante Servlet [49] porque permite un desarrollo rápido de aplicaciones ligeras, que sumado a la exportación de los modelos en forma de POJO como se mencionó al final de la sección 3.4, se logra la obtención de un prototipo totalmente operativo de herramienta en muy poco tiempo. De esta forma se le permite al desarrollador centrarse por un lado en aspectos más orientados a la interfaz de usuario, o por otro lado en la revisión por expertos del modelo mediante el propio uso de la herramienta. Todo ello sin invertir excesivos recursos en las capas más internas que puedan ser de un carácter más genérico del campo de las aplicaciones y servicios web. El plan de monitorización y seguimiento asociado podría consistir en el añadido de ciclos de vida para aumentar los requisitos, mejorar la calidad de los resultados u otros aspectos de interés para el cliente o el usuario.
A manera de resumen, se puede observar un diagrama de interacción software en la Figura 13. En él se puede observar el flujo de trabajo y cómo están relacionadas las distintas partes del trabajo. Comenzando por la esquina superior izquierda, hace referencia a la extracción de datos desde la fuente, que aunque en el caso particular ya se disponía directamente de ficheros13, en esta parte debería ir el software dedicado a ello, incorporando por ejemplo las consultas SQL en el caso de que la fuente residiera en una base de datos. Posteriormente mediante R se exploran, limpian y preparan los datos, apoyándose en otras herramientas como OpenRefine. A través de H2O se
13
35
realizarían las llamadas para el entrenamiento y validación de los modelos, adaptable a infraestructuras ligeras o de grandes capacidades para los casos en los que las características de los datos impliquen un entorno Big Data, pudiendo acoplar entre H2O y los recursos físicos, capas dedicadas a ello como Spark o TensorFlow, sin que se vea afectado el desarrollo en R y adquiera una mayor independencia de la infraestructura, volviendo a esta sección más manejable y extrapolable a otras situaciones. Los modelos seleccionados son exportados como POJOs y enviados junto a la sección de desarrollo web. Todas las tecnologías implicadas en esta última parte (Java, HTML, CSS, JavaScript, etc) se desplegarán en un servidor web. Se ha elegido GlassFish14 por su alta compatibilidad y sencillez operacional para el desarrollador.
En la Figura 14 se puede ver la página de inicio de la aplicación. En la Figura 15 y la Figura 16 el formulario de datos de entrada. En la Figura 17 y en Figura 18 casos de predicciones para cada clase. Actualmente la web cuenta con un formulario de 12 variables y con posibilidad de elegir 2 modelos diferentes basados en Deep Learning y Random Forest.
14
http://www.oracle.com/us/products/middleware/cloud-app-foundation/glassfish- server/overview/index.html
36 Acceso a recursos, puede
incluir interacción con otras infraestructuras como Spark o TensorFlow Limpieza y Preparación Despliegue Web Interacción con el Usuario
Sistema Operativo, Sistema de Ficheros y Recursos Asociados Entrenamiento y Validación Generar POJO PredictionServlet.java ModeloPOJO.java h2o-genmodel.jar “otras librerías y dependencias…”
Java Virtual Machine
index.html predict.html output.html … bootstrap “otraslibrerías relacionadas con la interfaz de usuario” GenerarModelos.R T
Acceso a recursos, puede incluir interacción con otras infraestructuras como Spark o TensorFlow Limpieza y Preparación Despliegue Web Interacción con el Usuario
Sistema Operativo, Sistema de Ficheros y Recursos Asociados D Entrenamiento y Validación Generar POJOO PredictionServlet.java ModeloPOJO.java h2o-genmodel.jar “otras librerías y dependencias…”
Java Virtual Machine
index.html predict.html output.html … bootstrap “otras librerías relacionadas con la interfaz de usuario” GenerarModelos.R DatosAdult
37
38
39
40
Figura 17. Ejemplo de predicción con resultado clase positiva.
41
4
RESULTADOS
En esta sección se muestran bajo qué parámetros se han construido los modelos, así como un resumen de las métricas más relevantes para cada experimento realizado. Posteriormente se comentan algunos modelos que podrían resultar de interés por sus características.