Big data systems and analytics

60
Claves para el desarrollo de Proyectos Big Data Victoria López @victoriademates www.tecnologiaUCM.es Universidad Complutense de Madrid 4 a

Transcript of Big data systems and analytics

Page 1: Big data systems and analytics

Claves para el desarrollo de Proyectos Big Data

Victoria Ló[email protected] Complutense de Madrid

4a

Page 2: Big data systems and analytics

2

Introducción. Casos de Uso Big Data Collection Proyectos Big Data Almacenamiento y Procesamiento de Datos Sistemas Big Data y Data Analytics

Claves para el desarrollo de Proyectos Big Data

4a

Page 3: Big data systems and analytics

3

Machine Learning Deep Learning

Visualización y Exploración Algoritmos rápidos Data Analytics: R Paradigmas de Programación Complejidad Algorítmica

Sistemas Big Data y Data Analytics

4a

Page 4: Big data systems and analytics

4

Machine Learning (aprendizaje automático) es una disciplina que estudia el diseño de algoritmos capaces aprender de los datos

Hay dos tipos fundamentales de aprendizaje: Supervisado: Base de conocimiento previa. El

objetivo es encontrar un algoritmo que transforme el input en el output para los elementos de la base de conocimiento. Después se extiende.

No supervisado: descubrimiento de patrones a partir de los datos (relaciones ocultas)

Machine Learning

Page 5: Big data systems and analytics

5

Ejemplo de sistemas supervisados: Reconocimiento del habla, Call Center.

Diagnóstico médico:

Otros: ‘Big Data-Driven Marketing: How machine learning outperforms marketers’ gut-feeling’, LNCS, 2014

Machine Learning

Page 6: Big data systems and analytics

6

Ejemplo de sistemas NO supervisados: Business Intelligence.

Análisis del perfil del consumidor Predicción Toma de decisiones

Sistemas de recomendación. Aprendizaje por refuerzo. Realimentación

Machine Learning

Page 7: Big data systems and analytics

7

Nueva tendencia alternativa: Se pretende analizar las emociones y los

sentimientos de las personas Los mensajes de Twitter son

manipulables. Un hashtag # es construible Se requieren nuevas técnicas que

aseguren la fiabilidad de los resultados midiendo lo que la persona siente cuando escribe un mensaje, por ejemplo.

Deep Learning es un conjunto de algoritmos machine learning que utilizan procesamiento no lineal para extracción de características (features) como variables del sistema.

Deep Learning

Page 8: Big data systems and analytics

8

Los algoritmos de Machine Learning o Deep Learning forman parte del área de Inteligencia Artificial

Árboles de decisión

Redes Bayesianas

Redes Neuronales

Técnicas de Clustering

Máquinas de Vector Soporte

Algoritmos genéticos

Etc.

Machine Learning

Page 9: Big data systems and analytics

9

Herramientas

Open Source

Machine Learning

Page 11: Big data systems and analytics

Permiten determinar

Qué ha pasado: Reporting

Qué pasa: Monitorización

Por qué pasa: Análisis

Qué va a pasar: Predicción

Series temporales Análisis predictivo

Apoyo al Business Intelligence

AlmacenajeDataWarehouse

TransformaciónETL

ConsultaReporting, etc.

Page 12: Big data systems and analytics

12

Herramientas

Comerciales

Business Intelligence

Page 13: Big data systems and analytics

13

Las herramientas software nos sirven para visualizar los datos y realizar exploraciones que deriven en una adecuada toma de decisiones

El problema con Big Data es que hay demasiada diversidad y cantidad de datos.

Si no tenemos cuidado se pueden obtener relaciones extrañas:

http://www.tylervigen.com/

Visualización y Exploración

Page 14: Big data systems and analytics

14

Visualización y Exploración

http://www.tylervigen.com/

Page 15: Big data systems and analytics

15

Visualización y Exploración

http://www.tylervigen.com/

Page 16: Big data systems and analytics

16

Visualización y Exploración

http://www.tylervigen.com/

Page 17: Big data systems and analytics

17

Visualización y Exploración

Page 18: Big data systems and analytics

18

Visualización y Exploración

Page 19: Big data systems and analytics

19

Visualización y Exploración

Page 20: Big data systems and analytics

20

Visualización y Exploración

Page 21: Big data systems and analytics

21

Visualización y Exploración

No sólo para informar sino también para condicionar el comportamiento del cliente

Page 22: Big data systems and analytics

22

Con Big Data el proceso de detección de eventos o relaciones escondidas es mucho más difícil.

Cobra importancia el Data Scientist en todas las etapas del proyecto.

Problema de la Complejidad Algorítmica Algoritmos aproximados Cadenas ocultas de Markov Etc.

Algoritmos rápidos

Page 23: Big data systems and analytics

23

- Se trata de descubrir los ‘diamantes’ del Data Mining de alguna forma viable en tiempo de ejecución

Algoritmos rápidos

Page 24: Big data systems and analytics

24

Se tienen muy en cuenta las Medidas de Rendimiento

A. Tiempo de Computación (ejecución de procesos sobre los datos)

B. Tamaño de Almacenamiento (espacio utilizado, depende de las estructuras de datos)

- C. Tiempo de Procesamiento de Datos (paralelización y distribución)

Algoritmos rápidos

Page 25: Big data systems and analytics

25

Complejidad Algorítmica y Computacional

Algoritmos rápidos

Page 26: Big data systems and analytics

26

Complejidad Algorítmica y Computacional:

Complejidad espacial: espacio que ocupa nuestro sistema y su crecimiento esperado.

Complejidad temporal: tiempo que se requiere para ejecutar los procesos y su evolución futura.

Desde el punto de vista práctico:- Los datos caben en una máquina Medium Data- Los datos no caben en una máquina Big Data- Los algoritmos tienen complejidad mayor que

cuadrática solo ejecutables sobre Small Data Deseable Algoritmos de complejidad temporal

logarítmica o lineal.

Algoritmos rápidos

Page 27: Big data systems and analytics

27

Más sobre complejidad:

www.scottaaronson.com/blog/?p=263

bigocheatsheet.com/

http://www.sorting-algorithms.com/

Algoritmos rápidos

Page 28: Big data systems and analytics

28

Quick-Sort

Algoritmos rápidos

Tony Hoare, Doctor Honoris Causa por la Universidad Complutense de Madrid, 2013

La idea: dividir escogiendo un ‘pivote’, poner los pequeños a un lado y los grandes al

otro lado del pivote

Creado por Tony Hoare en 1961 cuando era solo un estudiante

Page 29: Big data systems and analytics

Caso Base: Si la longitud de la lista es 0 ó 1, entonces ya está ordenada. Caso General:

1. Seleccionar un pivote (el último elemento) y colocarlo en su sitio definitivo de forma que los menores queden antes y los mayores después aunque desordenados.2. Llamar recursivamente con input la sublista anterior y la posterior aplicando el mismo procedimiento3. No hace falta mezclar porque las dos sub-listas ya estarán ordenadas y serán contiguas.

Algoritmos rápidos

Page 30: Big data systems and analytics

Procedimiento ‘divide’ de Quick-Sort:

6 – 13 – 5 – 1 – 0 – 9 – 15 – 8 – 2 – 76 – 13 – 5 – 1 – 0 – 9 – 15 – 8 – 2 – 76 – 13 – 5 – 1 – 0 – 9 – 15 – 8 – 2 - 76 – 13 – 5 – 1 – 0 – 9 – 15 – 2 – 7 – 8 6 – 13 – 5 – 1 – 0 – 9 – 2 – 7 – 8 – 156 – 13 – 5 – 1 – 0 – 2 – 7 – 9 – 8 – 156 – 13 – 5 – 1 – 0 – 2 – 7 – 9 – 8 – 156 – 13 – 5 – 1 – 0 – 2 – 7 – 9 – 8 – 156 – 13 – 5 – 1 – 0 – 2 – 7 – 9 – 8 – 156 – 5 – 1 – 0 – 2 – 7 – 13 – 9 – 8 – 156 – 5 – 1 – 0 – 2 – 7 – 13 – 9 – 8 – 156 – 5 – 1 – 0 – 2 – 7 – 13 – 9 – 8 – 15

Algoritmos rápidos

Completidad de ‘divide’ o(n)Complejidad de Quick-Sort o(nlogn)

Page 31: Big data systems and analytics

Algoritmos rápidos

Reflexión:

Cómo paralelizar un algoritmo óptimo de ordenación

Diferencias entre Merge-Sort y Quick-Sort

Page 32: Big data systems and analytics

Función factorial

Algoritmos rápidos

Alternativa iterativa:

Int Factorial (int n)int f=1;{For (i=1; i<=n; i++) {f=f*i}Return f}

