[en] In recent decades most companies and organizations have generated and stored huge amounts of data from various sources such as financial transactions, customer interactions, employee records and internal operations, among others. However, the mere storage of this data does not provide any usefulness or value, so it is necessary to analyze and transform it into useful and novel knowledge that helps in decision making and business process improvement. Data science is an interdisciplinary field that focuses on the study and analysis of data with the goal of extracting meaningful information and useful knowledge. It consists of several phases, such as data collection and cleaning, the generation of predictive and descriptive models and their deployment. Data science encompasses various areas such as statistics, mathematics, programming or databases, among others. In addition to these technical skills, data scientists must have in-depth knowledge of the problem domain, e.g., finance, medicine, education, etc. This makes knowledge extraction a complex process that small and medium-sized companies often unable to carry out, as they rarely have the necessary technical and human resources. Even if they do, the process is often costly and difficult to implement in an operational environment. The complexity of the data science process makes its democratization desirable. This democratization involves making the tools, techniques and knowledge needed to work with data available and accessible to a wide range of people, not just experts in the technical fields. One way to achieve that democratization is by automating the different phases involved in the process. In this context, the area of Automated Machine Learning (AutoML) has emerged to automate and simplify the process of building, training and deploying machine learning models. To this end, various tasks can be carried out, such as hyperparameter optimization, algorithm selection, neural architecture search or automatic workflow composition. The objective of this PhD Thesis is to make significant contributions to the field of AutoML, specifically in the area of automatic workflow composition. The selection of this task over others is motivated by its greater support to the data science process. It covers a larger number of phases, which bring us closer to the goal of achieving real democratization. Current contributions to the area have several limitations, since they oversimplify the problem by generating workflows whose structure is fixed. Moreover, they use general-purpose techniques without adapting them to the peculiarities of the automatic workflow composition problem. Finally, none of the state-of-the-art proposals allows the integration of human expertise into the composition process, which would allow to better capture of their requirements and needs. Throughout the development of this PhD Thesis, we have made contributions that have allowed us to analyze the state the of the art and present new algorithm proposals. A first contribution is a systematic literature review in the field of AutoML. More specifically, a total of 447 primary studies have been analyzed from three different perspectives: the phases of the knowledge extraction process that are automated, the tasks that are carried out to achieve such automation, and the techniques used. Furthermore, given the heterogeneity of the AutoML field, a taxonomy has been proposed to characterize current and future work based on the three dimensions mentioned above. Also related to the state of the art, a comprehensive experimental comparison of ten metaheuristic software frameworks for optimization was carried out. Metaheuristics, especially evolutionary algorithms, are one of the type of techniques frequently adopted in automatic workflow composition to optimize workflow generation and search for the best hyperparameter values. Therefore, our goal was to determine the most suitable software framework for the development of our evolutionary approach for automatic workflow composition. Among the properties analyzed for each software framework, we can highlight the following: execution time and memory usage under different configurations, code quality, number of implemented metaheuristics, and their documentation and support. Based on all the above findings, we have developed a grammar-guided genetic programming algorithm, called EvoFlow, to address the problem of automatic workflow composition. The use of a grammar provides our proposal with great flexibility and, unlike other proposals in the literature, EvoFlow does not constraint the structure of the sequence of preprocessing algorithms. In addition, EvoFlow presents two novel components that differentiate it from other evolutionary proposals: (1) crossover and mutation operators specially designed to optimize workflows; and (2) a mechanism that promotes the generation of workflows that provide diverse predictions to favor generalizability. An ablation study demonstrates the advantages of these novel components. We also demonstrate that EvoFlow generates models with better predictive capability than those obtained by the state-of-the-art methods. Finally, an interactive model has been developed to incorporate human opinions and needs into the optimization process. This method is also based on grammarguided genetic programming. Our proposal allows humans to modify the grammar during the evolutionary process to discard algorithms and/or hyperparameter values according to their preferences. Consequently, users can decide whether to prioritize the predictive capability of the workflows, the execution times or the interpretability of the resulting models. To validate this proposal, two experiments are carried out. A first experiment is performed under laboratory settings, simulating the interaction of different user profiles. A second experiment with 20 participants provides us with a more realistic scenario to analyze the performance and usability of the interactive model. Most of the users recognized the usefulness of the interactivity. Moreover, several of them managed to guide the evolutionary algorithm to unexplored regions of the search space, generating models with higher predictive capability and drastically reducing the execution time of the evolutionary algorithm.

