Big data systems and analytics
-
Upload
grupo-g-tec -
Category
Technology
-
view
100 -
download
0
Transcript of Big data systems and analytics
Claves para el desarrollo de Proyectos Big Data
Victoria Ló[email protected] Complutense de Madrid
4a
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
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
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
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
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
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
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
10
Herramientas
Comerciales
Machine Learning
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.
12
Herramientas
Comerciales
Business Intelligence
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
14
Visualización y Exploración
http://www.tylervigen.com/
15
Visualización y Exploración
http://www.tylervigen.com/
16
Visualización y Exploración
http://www.tylervigen.com/
17
Visualización y Exploración
18
Visualización y Exploración
19
Visualización y Exploración
20
Visualización y Exploración
21
Visualización y Exploración
No sólo para informar sino también para condicionar el comportamiento del cliente
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
23
- Se trata de descubrir los ‘diamantes’ del Data Mining de alguna forma viable en tiempo de ejecución
Algoritmos rápidos
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
25
Complejidad Algorítmica y Computacional
Algoritmos rápidos
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
27
Más sobre complejidad:
www.scottaaronson.com/blog/?p=263
bigocheatsheet.com/
http://www.sorting-algorithms.com/
Algoritmos rápidos
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
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
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)
Algoritmos rápidos
Reflexión:
Cómo paralelizar un algoritmo óptimo de ordenación
Diferencias entre Merge-Sort y Quick-Sort
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
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
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
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
36
Proyecto R: http://www.r-project.org/
Data Analytics con R
37
Data Analytics con R
38
Proyecto R: http://www.ibm.com/developerworks/library/ba-call-r-spss/
Data Analytics con R
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-
40
Tamaño del problema
41
Complejidad Espacial
42
Optimizar el tiempo de ejecución
43
Órdenes de complejidad
44
Notación asintótica de acotación
45
Algoritmos iterativos
46
Ejemplo iterativo
47
Ejemplo iterativo
48
Algoritmos recursivos
49
Ejemplo recursivo
Resolviendo por recurrencias se obtiene 4n+2, complejidad lineal
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…
51
Fibonacci: definición recursiva
52
Fibonacci
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
55
Fibonacci recursivo no final
56
Ejecución Fibonacci Recursivo
57
Fibonacci recursivo final
Complejidad O(n)
58
Optimización de Fibonacci
Complejidad O(logn)
59
Fibonacci optimo
Claves para el desarrollo de Proyectos Big Data
Victoria Ló[email protected] Complutense de Madrid