Online Clustering con STREAMING K-MEANS usando SPARK Streaming

Jiménez Hernández, Antonio (2019). Online Clustering con STREAMING K-MEANS usando SPARK Streaming. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S.I. de Sistemas Informáticos (UPM), Madrid.

Description

Title: Online Clustering con STREAMING K-MEANS usando SPARK Streaming
Author/s:
  • Jiménez Hernández, Antonio
Contributor/s:
  • Gómez Canaval, Sandra
  • Mozo Velasco, Alberto
Item Type: Final Project
Degree: Grado en Ingeniería del Software
Date: July 2019
Subjects:
Freetext Keywords: Análisis de datos
Faculty: E.T.S.I. de Sistemas Informáticos (UPM)
Department: Sistemas Informáticos
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[img]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (1MB) | Preview
[img] Archive (ZIP) - Users in campus UPM only
Download (5MB)

Abstract

En los últimos años, debido al Internet de las Cosas (IoT), los avances en las comunicaciones y la generación de grandes volúmenes de datos o Big Data, nuestra sociedad está continuamente produciendo cantidades ingentes de datos con información valiosa sobre nuestro comportamiento, nuestros hábitos, el uso que damos a los dispositivos electrónicos que tenemos en casa, en el trabajo y en nuestra mano. IoT se caracteriza, entre muchos otros aspectos, en que los aparatos eléctricos y electrónicos que utilizamos a diario están conectados a Internet y generan trazas de información que ayudan a hacernos más fácil nuestra vida y que por otro lado, generan información de mercado y tendencias de uso a los fabricantes. Todos esos flujos de información que han sido capturados por diversos sensores y luego transmitidos vía Internet podrían ser analizados (normalmente por parte de los fabricantes) para hacer minería de datos. Si bien es cierto que las técnicas de data mining (como parte del Machine Learning) están ampliamente desarrolladas y probadas en montones de contextos y dominios, también es cierto que estos algoritmos pueden realizar tares supervisadas o no supervisadas teniendo en disco toda la información y procesando en memoria todos los subconjuntos de esta que sean necesario. El caso para los flujos de información que se producen en la IoT tienen otras características, por ejemplo: se producen millones de flujos a diario, la información que viaja en esos flujos es la información directa que muchos sensores envían sin filtro alguno, ejecutar algoritmos sobre un dataset que cada minuto está actualizándose utilizando las técnicas de data mining tradiciones sería casi imposible. Por tanto, la comunidad científica, académica e industrial se ha interesado por adaptar estos algoritmos tradicionales a las características de estos flujos de datos. Como consecuencia se han propuesta, desarrollado e implementado adaptaciones a data streaming de los algoritmos de data mining más conocidos y se han propuesto otros nuevos. Este Proyecto de Fin de Grado pretende estudiar técnicas de clasificación no supervisada para desarrollar un sistema de Machine Learning para clustering de data streaming utilizando el algoritmo streaming k-means. El algoritmo streaming K-means es un algoritmo basado en clústers tradicional en el área de data mining y que como todos estos algoritmos, han sido extendidos para ser aplicados sobre flujos de datos. Para el desarrollo de la aplicación y la implementación del algoritmo streaming K-means en este proyecto se va a utilizar la plataforma computacional ultra-escalable Apache Spark. Esta plataforma de computación es capaz de administrar clústeres de ordenadores y ha sido diseñada para ser rápida y de propósito general. Spark está diseñado para ser altamente accesible, ofreciendo una interfaz de programación de aplicaciones en varios lenguajes de programación como Java, Scala o Python, así como en SQL, además, posee una gran cantidad de librerías. En particular, Spark puede correr en clusters Hadoop y acceder a cualquier fuente de datos de Hadoop, incluyendo bases de datos Cassandra. Además, se han identificado los principales algoritmos de Machine Learning para data streaming junto con sus principales características. Este Proyecto finaliza mostrando algunos resultados sobre la implementación realizada sobre Spark así como también analizando estos a través de un dataset público mediante el cual vamos a probar el funcionamiento del algoritmo, extraer conclusiones sobre los datos y analizar los resultados obtenidos desde las métricas de calidad del clustering obtenido. Abstract: In recent years, due to the Internet of Things (IoT), advances in communications and the generation of large volumes of data or Big Data, our society is continuously producing huge amounts of data with valuable information about our behavior and our habits, the use we give to electronic devices that we have at home, at work and in our hand. IoT is characterized among many other aspects, in that the electrical and electronic devices we use every day are connected to the Internet and generate traces of information that help make our lives easier and that, on the other hand, generate market information and usage trends which are useful to the manufacturers. All those information flows that have been captured by various sensors and then transmitted via the Internet could be analyzed (usually by manufacturers) to do data mining. While it is true that data mining techniques (as part of Machine Learning) are widely developed and tested in lots of contexts and domains, it is also true that these algorithms can perform supervised or unsupervised tasks with all the information on disk and processing in memory all subsets of it that are necessary. The case for information flows that occur in the IoT have other characteristics, for example: millions of flows are produced daily, the information that travels is those flows is the direct information that many sensors send without any filter, execute algorithms on a dataset that every minute is being updated using data mining techniques would be almost impossible. Therefore, the scientific, academic and industrial community has been interested in adapting these traditional algorithms to the characteristics of these data flows. As a result, we have proposed, developed and implemented data streaming adaptations of the most known data mining algorithms and new ones have been proposed. This Final Project is made with the purpose of study unsupervised classiffication techniques to develop a Machine Learning system for data streaming clustering using the K-means streaming algorithm. The K-means streaming algorithm is a traditional cluster-based algorithm in the area of data mining and, like all these algorithms, has been extended to be applied to data flows. For the development of the application and the implementation of the K-means streaming algorithm in this project, the ultra-scalable computing platform Apache Spark will be used. This computing platform is capable of managing computer clusters and has been designed to be fast and general purpose. Spark is designed to be highly accessible, offering an application programming interface in several programming languages such as Java, Scala or Python, as well as in SQL, in addition, it has a large number of libraries. In particular, Spark can run on Hadoop clusters and access any Hadoop data source, including Cassandra databases. In addition, the main algorithms of Machine Learning for data streaming have been identified together with their main characteristics. This Project ends by showing some results about the implementation carried out on Spark as well as analyzing these through a public dataset through which we will test the functioning of the algorithm, draw conclusions about the data and analyze the results obtained from the quality metrics of the clustering obtained.

More information

Item ID: 56397
DC Identifier: http://oa.upm.es/56397/
OAI Identifier: oai:oa.upm.es:56397
Deposited by: Biblioteca Universitaria Campus Sur
Deposited on: 12 Sep 2019 07:49
Last Modified: 12 Sep 2019 07:49
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM