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
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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
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.
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.
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.
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.
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
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.
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.
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.