[R-es] ¿Está R perdiendo la batalla?

javier.ruben.marcuzzi en gmail.com javier.ruben.marcuzzi en gmail.com
Dom Ene 15 22:45:02 CET 2017


Estimados

Yo vengo del lado de la biología, no de las matemáticas, hace algunos años yo era ayudante en la cátedra de genética y mi profesor me enseñaba fortran (el tenía SAS), recuerdo que para tener un compilador me compre una pc Pentium III con una cantidad extraordinaria de ram (256 megas), a la cuál le instale open suse. Dentro de este encontré Python, fortran, R, etc.

En ese momento no comprendía mucho el porqué tener que escribir en fortran 77, y por mi cuenta jugaba con Python y R. Nadie usaba R en la universidad, incluso una investigación no me dejaron publicarla porque R no era conocido.

Pero aprendí algo, R tiene cosas en c, c++, fortran, las cosas complejas están escritas en forma optimizada, y lo que leía en aquella época era un artículo que decía que Python mataría a fortran (incluso Sun estaba realizando un nuevo lenguaje).

Lo importante es tener la herramienta que realice lo necesario, sin errores y a una velocidad adecuada.

El año pasado asistí a una conferencia de Big Data, el que dictaba dicho evento es profesor universitario, consultor, etc., pero en el servidor usaba noje.js, eran celeron, como de 4 GB de ram. Realizaba map reduce y etc. Pero si hoy (teniendo el dinero) se puede comprar una computadora con Xenon y 32, 64 procesadores (ni se cuanto), ram en una cantidad abismal, R server puede ser descargado gratis, comprado, o compilado. 

En otras palabras, lo que hace unos años si o si requería map reduce, hoy puede ser trabajado por una computadora, lógicamente, datos grande computadora grande, quedando el Big Data para centros realmente grandes, el resto de los mortales teniendo una computadora con capacidad industrial no tendría los requerimientos para map reduce, entendiendo a este último para trabajar en nodos informáticos, porque una sola computadora xenón alanza en la mayoría de los casos.

Cuándo uno tiene muchos datos no piensa en realizar un promedio, sino en una técnica de análisis más elaborada, y en ese caso las herramientas se reducen, y la eficiencia de un lenguaje está de la mano de la compilación, en procesos en paralelo, en si el compilador si este utiliza vectores.

¿Hay un algoritmo para el análisis que deseo?, luego ¿costo de licencia?, ¿costo informático en proceso y dinero? Con respuestas a esas preguntas recién salir a comprar hardware y software.

Es verdad, Python tiene personas que lo “quieren y mucho”, charlando con un conocido que está realizando la tesis con este lenguaje me decía “la optimización viene después”, lógicamente, en un ambiente académico obtendrá su tesis con Python, pero en un ambiente laboral ¿usará Python o solo sus conocimiento y otro lenguaje?

Yo estoy estudiando algo algunos frameworks en C#, tienen redes neuronales, regresiones, etc. El escribirlo es muy parecido, siempre que se sepa que se está realizando, pero hay una diferencia, se compila. Y por otro lado la otra diferencia al trabajar en asincrónico, es llevar un orden en los hilos o procesadores, etc.

El centro CERN (creo que se llama así el e física europeo), tiene disponible un framework en c++ para trabajar con muchos datos.

Yo pienso que lo popular no siempre es lo adecuado, por ejemplo, para que complicarse mucho para pilotear un planeador, pero manejar una nave espacial solo es cosa de astronautas, estos son muy pocos, tienen sus requerimientos específicos, sin embargo en informática las empresas o publicaciones nos dicen cosas de rendimiento, escalabilidad, y parámetros técnicos que posiblemente el que escribe el artículo que leemos nunca usó ni usará esas características especiales, porque él solo sabe pilotear una avioneta y como es amigo del astronauta dice algo que este le comentó.

Por otro lado, Microsoft en azure ofrece R y Python, por lo que yo pienso que ambos pueden ganar en popularidad y tienen respaldo en caso de necesitarlo.

Lógicamente, algo no menos importante, es tener un editor que nos ayude a escribir código.

Big Data vende, es la palabra clave, a mi me paso en una ronda de negocios con una fundación internacional, en la charla el gerente de una institución les dijo “el hace big data”, se interesaron más por eso que por lo que estábamos negociando (previo acuerdo, incluso nos ampliaron los minutos a dos turnos (la ronda eran 20 min con cada empresa, nos pasaron a 40, si faltaba la empresa que continuaba nos daban otro turno)).

Yo me respondería ¿Qué análisis específico hay que realizar?, ¿Qué herramientas hay en R y Python?, ¿Comprendo el código?, creo que en ambos casos se puede descargar y probar, si no hay grandes diferencias en rendimiento, es mucho a gusto personal.

Javier  Rubén Marcuzzi

