Minería de datos de gran escala usando R

Post on 04-Jul-2015

1.995 views 0 download

Transcript of 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

shernandez@ucm.cl

10 de Octubre 20123er Encuentro Regional de Software Libre

Minerıa de datos de gran escala usando R

Introduccion a R

Minerıa de datos

Figure : Aplicaciones de minerıa de datos

Minerıa de datos de gran escala usando R

Introduccion a R

Minerıa de datos

Figure : Acciones de minerıa de datos

Minerıa de datos de gran escala usando R

Introduccion a R

Minerıa de datos

Figure : Algoritmos de minerıa de datos

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.

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.

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/

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/

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/

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/

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"

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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"

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

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

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

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

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/

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/

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/

Minerıa de datos de gran escala usando R

Open Data + Visualization

Proyecto Agrosense

Figure : Sensores inalambricos

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

Minerıa de datos de gran escala usando R

Open Data + Visualization

Proyecto Agrosense

Figure : Visualizacion en Google Earth

Minerıa de datos de gran escala usando R

Open Data + Visualization

Proyecto Agrosense

Figure : Visualizacion en Google Earth

Minerıa de datos de gran escala usando R

Open Data + Visualization

Preguntas + Sugerencias?