--Varias instrucciones--Variables auxiliares--Más código, menos fiable

Alternativa recursiva 1:

Int Factorial (int n){If n=0 return 1Else return n*Factorial(n-1)}

-- Una única instrucción--No existen variables locales--Menos código, más fiable

Alternativa recursiva 2:

Int Factorial (int n, m){If n=0 return mElse return Factorial(n-1, n*m)}

-- Programación Funcional Final--No deja calculos pendientes

Page 33: Big data systems and analytics

33

Tipos de procesamiento:

Procesamiento batch o batch processing: procesado por lotes sin intervención humana. Es el procesado que utilizan casi todas las tareas programables de Hadoop.

Algoritmos rápidos

Page 34: Big data systems and analytics

34

Tipos de procesamiento:

Procesamiento en streaming: También se puede automatizar pero solo se tienen en cuenta una ventana de datos en cada momento. Es el procesado que caracteriza a Spark y es muy popular en la visualización de vídeos.

Algoritmos rápidos

Page 35: Big data systems and analytics

35

Tipos de procesamiento:

Otra herramienta para streaming es Storm, entorno de computación distribuida comprado por Twitter para manipular sus fuentes de información.

Storm permite la computación batch y la computación distribuida de datos en streaming.

Nathan Marz (http://nathanmarz.com/about/)

Algoritmos rápidos

Page 36: Big data systems and analytics

36

Proyecto R: http://www.r-project.org/

Data Analytics con R

Page 37: Big data systems and analytics

37

Data Analytics con R

Page 38: Big data systems and analytics

38

Proyecto R: http://www.ibm.com/developerworks/library/ba-call-r-spss/

Data Analytics con R

Page 39: Big data systems and analytics

39

Paradigmas de Programación

Tipos de algoritmos (desde el punto de vista computacional):

Iterativos

Recursivos

Paradigmas de programación:

Iterativo-Funcional-Lógico-Orientado a objetos-

Page 40: Big data systems and analytics

40

Tamaño del problema

Page 41: Big data systems and analytics

41

Complejidad Espacial

Page 42: Big data systems and analytics

42

Optimizar el tiempo de ejecución

Page 43: Big data systems and analytics

43

Órdenes de complejidad

Page 44: Big data systems and analytics

44

Notación asintótica de acotación

Page 45: Big data systems and analytics

45

Algoritmos iterativos

Page 46: Big data systems and analytics

46

Ejemplo iterativo

Page 47: Big data systems and analytics

47

Ejemplo iterativo

Page 48: Big data systems and analytics

48

Algoritmos recursivos

Page 49: Big data systems and analytics

49

Ejemplo recursivo

Resolviendo por recurrencias se obtiene 4n+2, complejidad lineal

Page 50: Big data systems and analytics

50

La sucesión de Fibonacci

La sucesión de Fibonacci es la sucesión de números que, empezando por la unidad, cada uno de sus términos es la suma de los dos anteriores (1,1,2,3,5,8,13,…). La distribución de las hojas alrededor del tallo, La reproducción de los conejos. La disposición de las semillas en numerosas flores y frutos ¿Se trata de una simple casualidad, o existe alguna especie de “plan oculto” que vincula las matemáticas con la naturaleza?

El cociente de dos números consecutivos de la serie se aproxima a la denominada “razón dorada”, “sección áurea” o “divina proporción”. Este número, descubierto por los renacentistas

(1+ raíz de 5)/2 = 1.61803…

Page 51: Big data systems and analytics

51

Fibonacci: definición recursiva

Page 52: Big data systems and analytics

52

Fibonacci

Page 54: Big data systems and analytics

54

Los brazos en espiral de las galaxias también se acomodan según los números de Fibonacci. Es sorprendente la relación que existe entre la matemática y la naturaleza.

Fibonacci

Page 55: Big data systems and analytics

55

Fibonacci recursivo no final

Page 56: Big data systems and analytics

56

Ejecución Fibonacci Recursivo

Page 57: Big data systems and analytics

57

Fibonacci recursivo final

Complejidad O(n)

Page 58: Big data systems and analytics

58

Optimización de Fibonacci

Complejidad O(logn)

Page 59: Big data systems and analytics

59

Fibonacci optimo

Page 60: Big data systems and analytics

Claves para el desarrollo de Proyectos Big Data

Victoria Ló[email protected] Complutense de Madrid