Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Gestio¿n de Big Data, Tecnologi¿as - Mo¿dulo3 - Ana¿lisis y Visualizacio¿n de Datos
Gestio¿n de Big Data, Tecnologi¿as - Mo¿dulo3 - Ana¿lisis y Visualizacio¿n de Datos
visualización de
datos
Mario Macias Lloret
PID_00237568
Ninguna parte de esta publicación, incluido el diseño general y la cubierta, puede ser copiada,
reproducida, almacenada o transmitida de ninguna forma, ni por ningún medio, sea éste eléctrico,
químico, mecánico, óptico, grabación, fotocopia, o cualquier otro, sin la previa autorización escrita
de los titulares del copyright.
© FUOC • PID_00237568 Análisis y visualización de datos
Índice
Introducción............................................................................................... 5
Objetivos....................................................................................................... 8
2. Aprendizaje autónomo..................................................................... 17
2.1. Regresión ..................................................................................... 18
2.2. Clasificación ................................................................................ 19
2.3. Agrupamiento .............................................................................. 20
2.4. Reducción de dimensionalidad ................................................... 21
2.5. Filtrado colaborativo / sistemas de recomendación .................... 21
3. Análisis de grafos............................................................................... 23
3.1. Hadoop Giraph ........................................................................... 24
3.1.1. Tipos de grafos soportados por Giraph ......................... 25
3.1.2. Agregadores .................................................................... 25
3.2. Spark GraphX .............................................................................. 27
Bibliografía................................................................................................. 43
© FUOC • PID_00237568 5 Análisis y visualización de datos
Introducción
El análisis exploratorio de los datos nos permitirá comprender mejor los datos,
y proponer modelos y algoritmos que sean capaces de extraer información de
valor de estos. Incluso, aunque no esté explícitamente indicado en la figura
1, del análisis exploratorio se pueden extraer conclusiones que influyan en el
futuro procesado de los datos.
Objetivos
En una solución batch, tal como cualquiera de las que implemente el modelo MapReduce,
el sistema debería ir almacenando los datos y, llegado un momento, procesar las estadís-
ticas sobre estos. El ayuntamiento podrá tener una evolución de las concentraciones de
personas a lo largo de la noche, pero es posible que no tenga tiempo de reacción ante
cambios repentinos en la distribución de las personas, ya que casi siempre habrá un nú-
mero considerable de eventos "no absorbidos" por el sistema de análisis de datos.
© FUOC • PID_00237568 10 Análisis y visualización de datos
Los motores de procesado de datos por flujos (también conocidos como strea-
ming) surgen para habilitar el análisis de datos en tiempo real (es decir, se con-
sumen y procesan inmediatamente después de que sean producidos).
Un bolt (algo así como una vía de desagüe) consume datos de uno o varios
streams y produce nuevos flujos de datos.
• Ejecutores, que son hilos que pueden ejecutar una o varias tareas
de un mismo componente (spout o bolt). El número de ejecutores
puede variar en el tiempo.
Storm también provee algunas primitivas básicas para agrupar los diferentes
flujos de datos y, dada una tupla a emitir, decidir a qué tarea debe ir a parar.
Las agrupaciones provistas son:
• A�todas, replicará un flujo hacia todos los bolts conectados. Se debe usar
con cuidado para no sobrecargar el sistema.
• Directa, donde el productor de las tuplas decidirá qué tarea será la recep-
tora de estas.
© FUOC • PID_00237568 14 Análisis y visualización de datos
La manera en que Spark incorpora el procesado de flujos de datos sin la nece- RDD
sidad de rehacer todos los demás componentes de la plataforma consiste en
RDD es la abreviatura de Re-
capturar pequeños paquetes de datos del flujo de entrada cada cierto intervalo silient-Distributed Dataset, o
de tiempo y presentarlos como un RDD. De este modo, el flujo de entrada conjunto de datos resiliente y
distribuido. Es la unidad míni-
toma la forma de una serie continua de RDD, lo que se denomina un DStream ma de procesado para Spark.
(del inglés, Discretized Stream), el concepto esencial y sobre el que gira todo
Spark Streaming.
Del mismo modo que ocurre con los RDD, se expresará el procesado del flujo
de datos mediante transformaciones sobre los DStreams. Existen una serie de
transformaciones estándar para su procesado, aunque también se podrán apli-
car transformaciones genéricas de RDD sobre los RDD que los componen.
Al igual que con Apache Storm, Spark Streaming es solo un motor de procesado
de flujos de datos, y su núcleo no proporciona herramientas para análisis es-
tadístico. No obstante, el paquete de clases org.apache.spark.examples.streaming
proporciona muchos ejemplos que pueden utilizarse como punto de partida
para la creación de aplicaciones de análisis estadístico de flujos de datos en
tiempo real. A destacar:
Apache Flink, pese a ser más reciente e inmaduro que Storm y Spark
Streaming, se está abriendo paso debido a sus ventajas para el procesado
de flujos de datos. Mientras Spark y Storm procesan en micro-batch (es
decir, pequeños paquetes de lotes), Flink procesa en streaming real, lo
cual conlleva una menor latencia en el procesado en tiempo real.
• Provee una interfaz web para mandar y ejecutar trabajos remotamente me-
diante Apache Zeppelin (el cual se describirá en el subapartado 5.3).
© FUOC • PID_00237568 16 Análisis y visualización de datos
Por ejemplo, se puede considerar la media móvil del tiempo que cada visitante
permanece visitando una página web. En el caso de usar batch, el número de
visitas puede ser actualizado cada minuto, hora, incluso día. El problema es
que sería difícil definir cuándo empieza o acaba la sesión, así como los períodos
de inactividad, ya que estos puntos que marcan el inicio/fin de las sesiones
podrían caer en diferentes lotes. Por lo que en este caso, se requiere procesar
datos en tiempo real mediante streaming, en el que se puede ver el tiempo
como un continuo.
Hay otras situaciones en las que tanto el modelo de streaming y batch son útiles.
Por ejemplo, si se quisiera calcular el mensual móvil de ventas, en intervalos
de días. En este caso sería necesario computar las ventas diarias totales y al
final hacer una suma acumulativa de los últimos 30 días. En este caso, puede
ser suficiente con el procesado en batch de las ventas según sus respectivas
fechas. Incluso es aceptable que pueda haber latencia en los datos, pudiendo
agregar registros tardíos a los futuros lotes de procesado.
© FUOC • PID_00237568 17 Análisis y visualización de datos
2. Aprendizaje autónomo
2.1. Regresión
Un ejemplo de problema solventable con regresión es, dado el precio de las ventas de
pisos durante el último mes en una zona, y los metros cuadrados de estos, tratar de pre-
decir a cuánto se podrá vender un piso recién puesto a la venta en esa zona, sabiendo
los metros cuadrados.
2.2. Clasificación
Figura 9. Ejemplo de clasificación. Las cruces y los círculos representan elementos de dos clases,
y se pretende dividir el espacio tal que separe a la mayoría de elementos de clases diferentes
2.3. Agrupamiento
Figura 10. Ejemplo de agrupamiento. Cruces, círculos y cuadros pertenecen a tres clases de
elementos distintos
Cuando se crea un perfil de gustos del usuario, se crea utilizando dos formas
o métodos en la recolección de características: implícitas o explícitas. Formas
explícitas podrían ser solicitar al usuario que evalúe un objeto o tema parti-
cular, o mostrarle varios temas/objetos y que escoja su preferido. Formas im-
plícitas serían tales como guardar un registro de artículos que el usuario ha
visitado en una tienda, canciones que ha escuchado, etc.
• El usuario B ha valorado como mala El Padrino, como excelente La guerra de las gala-
xias y como excelente Star Trek.
3. Análisis de grafos
Con el auge del big data, la teoría de grafos goza de gran popularidad para el
análisis de redes sociales, análisis de grandes cantidades de documentos enla-
zados entre sí (como las páginas web), o búsquedas de caminos y optimiza-
ción, entre otros.
2) Una red que encamina mensajes entre pares de los mencionados compo-
nentes de procesado.
Giraph define los sistemas de procesado como un grafo compuesto por vér-
tices unidos por aristas dirigidas. Por ejemplo, los vértices podrían represen-
tar una persona y las aristas las peticiones de amistad en una red social. La
computación se lleva a cabo mediante una serie de super-pasos anteriormente
descritos.
El tipo de grafo por defecto en Giraph son grafos dirigidos, en los que todas
las aristas se consideran aristas de salida que salen del vértice en el cual se han
definido.
3.1.2. Agregadores
go son agregados (valga la redundancia) por el sistema, haciendo que los re-
sultados estén disponibles para todo el sistema en el siguiente super-paso. Por
ello, la operación realizada por un agregador debe cumplir la propiedad con-
mutativa y asociativa (por ejemplo, una suma, un AND o OR booleano...).
El usuario puede crear sus propios agregadores, pero Giraph provee algunos
agregadores básicos: encontrar el máximo o mínimo entre dos números, su-
matorios, etc.
etiquetas.
Lectura complementaria
“El mayor valor de una figura se da cuando insta a darnos cuenta de aquello que jamás
esperamos ver.”
(Turkey, 1977)
© FUOC • PID_00237568 30 Análisis y visualización de datos
Los buenos gráficos estadísticos muestran datos complejos con claridad, preci-
sión y eficiencia. Algunas de las características de una buena visualización son:
Como ejemplo de buen gráfico, el diagrama de Minard (figura 12) muestra las
pérdidas sufridas por el ejército de Napoleón en 1812 y 1813. En este se mues-
tran seis variables: el tamaño del ejército, su posición en una superficie de dos
dimensiones, tiempo, dirección del movimiento y temperatura. El grosor de
la línea permite comparar el tamaño del ejército entre dos puntos temporales
cualesquiera, a la vez que la temperatura sugiere las causas de los cambios en el
tamaño del ejército. Tal visualización de múltiples variables en una superficie
bidimensional cuenta una historia completa que desafió con datos contrasta-
dos la versión redactada por los historiadores de la época.
© FUOC • PID_00237568 31 Análisis y visualización de datos
Figura 12. Mapa figurativo de las sucesivas pérdidas de hombres de la Armada Francesa en la
campaña de Rusia 1812-1813. Charles Joseph Minard, 1869
Otro ejemplo es el mapa del Dr. John Snow (figura 13), en el cual se superponen
sobre un mapa de Londres los hogares afectados con casos de cólera, así como
las diferentes fuentes de donde los vecinos recogían el agua. Lo que permitió
identificar de manera visual la fuente que propagó el cólera, estando esta en
el epicentro de los hogares afectados y siendo mayor la densidad de casos a
más cercanía a la fuente.
Figura 13. Mapa original dibujado por el Dr. John Snow (1813-1858), médico inglés precursor
de la epidemiología, que muestra los casos de cólera en la epidemia ocurrida en Londres en
1854
Las formas y técnicas de visualizar los datos son muy diversas, y con la infor-
mática y las herramientas para el análisis big data, se van incorporando otros
avances técnicos tales como animaciones, interactividad, navegación, etc. No
obstante, es necesario considerar las formas más clásicas de representar los da-
tos:
• Parte-a-todo, en los que las categorías se miden como una proporción del
total (por ejemplo, un porcentaje). Puede usarse un gráfico circular o un
gráfico con múltiples barras.
© FUOC • PID_00237568 34 Análisis y visualización de datos
Dentro del ámbito del software libre vamos a destacar las siguientes herra-
mientas de visualización:
• Nodebox está diseñada para crear gráficos en 2D, tanto estáticos como di-
námicos, a partir de programas en lenguaje Python. Al igual que D3, puede
ser difícil de utilizar para visualización de datos, ya que está orientado a un
propósito general, existiendo plantillas abiertas para construir diferentes
gráficos de visualización de datos.
Dentro del ámbito de las soluciones de pago vamos a destacar las siguientes
herramientas de visualización:
• Highcharts es una biblioteca que, al igual que NVD3, trabaja sobre D3.js
para crear gráficos estáticos e interactivos, aportando facilidad de uso a
costa de una menor flexibilidad. Si bien el código es accesible para el usua-
rio debido a que se ejecuta sobre un navegador web, la licencia de este no es
abierta. Existe una licencia gratuita y otra de pago para usos profesionales.
5.1. R
Otro punto fuerte de R son los gráficos estáticos, con suficiente calidad para
ser incluidos en publicaciones profesionales. Mediante paquetes adicionales
se pueden crear gráficos dinámicos e interactivos.
Su creciente popularidad ha llevado a que este lenguaje haya tenido que ser
tomado en cuenta por la comunidad de Spark y Hadoop, para crear enlaces de
sus plataformas a R: SparkR y RHadoop.
Igual que Notebook, es una herramienta web que permite el análisis interac-
tivo de datos. Pese a no ser una herramienta tan madura como Jupyter Note-
book, Zeppelin está más orientado a proporcionar un entorno de alto rendi-
miento capaz de manejar con fluidez grandes cantidades de datos.
Como base para la visualización de datos, apache Zeppelin utiliza NVD3 (des-
crita en el subapartado 4.1.1). Además de Scala, permite crear documentos in-
teractivos y colaborativos orientados a datos con otros lenguajes, tales como
Python, SparkSQL, Apache Hive, Markdown y shell scripts.
© FUOC • PID_00237568 42 Análisis y visualización de datos
Bibliografía
J. W. Tukey (1977). Exploratory Data Analysis. Addison-Wesley. ISBN 0-201-07616-0. OCLC
3058187.