[en] The study we have conducted for this final degree work is framed into the fields of Data Mining and Machine Learning. Specifically this project is related to the learning algorithms analysis and their implementation in the Hadoop framework, an open-source system that allows big data sets to be processed in a distributed mode. Associative analysis is a machine learning method used to discover hidden relations within big data sets. An efficient way of applying associative analysis is by using the "A priori" algorithm. The final goal of this work is to analyze the execution of the "A priori" algorithm both in a sequential form, and by using the Hadoop technology, in order to test performance improvements when the algorithm is executed in parallel. The first step was to perform an exhaustive study of the "A priori" algorithm, in order to understand its mathematic behavior. Afterwards, we proceeded to its implementation in java code form and a series of sequential form test were conducted to check its correct behavior, measuring its execution times. Once the code has been implemented and executed, the transforming of the project into the Hadoop MapReduce form took place by implementing the Map and Reduce functions. Finally, a series of tests were performed to check that when we increase the number of nodes, the processing times experience a significant improvement when compared to the sequential form of them. The tests shown that the premise object of this study, was correct since a meaningful reduction of processing times was observed.

[es] El estudio que hemos realizado para este trabajo de fin de grado se enmarca en el campo de la Minería de Datos y el Aprendizaje Automático. Más concretamente este proyecto se encuadra en el análisis de algoritmos de aprendizaje y en su implementación en el entorno Hadoop, un sistema de código abierto que permite procesar grandes volúmenes de datos de forma distribuida. El análisis asociativo es un método de aprendizaje automático que se utiliza para descubrir relaciones ocultas en grandes conjuntos de datos. Una forma eficiente de aplicar el análisis asociativo es utilizando el algoritmo "A priori". El objetivo de este trabajo consiste en analizar la ejecución del algoritmo "A priori" tanto de forma secuencial como aplicando el modelo de programación MapReduce, para comprobar cuáles son las mejoras de rendimiento cuando éste es ejecutado en paralelo. Para poder llevar a cabo este trabajo, primero se realizó un estudio exhaustivo del algoritmo "A priori", para comprender su funcionamiento de forma matemática. A continuación, se implementó dicho algoritmo en código java y se llevaron a cabo pruebas de forma secuencial para comprobar su correcto funcionamiento, midiendo los tiempos de ejecución. Una vez implementado el código y ejecutado el algoritmo, hubo que realizar la transformación del mismo al paradigma Hadoop MapReduce implementando las funciones Map y Reduce. Para finalizar, se realizaron una batería de pruebas para comprobar que los tiempos en paralelo van mejorando una vez que incrementamos el número de nodos, con respecto a los tiempos de forma secuencial. Las pruebas realizadas demostraron que la propuesta era acertada ya que se observó una reducción sustancial de los tiempos de procesamiento.