Minería de datos de gran escala usando R

36
Miner´ ıa de datos de gran escala usando R Miner´ ıa de datos de gran escala usando R Sergio Hern´ andez PhD computer science Laboratorio de Procesamiento de Informaci´on Geoespacial. Universidad Cat´olica del Maule. Chile [email protected] 10 de Octubre 2012 3er Encuentro Regional de Software Libre

Transcript of Minería de datos de gran escala usando R

Page 1: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

Minerıa de datos de gran escala usando R

Sergio HernandezPhD computer science

Laboratorio de Procesamiento de Informacion Geoespacial.Universidad Catolica del Maule. Chile

[email protected]

10 de Octubre 20123er Encuentro Regional de Software Libre

Page 2: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

Introduccion a R

Minerıa de datos

Figure : Aplicaciones de minerıa de datos

Page 3: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

Introduccion a R

Minerıa de datos

Figure : Acciones de minerıa de datos

Page 4: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

Introduccion a R

Minerıa de datos

Figure : Algoritmos de minerıa de datos

Page 5: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

Introduccion a R

Que es R?

R es un lenguaje y un ambiente de computacion estadıstica creadopor Ross Ihaka y Robert Gentleman de la Universidad de Aucklanden Nueva Zelandia y es distribuido bajo licencia GNU General PublicLicense.

La sintaxis del lenguaje R proviene del lenguaje S creado por AT&TLabs y desarrollado en el software comercial S Plus. El lenguaje esorientado a objetos e interpretado, por lo tanto permite al usuario“interactuar” con la linea de comandos, al mismo tiempo que creagraficos vectoriales de alta calidad.

Page 6: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

Introduccion a R

Que es R?

R es un lenguaje y un ambiente de computacion estadıstica creadopor Ross Ihaka y Robert Gentleman de la Universidad de Aucklanden Nueva Zelandia y es distribuido bajo licencia GNU General PublicLicense.

La sintaxis del lenguaje R proviene del lenguaje S creado por AT&TLabs y desarrollado en el software comercial S Plus. El lenguaje esorientado a objetos e interpretado, por lo tanto permite al usuario“interactuar” con la linea de comandos, al mismo tiempo que creagraficos vectoriales de alta calidad.

Page 7: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

Introduccion a R

Como se obtiene R?

