Big data: a data sicentist view

44
MADRID · NOV 21-22 · 2014 Big data: a data scientist view Fernando Calle Data Scientist at ASPgems and Professor at UEX [email protected] www.aspgems.com twitter: @calle_f Machine Learning Spain http://www.meetup.com/MachineLearningSpain/

Transcript of Big data: a data sicentist view

Page 1: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Big data: a data scientist view

Fernando Calle

Data Scientist at ASPgems and Professor at UEX

[email protected]

www.aspgems.com

twitter: @calle_f

Machine Learning Spain

http://www.meetup.com/MachineLearningSpain/

Page 2: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Page 3: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Page 4: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Menú de hoy1er Plato

● Data Hype

● Big Data & Data Science

2º Plato

● Arquitectura

● Lectura de Datos

● Tratamiento de datos

Postre

● Visualización

● Informe de resultados

Page 5: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Menú de hoy1er Plato

● Data Hype

● Big Data & Data Science

2º Plato

● Arquitectura

● Lectura de Datos

● Tratamiento de datos (con R)

Postre

● Visualización

● Informe de resultados

Page 6: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Data Hype

“Data is arguably the most importan natural resource of

this century.” - Michael Dell, chairman and CEO at Dell.

"Data really powers everything that we do." – Jeff

Weiner, chief executive of LinkedIn.

“I keep saying that the sexy job in the next 10 years will

be statisticians, and I’m not kidding.” – Hal Varian, chief

economist at Google

"Data is the oil of the 21st century, and analytics is the

combustion engine." - Peter Sondergaard, Gartner

Group

Page 7: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Data Hype

● 90% de los datos mundiales se han

creado en los dos últimos años.

● 80% de la información hoy en día es no

estructurada.

● Se estima que existen 1 billón de

dispositivos conectados, que producen

2.5 trillones de bytes al día.

Page 8: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Los datos siempre han proporcionado

información y resultados valiosos. Pero es

ahora cuando se han dado cuenta las

instituciones públicas y privadas.

“De repente tiene sentido económico

aprovechar todo el valor que tienen los datos” -

Sean Owen, Director de Data Science en

Cloudera.

Data Hype

Page 9: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Page 10: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Page 11: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Big Data & Data Science

Las tres V’s (Lo siento...otra vez)

- Volumen: almacenamiento de datos.

- Variedad: diferentes tipos de datos y de

fuentes.

- Velocidad: datos generados rápidamente y

resultados en “tiempo real”.

Las 4 V’s -> Veracidad

Las 5 V’s -> Valor

Page 12: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Big Data & Data Science

● Todo el mundo habla de Big Data, pero casi

nadie sabe realmente hacerlo.

● Todo el mundo piensa que el resto hace Big

Data, pero casi nadie lo está haciendo.

Page 13: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Big Data & Data Science

Page 14: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Big Data & Data Science

“Data Scientist is the

sexiest job in the 21st

century” - Harvard

Business review.

Page 15: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Big Data & Data Science

Data Science: El estudio científico que trata la

creación, validación y transformación de los

datos para darles significado y valor.

Data Scientist: Profesional que utiliza modelos

científicos para obtener información y

significado de datos en bruto.

Page 16: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Big Data & Data Science

Data Science is OSEMN!!

★ Obtaining

★ Scrubbing

★ Exploring

★ Modeling

★ iNterpreting

Page 17: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Big Data & Data Science

● Big Data es aún una idea un poco difusa.

● Marcará una época en la que, apoyándose

en la estadística (data science), tendrá un

alto impacto en todos los negocios.

● Las mejores decisiones se toman basadas

en datos.

Page 18: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Retos del científico de datos

con Big Data● Buscar las preguntas adecuadas.

● Analizar la procedencia de los datos y su

calidad.

● Tener en cuenta la privacidad, confidencialidad,

transparencia e identidad.

● Obtener relaciones coherentes y no por azar.

● Visualización de resultados.

● Replicabilidad de métodos y resultados.

Page 19: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Menú de hoy1er Plato

● Data Hype

● Big Data & Data Science

2º Plato

● Arquitectura

● Lectura de Datos

● Tratamiento de datos

Postre

● Visualización

● Informe de resultados

Page 20: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Arquitectura

● Hadoop

● Spark

● Cassandra

● MongoDB

● Storm

● Flume

● BigQuery

● ...

Page 21: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Carga/Lectura de datos

● Sqoop

● HBase, Hive

● Pentaho

● CSV

● Rhive, bigRquery

● ...

Page 22: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Tratamiento de datos

● Se pueden utilizar diferentes herramientas:

R, Julia, Python, scikit-learn, Pandas,

Mahout, Azure ML...

● API’s, APPs: graphlab, dataiku, BigML,

Indico,...

● Hay que elegir cuidadosamente en cada

caso.

Page 23: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Tratamiento de datos

● Mahout y MLbase: para hadoop y spark.

● Google Prediction: caja negra de algoritmos.

● Azure ML: incluye un entorno para R.

● R y Python: los más usados por data

scientists.

Page 24: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Tratamiento de datos

Page 25: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Tratamiento de datos

¿En qué es especialmente bueno R?

● Maneja cualquier conjunto de datos que quepa en memoria

● Uso de dataframes optimizado

● Puede trabajar con paralelización (mclapply)

● Acepta librerías de C++ (Rcpp/Rcpp11)

● Enlaza con H2O (sobre nuestros servidores)

● Ventajas añadidas con dplyr y bigRquery

● Visualización de resultados en general es insuperable

● Resultados interactivos con Shiny, ggvis o R2d3

● +2M de usuarios y contribuidores

Page 26: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Tratamiento de datos

¿En qué es especialmente bueno Python?

