WOT

Tuesday, February 14, 2017

El lenguaje de programación que más se emplea en aprendizaje automático y en ciencia de datos es...

Nota: Este artículo es una traducción del original que aparece en IBM DeveloperWorks: The Most Popular Language For Machine Learning Is ...

Muchas gracias al autor Jean-Francois Puget por permitir su publicación en español. 


El lenguaje de programación que más se emplea en aprendizaje automático y en ciencia de datos es ...


 
S


Cuando se trata de elegir el lenguaje de programación adecuado, bien sea para proyectos de análisis de datos o incluso para encontrar empleo, las personas tienen diferentes opiniones en función de su formación académica y de los sectores en los que han trabajado. En esta entrada se analizan los datos de indeed.com cuando se elige el lenguaje de programación a utilizar en aprendizaje automático y en ciencia de datos.




¿Qué lenguaje de programación se debe aprender para obtener un trabajo en aprendizaje automático o como científico de datos?  La respuesta a esta pregunta es la del millón de dólares,  y se debate en muchos foros.  Podría contestar ahora y explicar el motivo de mi respuesta, pero prefiero ver algunos datos primero.  Después de todo, esto es lo que deben hacer los estudiantes de aprendizaje automático y los científicos de datos: estudiar los datos y no tener en cuenta las opiniones.
Así que, veamos algunos datos.  Utilizaré las tendencias de búsqueda disponibles en indeed.com.  Éstas detectan las veces que aparecen los términos seleccionados en ofertas de trabajo a lo largo del tiempo.  Proporcionan una indicación de las aptitudes que buscan los empleadores en los candidatos.  Tenga en cuenta, sin embargo, que no se trata de una encuesta sobre aplicaciones que se manejan de forma eficaz.  Es más bien un indicador avanzado de cómo evoluciona la popularidad de las aplicaciones (para expresarlo en lenguaje formal, sería aproximadamente la derivada de primer orden de la popularidad de las aplicaciones, siendo esta última la diferencia entre las aplicaciones que se contratan junto con las de reciclaje a las que se restan las aplicaciones que pierden vigencia y las que se dejan de utilizar).
Ya está bien de charla. Vamos a obtener datos.  Busqué habilidades que se utilizan en relación con 'aprendizaje automático' y 'ciencia de datos', como son los lenguajes de programación: Java, C, C ++ y Javascript.  También incluí Python y R, que sabemos que son populares en aprendizaje automático y en ciencia de datos, así como Scala dado su enlace con Spark, y Julia, del que algunos piensan que es la siguiente innovación.  La respuesta a esta consulta nos proporciona los datos que estamos buscando:

Cuando nos centramos en aprendizaje automático, obtenemos datos similares:
¿Qué consecuencias podemos extraer de estos datos?
En primer lugar, vemos que no se puede medir a todos con el mismo rasero.  Determinados lenguajes son bastante populares en este contexto.
En segundo lugar, hay un fuerte aumento de la popularidad de todos ellos, lo que refleja el creciente interés en  aprendizaje automático y en ciencia de datos en los últimos años.
En tercer lugar, Python es el líder indiscutible, seguido por Java, después R y finalmente C ++.  Está aumentando la ventaja de Python sobre Java, mientras que el liderazgo de Java sobre R está disminuyendo.  Debo admitir que me he sorprendido ver Java en segundo lugar, esperaba que esa posición la ocupara R.
En cuarto lugar, el crecimiento de Scala es impresionante.  Casi no existía hace 3 años, y ahora está en el mismo estadio que los lenguajes más consolidados.  Esto es más fácil de detectar cuando cambiamos a vista relativa los datos de indeed.com:
En quinto lugar, la popularidad de Julia no está cerca, pero definitivamente hay un repunte en los últimos meses.  ¿Se convertirá Julia en una de las herramientas más utilizadas en aprendizaje automático y en ciencia de datos?  El futuro lo dirá.
Si ignoramos a Scala y Julia para poder ver ampliado el crecimiento de otros lenguajes, confirmamos que Python y R crecen más rápido que los lenguajes de uso general.
Tal vez la popularidad de R superará a la de Java relativamente pronto dada la diferencia en la tasa de crecimiento.
Cuando nos centramos en aprendizaje profundo con esta consulta, los datos son completamente diferentes:
Allí, Python sigue siendo el líder, pero C ++ ahora ocupa el segundo lugar, le sigue Java, y C está en cuarto lugar.  R está en el quinto puesto. Se observa claramente una ventaja en los lenguajes de computación de alto rendimiento.  Sin embargo, Java está creciendo rápidamente.  Podría alcanzar pronto el segundo lugar así como para el caso de aprendizaje automático en general.  Sin embargo R no va a ocupar los primeros puestos en un corto plazo de tiempo.  Lo que me sorprende es la ausencia de Lua, aunque se utiliza en uno de los principales marcos de aprendizaje profundo (Torch).  Julia tampoco está presente.
La respuesta a la pregunta original ya debería estar clara.  Python, Java y R son las habilidades más populares cuando se trata de aprendizaje automático y de trabajos de ciencia de datos.  Si desea centrarse en el aprendizaje profundo en lugar de aprendizaje automático en general, entonces se utiliza C + +, y en menor medida C, que también vale la pena considerar.  Recuerde sin embargo, que esto es sólo una forma de ver el problema.  Puede obtener una respuesta diferente si está buscando un trabajo en el mundo académico, o si sólo quiere divertirse aprendiendo sobre aprendizaje automático y la ciencia de datos durante su tiempo libre.
¿Y mi respuesta personal?  La formulé a principios de año en este blog. Además de contar con el apoyo de muchos de las mejores plataformas de aprendizaje automático, Python es una buena opción en mi caso, porque tengo formación en informática.  También me sentiría cómodo con C ++ para desarrollar nuevos algoritmos, dado que he programado en ese lenguaje durante la mayor parte de mi vida profesional.  Pero solo se trata de mi caso, y personas con una formación diferente pueden sentirse mejor utilizando otros lenguajes.  Un estadístico con habilidades de programación limitadas sin duda preferirá R. Un desarrollador experimentado en Java puede seguir utilizando su lenguaje, ya que hay muchas fuentes abiertas con el API Java.  Y seguramente cualquiera de los lenguajes que figuran en estos gráficos constituiría un caso.
Por lo tanto, mi consejo sería leer otros blogs en los que se plantee la misma pregunta antes de invertir una cantidad de tiempo importante en el aprendizaje de un determinado lenguaje de programación.
Actualizado el 23 de diciembre de2016  Esta entrada se ha tratado en HackerNews.
Entrada original. Reproducido con el permiso correspondiente
Biografía: Jean-François Puget (@JFPuget), PhD, is Ingeniero director de IBM, trabaja en aprendizaje automático y en optimización. Trabaja en Saint Raphael, Francia.
Relacionados:
·         Tidying Data in Python