Las fuentes, binarios y documentacion de R se obtiene mediante unacoleccion de mirrors llamada CRAN(http://CRAN.R-project.org/).

El codigo fuente es accesible directamente desde el servidorSubversion : https://svn.r-project.org/R/.

Los binarios estan disponibles para plataformas ix86 y x86 64 y parasistemas operativos Windows, Linux y Mac OS.

Mirror en Chile : http://dirichlet.mat.puc.cl/

Page 8: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

Introduccion a R

Como se obtiene R?

Las fuentes, binarios y documentacion de R se obtiene mediante unacoleccion de mirrors llamada CRAN(http://CRAN.R-project.org/).

El codigo fuente es accesible directamente desde el servidorSubversion : https://svn.r-project.org/R/.

Los binarios estan disponibles para plataformas ix86 y x86 64 y parasistemas operativos Windows, Linux y Mac OS.

Mirror en Chile : http://dirichlet.mat.puc.cl/

Page 9: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

Introduccion a R

Como se obtiene R?

Las fuentes, binarios y documentacion de R se obtiene mediante unacoleccion de mirrors llamada CRAN(http://CRAN.R-project.org/).

El codigo fuente es accesible directamente desde el servidorSubversion : https://svn.r-project.org/R/.

Los binarios estan disponibles para plataformas ix86 y x86 64 y parasistemas operativos Windows, Linux y Mac OS.

Mirror en Chile : http://dirichlet.mat.puc.cl/

Page 10: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

Introduccion a R

Como se obtiene R?

Las fuentes, binarios y documentacion de R se obtiene mediante unacoleccion de mirrors llamada CRAN(http://CRAN.R-project.org/).

El codigo fuente es accesible directamente desde el servidorSubversion : https://svn.r-project.org/R/.

Los binarios estan disponibles para plataformas ix86 y x86 64 y parasistemas operativos Windows, Linux y Mac OS.

Mirror en Chile : http://dirichlet.mat.puc.cl/

Page 11: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

Introduccion a R

Hola Mundo.R

> x<-1

> class(x)

[1] "numeric"

> s<-"hola mundo"

> class(s)

[1] "character"

> s

[1] "hola mundo"

Page 12: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

R para minerıa de datos de gran escala

Por que usar R para minerıa de datos?

R es un entorno de computacion estadıstica de alta calidaddisponible de manera gratuita para multiples plataformas.

Gran parte de las funciones estadısticas y matematicas que usan losalgoritmos de minerıa de datos forman parte de la distribucion basede R.

Existe una gran comunidad de usuarios y una plataforma dedicada(http://r-forge.r-project.org/softwaremap/tag_cloud.php?tag=data+mining) para compartir codigo, paquetes,documentacion, etc. etc.

Page 13: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

R para minerıa de datos de gran escala

Por que usar R para minerıa de datos?

R es un entorno de computacion estadıstica de alta calidaddisponible de manera gratuita para multiples plataformas.

Gran parte de las funciones estadısticas y matematicas que usan losalgoritmos de minerıa de datos forman parte de la distribucion basede R.

Existe una gran comunidad de usuarios y una plataforma dedicada(http://r-forge.r-project.org/softwaremap/tag_cloud.php?tag=data+mining) para compartir codigo, paquetes,documentacion, etc. etc.

Page 14: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

R para minerıa de datos de gran escala

Por que usar R para minerıa de datos?

R es un entorno de computacion estadıstica de alta calidaddisponible de manera gratuita para multiples plataformas.

Gran parte de las funciones estadısticas y matematicas que usan losalgoritmos de minerıa de datos forman parte de la distribucion basede R.

Existe una gran comunidad de usuarios y una plataforma dedicada(http://r-forge.r-project.org/softwaremap/tag_cloud.php?tag=data+mining) para compartir codigo, paquetes,documentacion, etc. etc.

Page 15: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

R para minerıa de datos de gran escala

Por que NO usar R para minerıa de datos?

R fue creado en el ano 1995 cuando el espacio en disco duro y lamemoria RAM eran mucho mas costosos que hoy en dıa.

Particularmente, R adolece de los siguientes problemas:

No es multi-hilo por lo tanto no puede usar las arquitecturasmodernas multi-core o CPUs multiples.El tamano de los datos analizados tiene que ajustarse a la RAM de lamaquina.

Page 16: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

R para minerıa de datos de gran escala

Por que NO usar R para minerıa de datos?

R fue creado en el ano 1995 cuando el espacio en disco duro y lamemoria RAM eran mucho mas costosos que hoy en dıa.

Particularmente, R adolece de los siguientes problemas:

No es multi-hilo por lo tanto no puede usar las arquitecturasmodernas multi-core o CPUs multiples.El tamano de los datos analizados tiene que ajustarse a la RAM de lamaquina.

Page 17: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

R paralelo

Hablando R en paralelo

Actualmente existen diversas estrategias basadas en computoparalelo para vencer las deficiencias de R para bases de datos degran escala.

El computo paralelo no requiere necesariamente supercomputadoras,sino que tambien puede hacerse en maquinas de memoria compartida(multicore) o distribuida (clusters). Estas estrategias se basan en:

Dividir una tarea grande en varias mas pequenas y distribuirlas envarias CPUs.Particionar el conjunto de datos de manera que cada grupo puedaajustarse a la RAM de la(s) maquina.

Page 18: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

R paralelo

Hablando R en paralelo

Actualmente existen diversas estrategias basadas en computoparalelo para vencer las deficiencias de R para bases de datos degran escala.

El computo paralelo no requiere necesariamente supercomputadoras,sino que tambien puede hacerse en maquinas de memoria compartida(multicore) o distribuida (clusters). Estas estrategias se basan en:

Dividir una tarea grande en varias mas pequenas y distribuirlas envarias CPUs.Particionar el conjunto de datos de manera que cada grupo puedaajustarse a la RAM de la(s) maquina.

Page 19: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

R paralelo

Hablando R en paralelo

Actualmente existen diversas estrategias basadas en computoparalelo para vencer las deficiencias de R para bases de datos degran escala.

El computo paralelo no requiere necesariamente supercomputadoras,sino que tambien puede hacerse en maquinas de memoria compartida(multicore) o distribuida (clusters). Estas estrategias se basan en:

Dividir una tarea grande en varias mas pequenas y distribuirlas envarias CPUs.

Particionar el conjunto de datos de manera que cada grupo puedaajustarse a la RAM de la(s) maquina.

Page 20: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

R paralelo

Hablando R en paralelo

Actualmente existen diversas estrategias basadas en computoparalelo para vencer las deficiencias de R para bases de datos degran escala.

El computo paralelo no requiere necesariamente supercomputadoras,sino que tambien puede hacerse en maquinas de memoria compartida(multicore) o distribuida (clusters). Estas estrategias se basan en:

Dividir una tarea grande en varias mas pequenas y distribuirlas envarias CPUs.Particionar el conjunto de datos de manera que cada grupo puedaajustarse a la RAM de la(s) maquina.

Page 21: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

R paralelo

Snow

El paquete snow (Simple Network of Workstations) permite usar uncluster tradicional tipo Beowulf para realizar tareas vergonzosamenteparalelas.

snow usa una arquitectura maestro/esclavo, donde el maestro envıatrabajos a los esclavos y luego de realizado, los esclavos devuelvenlos resultados al maestro.

Puede usar diferentes medios de transporte para comunicar elmaestro con los esclavos, lo cual lo hace altamente portable. Masespecıficamente, es posible utilizar sockets, MPI (message passageinterface), PVM (parallel virtual machines) o NetWorkSpaces.

Page 22: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

R paralelo

Snow

El paquete snow (Simple Network of Workstations) permite usar uncluster tradicional tipo Beowulf para realizar tareas vergonzosamenteparalelas.

snow usa una arquitectura maestro/esclavo, donde el maestro envıatrabajos a los esclavos y luego de realizado, los esclavos devuelvenlos resultados al maestro.

Puede usar diferentes medios de transporte para comunicar elmaestro con los esclavos, lo cual lo hace altamente portable. Masespecıficamente, es posible utilizar sockets, MPI (message passageinterface), PVM (parallel virtual machines) o NetWorkSpaces.

Page 23: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

R paralelo

Snow

El paquete snow (Simple Network of Workstations) permite usar uncluster tradicional tipo Beowulf para realizar tareas vergonzosamenteparalelas.

snow usa una arquitectura maestro/esclavo, donde el maestro envıatrabajos a los esclavos y luego de realizado, los esclavos devuelvenlos resultados al maestro.

Puede usar diferentes medios de transporte para comunicar elmaestro con los esclavos, lo cual lo hace altamente portable. Masespecıficamente, es posible utilizar sockets, MPI (message passageinterface), PVM (parallel virtual machines) o NetWorkSpaces.

Page 24: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

R paralelo

Hola Mundo paralelo usando Snow

> library(snow)> cl <- makeCluster(4, type="MPI")Loading required package: Rmpi4 slaves are spawned successfully. 0 failed.> mpi.remote.exec(paste("Hola Mundo CPU #",mpi.comm.rank(),"of",mpi.comm.size()))$slave1[1] "Hola Mundo CPU # 1 de 4"$slave2[1] "Hola Mundo CPU # 2 de 4"$slave3[1] "Hola Mundo CPU # 3 de 4"$slave4[1] "Hola Mundo CPU # 4 de 4"

Page 25: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

R paralelo

Clustering usando k-means

Sepal.Length

2.0 2.5 3.0 3.5 4.0 0.5 1.0 1.5 2.0 2.5

4.5

5.5

6.5

7.5

2.02.53.03.54.0

Sepal.Width

Petal.Length

12

34

56

7

4.5 5.5 6.5 7.5

0.51.01.52.02.5

1 2 3 4 5 6 7

Petal.Width

Edgar Anderson's Iris Data

Figure : Aplicaciones de minerıa de datos

Page 26: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

R paralelo

K-means paralelo usando Snow

Table : Tiempo de ejecucion del algoritmo K-means con puntos de partidaaleatorios

# Puntos Secuencial [s] Paralelo [s]1e2 0.016 0.0091e3 0.126 0.1171e4 1.010 0.301

1e6 (4 trabajos) 108.704 28.3631e6 (10 trabajos) 108.704 35.642

Page 27: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

R paralelo

Balanceo de carga con snow

0 5 10 15 20 25

Elapsed Time

Nod

e

01

23

4

Cluster Usage

Figure : 4 trabajos con 250.000 tareas

Page 28: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

R paralelo

Balanceo de carga con snow

0 5 10 15 20 25 30 35

Elapsed Time

Nod

e

01

23

4

Cluster Usage

Figure : 10 trabajos con 100.000 tareas

Page 29: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

Open Data + Visualization

R+Open Data

La filosofıa Open Data1 busca hacer disponibles algunos datos deinteres pubico hacia la comunidad mediante APIs y protocolosespecializados.

Esta iniciativa busca transparentar las polıticas publicas a traves debuenas practicas que permitan el acceso expedito, seguro y eficientede los datos.

Por otra parte, existe una variedad de dispositivos de monitoreo quegeneran un gran volumen de datos georeferenciados en tiempo real(clima, salud, calidad del aire) que pueden ser combinados yreutilizados para diferentes aplicaciones.

1http://www.opendatafoundation.org/

Page 30: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

Open Data + Visualization

R+Open Data

La filosofıa Open Data1 busca hacer disponibles algunos datos deinteres pubico hacia la comunidad mediante APIs y protocolosespecializados.

Esta iniciativa busca transparentar las polıticas publicas a traves debuenas practicas que permitan el acceso expedito, seguro y eficientede los datos.

Por otra parte, existe una variedad de dispositivos de monitoreo quegeneran un gran volumen de datos georeferenciados en tiempo real(clima, salud, calidad del aire) que pueden ser combinados yreutilizados para diferentes aplicaciones.

1http://www.opendatafoundation.org/

Page 31: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

Open Data + Visualization

R+Open Data

La filosofıa Open Data1 busca hacer disponibles algunos datos deinteres pubico hacia la comunidad mediante APIs y protocolosespecializados.

Esta iniciativa busca transparentar las polıticas publicas a traves debuenas practicas que permitan el acceso expedito, seguro y eficientede los datos.

Por otra parte, existe una variedad de dispositivos de monitoreo quegeneran un gran volumen de datos georeferenciados en tiempo real(clima, salud, calidad del aire) que pueden ser combinados yreutilizados para diferentes aplicaciones.

1http://www.opendatafoundation.org/

Page 32: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

Open Data + Visualization

Proyecto Agrosense

Figure : Sensores inalambricos

Page 33: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

Open Data + Visualization

Proyecto Agrosense

2012−07−20 2012−07−27 2012−08−03 2012−08−12 2012−09−25

Humedad del Suelo nivel 1: nodo 1

Dia

Ce

ntib

are

s

05

01

00

15

02

00

25

03

00

2012−07−20 2012−07−27 2012−08−03 2012−08−12 2012−09−25

Humedad del Suelo nivel 2: nodo 1

Dia

Ce

ntib

are

s

05

01

00

15

02

00

25

03

00

2012−07−20 2012−07−27 2012−08−03 2012−08−12 2012−09−25

Humedad del Suelo nivel 3: nodo 1

Dia

Ce

ntib

are

s

05

01

00

15

02

00

25

03

00

Figure : Sensores humedad del suelo en sector Punta de Diamante en lacomuna de San Clemente

Page 34: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

Open Data + Visualization

Proyecto Agrosense

Figure : Visualizacion en Google Earth

Page 35: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

Open Data + Visualization

Proyecto Agrosense

Figure : Visualizacion en Google Earth

Page 36: Minería de datos de gran escala usando R

Minerıa de datos de gran escala usando R

Open Data + Visualization

Preguntas + Sugerencias?