● Análisis sencillo de conjuntos de datos medianos o

pequeños con Pandas.

● Sincronización de los clusters rápida usando elasticluster

● Paralelización sencilla con ipython.parallel

● El código es fácilmente legible

● Para procesos poco costosos es muchísimo más rápido que

R, por ejemplo con Numba (compilado con instrucciones

nativas)

● Librerías como iPython, NumPy, SciPy, Pandas.

Page 27: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014TIOBE

INDEX

Page 28: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Page 29: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Tratamiento de datos

Carga de datos

● foreign: carga de datos externos (SAS, SPSS, excel,...)

● SQLdf, RODBC, RPostgresSQL, RSQLite: carga de datos y consultas

parecidas a SQL.

Manipulación

● lubridate: contiene todas las funciones que se pueden aplicar sobre datos

en formato fecha y se utilizan de forma sencillísima.

● reshape2: transformación del formato de los datos. (o también tidyr)

● stringR: manejo de cadenas de texto optimizado.

● plyr: agregación de datos y aplicación de funciones por grupos. Funciones

como ddply, daply, dlply, adply, ldply indispensables. ¡Mejorado con dplyr!

Page 30: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

dplyr:filter, mutate, select, summarise, arrange, group by, *_join

Page 31: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

magrittr: %>%

Page 32: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Tratamiento de datos

Modelización

● caret: incluye sencillas herramientas para analizar la calidad de los datos,

selección de características y construcción de modelos predictivos. Los

resultados que proporciona son especialmente completos.

● car: Entre otros beneficios permite realizar ANOVA tipo II y tipo III.

● random forest: Este método de machine learning puede ser utilizado para

el aprendizaje tanto supervisado como no supervisado. Es bastante

popular por su sencillez y buenos resultados

● qcc: Paquete para el control estadístico de calidad. Ofrece funciones

fáciles de utilizar y gráficos muy intuitivos para observar procesos bajo

control y sucesos que están fuera de control.

● zoo y forecast: Realizan el formateo de datos y creación de modelos de

predicción para series temporales.

Page 33: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Menú de hoy1er Plato

● Data Hype

● Big Data & Data Science

2º Plato

● Arquitectura

● Lectura de datos

● Tratamiento de datos

Postre

● Visualización

● Informe de resultados

Page 34: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Visualización

Page 35: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Visualización

● ggplot2: Mejora las funciones habituales de R para gráficos

pudiendo incluir más capas y especificaciones. Hay

diferentes libros de gran utilidad para este paquete.

● rgl: Gráficos interactivos en 3D usando OpenGL y escrito

sobre C++. Presenta una navegación interactiva sobre el

gráfico que permite hacer zoom con el propio ratón.

● shiny y ggvis: utilizando el framework para aplicaciones

web de shiny, se utiliza ggvis para construir gráficos

interactivos que se visualizan en un navegador.

Page 36: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

● Quieres conseguir un gráfico que sea

efectivo para comunicar resultados de R.

● Únicamente tienes una idea ligera de cómo

quieres que sea el gráfico.

● Necesitas código inicial de apoyo para

después poder personalizarlo.

http://shinyapps.stat.ubc.ca/r-graph-catalog/

Visualización

Page 37: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Page 38: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Diferentes formatos para resultados

● xtable: para exportar tablas desde dataframes a HTML

o Latex en un simple paso.

● R Markdown con knitr: permite elaborar informes en

formato Markdown (por ejemplo en HTML).

● pander: convierte documentos generados con

markdown a otros formatos como PDF, doc, etc.

Page 39: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

R Markdown + Shinytitle: "Codemotion"

author: "Fernando"

date: "Friday, November 21, 2014"

output: html_document

runtime: shiny

---

Este documento de R Markdown se ha convertido en interactivo gracias a Shiny.

## Inputs y Outputs

Se pueden incluir inputs y outputs de Shiny directamente en el documento. Aquí se observa cómo un

gráfico sencillo de R se puede hacer interactivo mediante la función de Shiny `renderPlot`. Las

funciones `selectInput` y `sliderInput` crean los widgets que se utilizan en el gráfico.

Page 40: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

R Markdown + Shiny```{r, echo=FALSE}

inputPanel(

selectInput("n_breaks", label = "Number of bins:",

choices = c(10, 20, 35, 50), selected = 20),

sliderInput("bw_adjust", label = "Bandwidth adjustment:",

min = 0.2, max = 2, value = 1, step = 0.2)

)

renderPlot({

hist(faithful$eruptions, probability = TRUE, breaks = as.numeric(input$n_breaks),

xlab = "Duration (minutes)", main = "Geyser eruption duration")

dens <- density(faithful$eruptions, adjust = input$bw_adjust)

lines(dens, col = "blue")

})

```

Page 41: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

R Markdown + Shiny## Aplicación

También es posible cargar directamente una aplicación completa de Shiny en un documento R

Markdown utilizando la función `shinyAppDir`. Este ejemplo carga una aplicación de Shiny que se

encuentra en otro directorio:

```{r, echo=FALSE}

shinyAppDir(

system.file("examples/06_tabsets", package="shiny"),

options=list(

width="100%", height=550

)

)

```

Se puede apreciar que se ha definido `echo = FALSE` en todos los trozos de código R. Con esto se

consigue que no se muestre el codigo en el documento html.

Page 42: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

R Markdown + Shiny

Page 43: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014Die Hard is © 20th Century Fox

Page 44: Big data: a data sicentist view

MADRID · NOV 21-22 · 2014

Thanks!

Fernando Calle

Data Scientist at ASPgems and Professor at UEX

[email protected]

www.aspgems.com

twitter: @calle_f

Machine Learning Spain

http://www.meetup.com/MachineLearningSpain/