[R-es] SVM hadoop

Jorge Ayuso Rejas jayusor en gmail.com
Vie Dic 11 11:27:31 CET 2015


Si SparkR está muy bien pero todavía está en algunas cosas un poco verde.

para la parte de mlib solo se pueden hacer glm:

https://spark.apache.org/docs/latest/sparkr.html#machine-learning

Justo di un pequeño taller de esto en las jornadas de R, aquí tienes los
apuntes:

http://jayusor.github.io/taller_SparkR/

Un saludo.

El 11 de diciembre de 2015, 10:57, MªLuz Morales <mlzmrls en gmail.com>
escribió:

> Hola Jorge,
> muchas gracias por tu esquema. Mi caso sería el primero, el más
> complicado. Por lo que he leído, svm no es fácil de implementar, aunque he
> visto algo(muy poco) de implementación svm en hadoop con R. Yo he
> encontrado que hay algo llamado SparkR, mediante lo cual puedes usar la
> librería mllib, que tiene svm y ejecutarlo directamente desde R y corre en
> paralelo mediante Spark. Espero haberlo entendido bien. También esto puede
> estar integrado con hadoop. No se si realmente se podrá hacer un svm o
> tendrá limitaciones...
>
> Un saludo
> MªLuz
>
> El 11 de diciembre de 2015, 9:49, Jorge Ayuso Rejas <jayusor en gmail.com>
> escribió:
>
>> Hola Mª Luz,
>>
>> Te cuento un poco mi visión:
>>
>> Lo primero de todo es tener claro qué quiero hacer exactamente en
>> paralelo, se me ocurren 3 escenarios:
>>
>> (1)  Aplicar un modelo en este caso SVM sobre unos datos muy grandes y
>> por eso necesito hadoop/spark
>> (2)  Realizar muchos modelos SVM sobre datos pequeños (por ejemplo uno
>> por usuario)  y por eso necesito hadoop/spark para parelilizar estos
>> procesos en muchas máquinas y acabar en un tiempo finito.
>> (3)  Con un modelo ya realizado en local sobre una muestra quiero hacer
>> predicciones "predict" sobre muchos datos y por eso necestio hadoop/spark
>> para hacer las predicciones ne paralelo.
>>
>>
>> Posibles soluciones:
>>
>> (1) Lo más complicado de los 3 escenarios. Lo primero de todo es pensar
>> si con una muestra suficientemente grande y un único ordenador potente
>> (32gb 64gb?) te puede valer. Si es el caso puedes usar R y cualquier
>> paquete que incluya SVM. Si esto no te vale y quieres hacerlo sobre el
>> total de los datos (En mi opinión esto no garantiza que vayas a conseguir
>> mejores resultados..). Por lo que estuve investigando (si me equivoco que
>> alguien me corrija!) los SVM no son de lo mejorcito para paralelizar, Spark
>> como comentó Carlos tiene implementado SVM lineal pero hoy por hoy no lo
>> podrás ejecutar desde R (si desde python). Otras opciones que te recomiendo
>> es probar con otros algoritmos, mira por ejemplo h2o (http://h2o.ai/)
>>
>>
>> (2) Con esto te vale perfectamente RHADOOP y cualquier svm implementado
>> en R ya que cada svm es 'pequeño' solo que tienes que hacer muchos
>>
>> (3) Lo mismo que (2) puedes te vale con RHADOOP y hacer `predict` en
>> paralelo.
>>
>>
>> Un saludo,
>> Jorge A.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> El 11 de diciembre de 2015, 8:49, MªLuz Morales <mlzmrls en gmail.com>
>> escribió:
>>
>>> Hola,
>>> cuando hablas de la opción Rstudio en Amazon, te refieres mediante
>>> hadoop?
>>> (esa es la idea que tengo, usar R con hadoop en amazon, pero necesito que
>>> el algoritmo svm sea paralelizable...
>>>
>>> Esto otro que mencionas:
>>> http://www.teraproc.com/front-page-posts/r-on-demand/
>>> que entorno de paralelización usa? conozco hadoop y spark,
>>>
>>>
>>> Gracias
>>> Un saludo
>>>
>>>
>>> El 10 de diciembre de 2015, 16:03, Carlos Ortega <
>>> cof en qualityexcellence.es>
>>> escribió:
>>>
>>> > Hola,
>>> >
>>> > Puedes poner un RStudio en Amazon, poner "caret" y a correr....
>>> > No sé si tendrás suficiente con lo que te pueda ofrecer Amazon para tu
>>> > problema... creo que sí...  ;-)....
>>> >
>>> > O directamente hacerlo aquí, que toda esta instalación ya la tienen
>>> hecha:
>>> >
>>> > http://www.teraproc.com/front-page-posts/r-on-demand/
>>> >
>>> > Gracias,
>>> > Carlos.
>>> >
>>> > El 10 de diciembre de 2015, 14:43, MªLuz Morales <mlzmrls en gmail.com>
>>> > escribió:
>>> >
>>> >> Hola,
>>> >>
>>> >> gracias por tu sugerencia, aunque creo que no será suficiente porque
>>> mi
>>> >> objetivo es trabajar con big data
>>> >>
>>> >> El 10 de diciembre de 2015, 13:23, Carlos Ortega <
>>> >> cof en qualityexcellence.es> escribió:
>>> >>
>>> >>> Hola,
>>> >>>
>>> >>> ¿Y no te valdría el ejecutar tu código con "caret" y activar la
>>> opción
>>> >>> de paralelizar?.
>>> >>> El escenario "caret + paralelización + svm" funciona sin problemas.
>>> >>>
>>> >>> Adjunto una captura de pantalla del libro de "Kuhn" (Applied
>>> Predictive
>>> >>> Modeling) con los tiempos de ejecución que se obtienen al ejecutar
>>> >>> diferentes modelos (SVM, RF, LDA) sobre un mismo conjunto de datos y
>>> >>> utiilzando diferente número de "cores".
>>> >>>
>>> >>> Gracias,
>>> >>> Carlos Ortega
>>> >>> www.qualityexcellence.es
>>> >>>
>>> >>> El 10 de diciembre de 2015, 11:56, MªLuz Morales <mlzmrls en gmail.com>
>>> >>> escribió:
>>> >>>
>>> >>>> Hola,
>>> >>>> gracias por vuestras respuestas anteriores.  Son interesantes
>>> aunque me
>>> >>>> han
>>> >>>> surgido algunas dudas. Por ejemplo, con respecto al paquete e1071.
>>> En
>>> >>>> este
>>> >>>> enlace parece que si lo usan para hacer máquina de soporte vector en
>>> >>>> hadoop.
>>> >>>>
>>> >>>>
>>> http://stackoverflow.com/questions/17731261/r-hadoop-rmr2-svm-model-conver-result-list-class-to-original-class-sv?rq=1
>>> >>>>
>>> >>>> Carlos, por qué decías que no correrán en paralelo los svm del
>>> paquete
>>> >>>> e1071??
>>> >>>>
>>> >>>> Gracias
>>> >>>> Un saludo
>>> >>>> MªLuz
>>> >>>>
>>> >>>> El 10 de diciembre de 2015, 2:35, Javier Marcuzzi <
>>> >>>> javier.ruben.marcuzzi en gmail.com> escribió:
>>> >>>>
>>> >>>> > Estimados
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>> > Un día leí algo en el siguiente hipervínculo, pero nunca lo use.
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>>
>>> http://blog.revolutionanalytics.com/2015/06/using-hadoop-with-r-it-depends.html
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>> > Javier Rubén Marcuzzi
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>> > *De: *Carlos J. Gil Bellosta
>>> >>>> > *Enviado: *miércoles, 9 de diciembre de 2015 14:33
>>> >>>> > *Para: *MªLuz Morales
>>> >>>> > *CC: *r-help-es
>>> >>>> > *Asunto: *Re: [R-es] SVM hadoop
>>> >>>>
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>> > No, no correrán en paralelo si usas los SVM de paquetes como
>>> e1071.
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>> > No obstante, tienes, por un lado, los trucos habituales para hacer
>>> >>>> algo
>>> >>>> >
>>> >>>> > "parecido" a SVM o "basado" en SVM pero que no sea SVM. Si es que
>>> eso
>>> >>>> te
>>> >>>> >
>>> >>>> > vale.
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>> > Puedes probar a hacerlo con mllib (sobre Spark), como aquí
>>> >>>> >
>>> >>>> > <
>>> >>>> >
>>> >>>>
>>> http://spark.apache.org/docs/latest/mllib-linear-methods.html#linear-support-vector-machines-svms
>>> >>>> > >.
>>> >>>> >
>>> >>>> > ¡Pero no lo he probado nunca!
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>> > Un saludo,
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>> > Carlos J. Gil Bellosta
>>> >>>> >
>>> >>>> > http://www.datanalytics.com
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>> > El 9 de diciembre de 2015, 13:15, MªLuz Morales <
>>> mlzmrls en gmail.com>
>>> >>>> >
>>> >>>> > escribió:
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>> > > Buenos días,
>>> >>>> >
>>> >>>> > >
>>> >>>> >
>>> >>>> > > alguien sabe si hay alguna manera de implementar una máquina de
>>> >>>> soporte
>>> >>>> >
>>> >>>> > > vectorial (svm) con R-hadoop??
>>> >>>> >
>>> >>>> > >
>>> >>>> >
>>> >>>> > > Mi interés es hacer procesamiento big data con svm. Se que en R,
>>> >>>> existen
>>> >>>> >
>>> >>>> > > los paquetes {RtextTools} y {e1071} que permiten hacer svm.
>>> Pero no
>>> >>>> estoy
>>> >>>> >
>>> >>>> > > segura de que el algoritmo sea paralelizable, es decir, que
>>> pueda
>>> >>>> correr
>>> >>>> > en
>>> >>>> >
>>> >>>> > > paralelo a través de la plataforma R-hadoop.
>>> >>>> >
>>> >>>> > >
>>> >>>> >
>>> >>>> > > Muchas gracias
>>> >>>> >
>>> >>>> > > Un saludo
>>> >>>> >
>>> >>>> > > MªLuz Morales
>>> >>>> >
>>> >>>> > >
>>> >>>> >
>>> >>>> > >         [[alternative HTML version deleted]]
>>> >>>> >
>>> >>>> > >
>>> >>>> >
>>> >>>> > > _______________________________________________
>>> >>>> >
>>> >>>> > > R-help-es mailing list
>>> >>>> >
>>> >>>> > > R-help-es en r-project.org
>>> >>>> >
>>> >>>> > > https://stat.ethz.ch/mailman/listinfo/r-help-es
>>> >>>> >
>>> >>>> > >
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>> >                 [[alternative HTML version deleted]]
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>> > _______________________________________________
>>> >>>> >
>>> >>>> > R-help-es mailing list
>>> >>>> >
>>> >>>> > R-help-es en r-project.org
>>> >>>> >
>>> >>>> > https://stat.ethz.ch/mailman/listinfo/r-help-es
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>> >
>>> >>>>
>>> >>>>         [[alternative HTML version deleted]]
>>> >>>>
>>> >>>> _______________________________________________
>>> >>>> R-help-es mailing list
>>> >>>> R-help-es en r-project.org
>>> >>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>> >>>>
>>> >>>
>>> >>>
>>> >>>
>>> >>> --
>>> >>> Saludos,
>>> >>> Carlos Ortega
>>> >>> www.qualityexcellence.es
>>> >>>
>>> >>
>>> >>
>>> >
>>> >
>>> > --
>>> > Saludos,
>>> > Carlos Ortega
>>> > www.qualityexcellence.es
>>> >
>>>
>>>         [[alternative HTML version deleted]]
>>>
>>> _______________________________________________
>>> R-help-es mailing list
>>> R-help-es en r-project.org
>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>>
>>
>>
>>
>> --
>> Jorge Ayuso Rejas
>>
>
>


-- 
Jorge Ayuso Rejas

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es