[es] En las últimas décadas, la mayoría de las empresas y organizaciones han generado y almacenado enormes cantidades de datos procedentes de diversas fuentes como transacciones financieras, interacciones con clientes, registros de empleados y operaciones internas, entre otras. Sin embargo, el simple almacenamiento de estos datos no proporciona utilidad ni valor alguno, por lo que es necesario analizarlos y transformarlos en conocimiento útil y novedoso que ayude en la toma de decisiones y en la mejora de los procesos de negocio. La ciencia de datos es un campo interdisciplinario que se centra en el estudio y análisis de datos con el objetivo de extraer información relevante y conocimiento útil. Consta de varias fases, como la recolección y limpieza de datos, la generación de modelos predictivos y descriptivos, así como de su implementación. La ciencia de datos abarca diversas áreas como la estadística, las matemáticas, la programación o las bases de datos, entre otras. Además de estas habilidades técnicas, los científicos de datos deben tener un profundo conocimiento del dominio del problema, por ejemplo, finanzas, medicina, educación, etc. Esto provoca que la extracción de conocimiento sea un proceso complejo que las pequeñas y medianas empresas a menudo no pueden llevar a cabo, ya que rara vez tienen los recursos técnicos y humanos necesarios. Incluso si lo tienen, el proceso suele ser costoso y difícil de implementar en un entorno operativo. La complejidad del proceso de ciencia de datos hace deseable su democratización. Esta democratización implica hacer accesibles las herramientas, técnicas y conocimientos necesarios para trabajar con datos, a tantas personas como sea posible, no solo a aquellas con perfiles más técnicos. Una forma de lograr esa democratización es mediante la automatización de las diferentes fases involucradas en el proceso. En este contexto, ha surgido el ´área de Automated Machine Learning (AutoML) para automatizar y simplificar el proceso de construcción, entrenamiento e implementación de modelos de aprendizaje automático. Para ello, se pueden realizar diversas tareas, como la optimización de hiperparámetros, la selección de algoritmos, la búsqueda de arquitecturas neuronales o la composición automática de flujos de trabajo. El objetivo de esta Tesis Doctoral es realizar contribuciones significativas al campo de AutoML, específicamente en el área de composición automática de flujos de trabajo. La selección de esta tarea sobre otras se debe a su mayor soporte al proceso de ciencia de datos ya que cubre un mayor número de fases, lo que nos acerca al objetivo de lograr una democratización efectiva. Las contribuciones actuales al ´área tienen varias limitaciones, ya que simplifican en exceso el problema al generar flujos de trabajo cuya estructura es fija. Además, utilizan técnicas de propósito general sin adaptarlas a las particularidades del problema de composición automática de flujos de trabajo. Finalmente, ninguna de las propuestas del estado del arte permite la integración de la experiencia humana en el proceso de composición, lo que permitiría una mejor captura de sus requisitos y necesidades. A lo largo del desarrollo de esta Tesis Doctoral, hemos realizado contribuciones relacionadas con el análisis del estado del arte y la propuesta de nuevos algoritmos. Una primera contribución es una revisión sistemática de la literatura en el campo de AutoML. Concretamente, se han analizado un total de 447 estudios primarios desde tres perspectivas diferentes: las fases del proceso de extracción de conocimiento que se automatizan, las tareas que se llevan a cabo para lograr dicha automatización y las técnicas utilizadas. Además, dada la heterogeneidad del campo de AutoML, se ha propuesto una taxonomía para caracterizar los trabajos ya publicados y los futuros basándose en las tres dimensiones mencionadas anteriormente. También relacionado con el estado del arte, se llevó a cabo una completa comparativa experimental de diez marcos software para la optimización con metaheurísticas. Las metaheurísticas, especialmente los algoritmos evolutivos, son una de las técnicas utilizadas con mayor frecuencia en la composición automática de flujos de trabajo para optimizar su generación y buscar los mejores valores de hiperparámetros. Así pues, nuestro objetivo fue determinar el marco software más adecuado para el desarrollo de nuestra propuesta evolutiva de composición automática de flujos de trabajo. Entre las propiedades analizadas para cada marco software, podemos destacar las siguientes: tiempo de ejecución y uso de memoria bajo diferentes configuraciones, calidad del código, número de metaheurísticas implementadas y su documentación y soporte. Basándonos en las salidas de los trabajos citados, hemos desarrollado un algoritmo de programación gen ética gramatical, llamado EvoFlow, para abordar el problema de la composición automática de flujos de trabajo. El uso de una gramática proporciona a nuestra propuesta una gran flexibilidad y, a diferencia de otras propuestas de la literatura, EvoFlow no fija la estructura de la secuencia de algoritmos de preprocesado. Además, EvoFlow presenta dos componentes novedosos que lo diferencian de otras propuestas evolutivas: (1) operadores de cruce y mutación diseñados especialmente para optimizar flujos de trabajo; y (2) un mecanismo que promueve la generación de flujos de trabajo que realicen predicciones diversas, para favorecer la generalización. Un primer estudio demuestra las ventajas de estos componentes. También hemos demostrado que EvoFlow genera modelos con mejor capacidad predictiva que los obtenidos por el estado del arte. Finalmente, se ha desarrollado un modelo interactivo para incorporar las opiniones y necesidades del humano en el proceso de optimización. Este método también se basa en la programación genética gramatical. Nuestra propuesta permite a los humanos modificar la gramática durante el proceso evolutivo para descartar algoritmos y/o valores de hiperparámetros según sus preferencias. En consecuencia, los usuarios pueden decidir si priorizar la capacidad predictiva de los flujos de trabajo, los tiempos de ejecución o la interpretabilidad de los modelos resultantes. Para validar esta propuesta, se han realizado dos experimentos. El primero se realizó bajo condiciones de laboratorio, simulando la interacción de diferentes perfiles de usuarios. Un segundo experimento con 20 participantes nos proporciona un escenario más realista para analizar el rendimiento y la usabilidad del modelo interactivo. Cabe destacar que la mayoría de los usuarios reconocieron la utilidad de la interactividad. Además, varios de ellos consiguieron guiar al algoritmo evolutivo a regiones inexploradas del espacio de búsqueda, generando modelos con mayor capacidad predictiva y reduciendo drásticamente el tiempo de ejecución del algoritmo evolutivo.