¿Por qué necesitamos Python y Java para el aprendizaje automático mientras tenemos R?

Primero, comprendamos algunas características de los algoritmos de Machine Learning y luego comprendamos los detalles de R.

1. La mayoría de los algoritmos de ML son algoritmos iterativos . R está optimizado para operaciones vectoriales pero no para bucles. Los algoritmos iterativos son increíblemente rápidos en Java y Python pero muy ineficientes en R. ¿Cómo aprovechar las ventajas de los bucles en R? Ver [1], [2]
2. Muchos de los algoritmos de ML tienen una optimización involucrada, que esencialmente requiere un cálculo intensivo . Por lo tanto, el proceso genera muchos datos intermitentes para almacenar y vaciar, lo cual es costoso para un lenguaje como R debido a su búsqueda de un bloque contiguo de memoria en la RAM. Ver [3]
3. Muchos de los algoritmos de ML requieren mucha memoria . Ellos iteran, optimizan, iteran, optimizan y finalmente convergen. Por lo tanto, la gestión de la memoria es esencial para que un lenguaje tenga algoritmos de ML eficientes. Pero, R almacena todo en RAM. Por lo tanto, un algoritmo como el bosque aleatorio podría quedarse sin memoria cuando se ejecuta en una máquina RAM de 4GB en un conjunto de datos de 100,000 x 50.

Inherentemente, R es bastante lento y está optimizado para operaciones vectoriales . También es un lenguaje interpretado, a diferencia de un lenguaje compilado. Java y Python superan las desventajas anteriores en términos de administración de memoria, velocidad y nuevas bibliotecas que ayudan en el análisis de datos y el aprendizaje automático.

Sin embargo, el número y la variedad de algoritmos de ML disponibles en R no tienen paralelo en ningún otro idioma.

1. La ineficiencia de los bucles en R
2. Una breve introducción a “aplicar” en R
3. Límites de memoria en R

¡Espero que esto ayude!

R es un lenguaje que se hace estadísticos para estadísticos, mientras que Python y Java se convierten en informáticos para una amplia variedad de problemas.

R es un lenguaje excelente para el análisis de datos y para construir modelos.

Python se usa para una amplia variedad de propósitos, como desarrollo web, secuencias de comandos generales, etc. Es fácil para las personas de otros orígenes comenzar con el aprendizaje automático en un lenguaje como Python, ya que habrían tenido experiencia en él.

Java no se usa principalmente para casos de uso de aprendizaje automático de propósito general. Pero tiene un buen caso de uso en algoritmos escalables de aprendizaje automático que se han implementado en bibliotecas como mahout. Java es un lenguaje compilado y realiza múltiples subprocesos reales, lo que es bueno para el rendimiento de una solución escalable.

El uso de R o Python finalmente se reduce a la elección del individuo y el caso de uso que están tratando de abordar. Usar Java sería ideal para un sistema de aprendizaje automático a gran escala

More Interesting

¿Cuál es el mejor algoritmo para implementar un reconocimiento de voz robusto en entornos ruidosos?

¿Cómo se interpretan la precisión y el recuerdo en una tarea de segmentación?

¿El aprendizaje automático es un subconjunto de la ciencia de datos?

¿Cuáles son los libros de texto clásicos y de lectura obligatoria en las estadísticas?

¿Qué cosas asombrosas se pueden hacer con el aprendizaje automático?

Cómo construir un modelo de propensión a comprar para el marketing de bases de datos utilizando el aprendizaje automático en un entorno financiero

¿Por qué los modelos gráficos probabilísticos tienen un rendimiento inferior en las tareas de clasificación en comparación con las redes neuronales o las máquinas de vectores de soporte?

¿Cuál es la diferencia entre las redes de Markov y las redes bayesianas?

¿Existe alguna implementación para un clasificador incremental que pueda ejecutarse en un espacio dinámico de características, lo que significa cuando aparecen nuevas características?

¿Vale la pena aprender Machine Learning (y AI) si quiero seguir la carrera de Ingeniero Embebido?

¿Qué se usa en autos sin conductor, aprendizaje automático o aprendizaje profundo?

¿Qué paradigma / algoritmo de aprendizaje automático puedo usar para seleccionar de un grupo de posibles opciones?

¿Los modelos de aprendizaje automático en automóviles sin conductor utilizan aprendizaje supervisado, no supervisado o de refuerzo?

¿Qué sugerencias le daría Roman Trusov a una persona que acaba de ingresar a ML?

Cómo decidir el tamaño de la muestra para el aprendizaje automático con datos de series temporales