De: Carlos Ortega
Enviado: domingo, 15 de enero de 2017 16:11
Para: Jesús Para Fernández
CC: r-help-es en r-project.org
Asunto: Re: [R-es] ¿Está R perdiendo la batalla?

Hola,

Es que también habría que definir a que etapa del proceso de BigData te estás refiriendo.
Supongo que te refieres a la etapa de Machine Learning / Analytics, ¿es así?.

Desde la fuente del dato hasta conseguir "información operacional", información que puede transformarse en una acción para el negocio; hay muchas etapas y en cada una de ellas existe un auténtico zoo de soluciones cada una de ellas utilizando un lenguaje específico.

Este gráfico de cómo lo pinta Microsoft ayuda mucho a ver todas estas etapas:



Y en particular para el capítulo de Machine Learning / Analytics, sigue habiendo muchas soluciones. Claramente lo que está más implantado todavía son soluciones SAS, que por coste fundamentalmente y porque los nuevos que llegan, ya llegan con R y Python, hay un movimiento de cambio. Costará la transformación, pero se está forzando mucho, pero avanzando lento (el efecto Lindy que no terminamos de entender [1] y pensamos que los cambios son de la noche a la mañana) 

Y sobre soluciones de Machine Learning/Analytics para BigData, R sigue teniendo para mí un punto de ventaja. Curiosamente, la mayor parte de las soluciones enterprise para esta etapa lo primero que te cuentan es que son compatibles con "R": IBM, Oracle, etc. Y si apuestas por soluciones opensource tendrás que entonces también bajar un peldaño más y definir el tipo de problemas que quieres solucionar. Para el tipo de modelización habitual (no "deep learning") R/H2O es muy bueno (incluso para un glm de 30 millones o más de registros, ja, ja) y sparklyr/sparkR también son soluciones  muy buenas. Pero si tu problema es de "deep learning" entonces, Python con Keras/Tehano es el camino aunque ahora todo el mundo habla de TensorFlow. R tiene ya mxnet y la solución H2O está en camino.

Por otro lado, Python es un lenguaje de propósito general y es normal su popularidad sea muy alta, pero "R" no anda muy lejos en popularidad, siendo un lenguaje de propósito muy específico. Ahí está la última encuesta de popularidad de lenguajes del IEEE [2] donde "R" es el quinto y Python es el segundo. Pero cuando hablamos de popularidad entre los Científicos de datos, en las encuestas de Kdnuggets en lo que se lleva haciendo la encuestas "R" es el primero, aunque Python subiendo muy rápidamente [3].

De todas formas, volviendo al principio, no sé si lo adecuado es hablar de "perder la batalla", ¿hubo alguna vez una guerra?...

Saludos,
Carlos.


[1]: https://www.wired.com/2012/12/worlds-not-ending-but-technologys-aging-backwards/
[2]: http://spectrum.ieee.org/computing/software/the-2016-top-programming-languages
[3]: http://blog.revolutionanalytics.com/2016/06/r-holds-top-ranking-in-kdnuggets-software-poll.html

El 15 de enero de 2017, 18:02, José Luis Cañadas <canadasreche en gmail.com> escribió:
Hola.
Pues no sabría decirte. Yo vivo rodeado de pythonistas, supongo que por
todo el auge del Big data y los "learning" machine learning,deep learning
¿quien pone los nombres? ;),  mucha gente viene de otras áreas y están
acostumbrados a usar Python y otros lenguajes.
También es cierto que todo lo relacionado con el Big data ha llegado con
Scala y Python. Pero aparte de sparklyr, que pienso que todavía anda un
poco cojo hay que destacar que en la última versión de spark, la api para R
(sparkr) ya incorpora los algoritmos de MLlib. Y tampoco podemos olvidarnos
de h2o que se integra bastante bien con R. Y por último y no menos
importante, para la gran mayoría de problemas de analisis con Big Data no
hace falta el Big, el muestreo lleva tiempo con nosotros y tomando pequeñas
y medianas muestras se obtienen iguales resultados y con menor esfuerzo.
Pero claro, está la cosa esta de decir, ¡ he hecho un glm con 30 millones
de datos!  ¿y?
No sé si impondrá python, R o lo que esté por venir. Aunque he de decir que
para analizar datos me parece más natural R que Python.

Saludos

El dom., 15 ene. 2017 14:55, Jesús Para Fernández <
j.para.fernandez en hotmail.com> escribió:

> Hace poco me puse al tema del big data y la verdad es que een este campo
> la decisión parece clara. Python ahora mismo está un paso por delante de R,
> aunque sparklyR puede igualar la contienda.
>
> Pero lo que me empieza a preocupar es que parece que si nos alejamos del
> Big Data, Python tb está ganando adeptos a pasos agigantados. ¿Está
> perdiendo R la batalla?
>
>
>
>         [[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

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20170115/ddf71502/attachment-0001.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: 613E2A44264349998CE2BE736DCBA7C2.png
Type: image/png
Size: 56707 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20170115/ddf71502/attachment-0001.png>


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