¿Por qué necesitamos Python cuando R es tan brillante para el aprendizaje automático y la ciencia de datos?

El aprendizaje automático y la ciencia de datos tratan de agregar valor al cliente. Por ejemplo:

  • Una compañía de préstamos quiere determinar automáticamente qué prestatarios pagarán el préstamo y cuáles no.
  • Un fondo de cobertura quiere encontrar rápidamente buenas oportunidades comerciales.
  • Una cadena de restaurantes quiere averiguar qué elementos del menú están teniendo éxito y cuáles deben cortarse.
  • Facebook quiere generar noticias dinámicas rápidamente.

A ninguna de las compañías anteriores le importa si su modelo está en R o Python. Les importa si el modelo funciona y agrega valor al negocio.

En términos prácticos, esto significa que usted elige el idioma que:

  • Es más barato desarrollar el análisis o algoritmo. Esto consta de dos partes:
    • El lenguaje que requiere que los científicos de datos pasen la menor cantidad de tiempo aprendiendo cómo hacer el análisis. Por ejemplo, si las necesidades comerciales requieren un algoritmo avanzado de aprendizaje automático, y sus científicos de datos solo saben cómo hacer aprendizaje automático en Python, usted elige Python.
    • El lenguaje que requiere menos tiempo para desarrollar el análisis.
  • Es fácil de integrar con otros componentes de la empresa. Si la empresa tiene un sitio web y quiere mostrar perfiles de riesgo de prestatario en vivo, entonces un lenguaje que se integre bien con el sitio web tiene sentido para el análisis.
  • Se adapta a las necesidades comerciales de la empresa. Por ejemplo, si la empresa quiere construir un motor en tiempo real para ejecutar rápidamente las operaciones, el lenguaje debe ser lo más rápido posible. Si una empresa quiere un aprendizaje profundo, el idioma debe ser compatible.

Python tiende a ser favorecido sobre R en situaciones donde el lenguaje necesita integrarse con otros componentes de la compañía, donde el resto de la compañía ya está usando Python (es decir, para un servidor web), y donde la ingeniería de datos es más importante que el aprendizaje automático y análisis. Enseñamos Python en Dataquest por estos motivos.

En última instancia, ambos idiomas son importantes para la ciencia de datos, pero espero que esta publicación muestre que el idioma es a menudo la última opción que debe hacer en un nuevo proyecto de aprendizaje automático o ciencia de datos.

Primero déjame corregir la pregunta por ti

“¿Por qué Data-Scientist usa Python para Machine-Learning y Data-Science cuando R es tan brillante por lo mismo?”

Porque Python puede hacer mucho más, más eficientemente que R. Ejemplo: Multithreading, rastreo.

Me centraré solo en la parte de ciencia de datos y te diré la diferencia.

Déjame mostrarte la diferencia en velocidad

Acabo de imprimir 10000 números en R y Python

R realmente lleva mucho tiempo hacer lo mismo que Python.

Sé que esta no es la forma correcta de comparar, pero tienes la idea.

Analítica:

R tiene biblioteca data.table donde como python tiene panda . Ambos son buenos si comparas funcionalidades. Pero Python es más rápido.

Visualización:

R y Python tienen ggplot2, R tiene brillo, trama, donde puedes interactuar con los datos. Por otro lado, python tiene d3.

Ciencia de los datos:

Tanto R como Python son la mayoría de las bibliotecas importantes necesarias para Machine Learning.

Estas son las características básicas que usamos regularmente como científicos de datos.

Déjame decirte mi perspectiva.

Una vez que obtengo los datos sin procesar, uso python para limpiarlos con pandas . Como python es más rápido en leer y escribir los datos. Me ayuda a acelerar el proceso de limpieza.

Luego viene la parte de análisis, donde prefiero R, ya que es más fácil escribir código, hacer que la visualización genere un brillo tablero y presentarlo a mi equipo jugando con diferentes tramas y umbrales. Con el uso de diferentes gráficos y análisis, realizo extracción de características en R.

Ahora, dependiendo del tamaño de los datos, decido el clima en el que quiero construir el modelo en R o Python. Si los datos son texto, definitivamente uso python debido a nltk . Utilizo python, si los datos son grandes, porque python es más rápido, el tiempo en iteraciones necesarias para construir el modelo final se reduce significativamente. Prefiero R para datos <= 10GB.

Una vez que se construye el modelo, utilizo R para hacer todo tipo de análisis fuera de línea, y lo presento a las empresas / partes interesadas utilizando el brillo, ggplot2 y plotly. He intentado integrar d3 a brillante pero aún no he tenido éxito.

Luego, usando el modelo en producción, definitivamente se debe hacer en python. Los modelos sin conexión son más fáciles de ejecutar en R, pero si necesita predecir algo en tiempo real, necesita la implementación del modelo en Python.

Luego hago todo el análisis del rendimiento del modelo, A / B Testing, calculando la importancia que hago en R.

Hay una razón por la que necesitamos Python.

PD : Cualquier día preferiría R sobre python . Pero profesionalmente, utilizo ambos para obtener los mejores resultados para la empresa.

Porque Python también es realmente brillante para el aprendizaje automático y la ciencia de datos. Python es excelente en muchas áreas porque tiene muchas bibliotecas increíbles. Es genial para científicos, estadísticos, mucho más que ciencia de datos. ¿Programación orientada a objetos? No hay problema. ¿Construyendo aplicaciones web? No hay problema. ¿Atar en SQL o Hadoop? Fácil.

Creo que R es más fácil de aprender y usar para el análisis de datos, pero Python tiene muchos más usos posibles en muchos campos (Mayor versatilidad).

Esa es una pregunta realmente fantástica. Hay algunas opiniones que podría compartir que podrían ayudar.

En primer lugar, R fue mi primer amor como lenguaje. Me gusta mucho R. Revelación completa: odio absolutamente Python. Sería tan perfecto si no fuera por ese espacio en blanco.

Puedes ser tan pitónico como quieras, pero no quiero que el desplazamiento horizontal lea mi código.

R es genial y fantástico para la creación de prototipos. R es más un lenguaje de investigación.

R tiene muchas cosas que puede manejar sin comprenderlas realmente [similar a Python pero más cosas (análisis de datos inteligente)] y no creo que eso sea bueno para el usuario final promedio: que no incorpora la debida diligencia en aprendiendo cómo funcionan los algoritmos subyacentes. Python también abstrae muchas cosas, por lo que esto es menos cierto de lo que solía ser.

Python es mucho más de grado de producción, es un lenguaje real, por lo que puede tejer el front-end y el back-end y el análisis y más. Esto no es cierto con R.

Sin embargo, hay algoritmos muy complicados que son difíciles de codificar con los que podría estar familiarizado y que existen en R y no en Python. Ese, para mí, es el caso de uso. Además, las características de limpieza de datos y series temporales son mucho más robustas. La ciencia de datos es principalmente la limpieza de datos, como sabes.

Python ha visto un aumento en la popularidad debido a las API, etc., y también porque muchos de los kits de herramientas de aprendizaje profundo / ai lo han elegido para el lanzamiento de la biblioteca.

Me siento audaz, así que lo diré. El R-listserv, en general, está lleno de gente horrible, condescendiente y tonta. Traté de entrar y no pude. Hubo esta presión de grupo para calmar a los novatos. Eso no me gusta El trabajo de los expertos es encender nuestras velas, ¿no?

Python tiene mucho de eso también, ya que todos tienen una forma más pitónica y menos comprensible de reescribir su código por usted.

Meh Hay personas condescendientes en todos los campos técnicos, Python solo les dio un adjetivo genial, así que lo noto más. Sin embargo, R realmente lleva esto a un nivel CRANtastic.

Ambos existen por una buena razón, y hay casos de uso. Harías bien en aprender ambos y descifrar un libro de estadísticas a menudo.

En estos días, codifico 100 veces más en Python que en R. Me gusta la flexibilidad, por lo que necesito un lenguaje con todas las funciones, y Python es el “menos” desagradable para trabajar.

En R, eres sobrehumano como analista. Puedes hacer cualquier cosa que las mejores mentes puedan hacer y leer sobre ello también. Puedes hacer grandes cosas, pero la relación entre el cerebro y la moneda monetaria no existe con la frecuencia suficiente para completarla. Una falta.

Entonces, incluso como un chico de HaRd, Python es lo que más saco de la caja, con mucho.

Gran pregunta, ¡continúa!

No hay una bala de plata en la ciencia de datos.

Cuanto antes sueltes un enfoque de talla única, más rápido subirás la escalera de crecimiento.

Cada lenguaje de programación tiene un más y un menos.

Si quieres poner el clavo en la madera, usarás un martillo. Si desea atornillar (no ese 🙂, debe usar un destornillador).

Si se adhiere a R y lo usa en todas partes, en algunos casos será como usar un martillo en los tornillos.

Si le preguntas a un científico de datos qué hacen el 90% de su tiempo, apostaré $ 1000 dólares en el hecho de que pasan la mayor parte de su tiempo manipulando datos y preparándolos para el aprendizaje automático.

Python es muy flexible y está bien adaptado para combinar datos, que en realidad es la mayor parte del trabajo o el trabajo no atractivo en el aprendizaje automático.

Si desea apegarse a R para el aprendizaje automático, entonces podría considerar aprender Python para actividades de intercambio de datos. Esto hará que su aprendizaje automático sea mucho más fácil en R.

He realizado un seminario web sobre qué es el aprendizaje automático y por qué usar Python. Puede verlo aquí para obtener una respuesta más detallada:

Seminario web de aprendizaje automático con Python

R podría ser brillante para la ciencia de datos (especialmente la exploración / visualización de datos iniciales y el análisis estadístico), pero su soporte para el aprendizaje automático no se compara con Python:

  • Red neuronal y aprendizaje profundo: caffe, tensorflow, etc., todos son compatibles con Python y no con R. Los proyectos recientes sobre temas de aprendizaje automático (Red Adversarial Generativa, Q-Learning) se implementan en Python.
  • Aprendizaje automático a gran escala (por ejemplo, Aprendizaje automático en Spark) es compatible con Scala> Python >>> R
  • Aprendizaje automático bayesiano / probabilístico : los usuarios de Python tienen un maravilloso paquete pymc3, mientras que los usuarios de R probablemente solo pueden usar la interfaz R con Stan.

Creo que R está bien para el análisis con técnicas de aprendizaje automático “tradicionales” (SVM, Regresión, Algoritmo basado en árbol) con un conjunto de datos razonablemente pequeño.

Si desea hacer más que eso o producir código de producción, Python es superior.

Porque hay más en la vida que el aprendizaje automático y la ciencia de datos. Python es un lenguaje de programación multi-paradigma y multipropósito. No me gustaría escribir servicios web, rastreadores de registros, sondas de monitoreo, cachés distribuidas, [blablabla] en R.

En realidad, no me gustaría hacer ciencia de datos o aprendizaje automático en R. Me parece que el lenguaje es inconsistente y feo. Es por eso que uso Python-Pandas o C ++ para eso, y a veces me pregunto por qué necesitamos R …

Entonces recuerdo que, nuevamente, hay un amplio espectro de requisitos. El hecho de que no se ajuste a mi taza no significa que no tenga ningún uso.

Yo uso ambos. Si desea saber por qué, puede leer la respuesta de Håkon Hapnes Strand a En la contienda de Python versus R para Data Science, ¿dónde se encuentra y por qué?

Pero no necesitas estrictamente ambos. Puede ser un científico de datos con solo R y puede ser un científico de datos con solo Python. Demonios, incluso puedes ser un científico de datos con JavaScript si quieres (no lo haces).

Esta discusión constante sobre la tecnología X vs. Y que parece estar sucediendo no tiene sentido. Utiliza la herramienta que te permite resolver el problema en cuestión con el mínimo esfuerzo, o el que está usando tu equipo. Fin de la historia.

Y otra pregunta más de R vs. Python … Hay muchas razones por las cuales las personas elegirían R sobre Python y al menos el mismo número para elegir Python sobre R.

Por ejemplo … los desarrolladores de software, los ingenieros de software y los informáticos elegirán Python sobre R porque es mucho más natural para ellos. Esto significa que serán mucho más productivos. Del mismo modo, los estadísticos, matemáticos, investigadores sin experiencia en software prefieren R porque es mucho más fácil para ellos aprender.

Necesitar uno y no el otro es ser inteligente y no elegir lados. Si elige un lado en el vacío, pierde automáticamente. Y la razón por la que pierde es simple, porque para un hombre con un martillo, cada problema es un clavo y verá clavos en todas partes y olvidará los tornillos y los pernos, etc.

La parte realmente divertida de la pregunta es que ni R ni Python son particularmente brillantes para la ciencia de datos. De hecho, no hay lenguaje. Cada lenguaje que se usa en ciencia de datos es realmente agradable en algunos aspectos. Ninguno es brillante.

No es un lenguaje genial; Es la audiencia lo que es genial.

Si elijo vivir en Canadá, el francés está bien. Si elijo vivir en México, el español está bien. Si elijo vivir en Estados Unidos, el inglés es el camino a seguir.

Si elijo comunicarme con los estadísticos, R está bien. Si elijo comunicarme con los desarrolladores web, Java está bien. Si elijo comunicarme con físicos, informáticos o ingenieros eléctricos, Python es el camino a seguir.

R y Python tienen sus ventajas y desventajas. Sin embargo, dado que ambos son de código abierto, seguirán teniendo demanda.

En cierto modo, es bueno que R y Python se desarrollen y se usen más. Eso ayuda a su desarrollo de manera simbiótica. Alguien desarrolla algo en R; alguien de Python lo ve y desarrolla algo similar en Python; y viceversa.

Porque R no es para el desarrollo de software. Python es.

Hasta donde yo sé, las compañías comerciales intentan en la mayoría de los casos evitar el software de código abierto como RStudio.
Al menos aquí en Marruecos, siempre me preguntan si conozco Python en primer lugar, entonces R puede ser una ventaja.
Para las compañías sin fines de lucro, puede estar bien trabajar con R.
Por supuesto, esto no significa que las empresas comerciales no trabajen con R, pero digo que el único problema / restricción con R es que es de código abierto.

Supongo que quiere decir “¿por qué usar Python sobre R para Data Science y Machine Learning? “.

Intenté trabajar con R como parte de la especialización de Johns Hopkins Data Science en Coursera. Si bien tiene grandes bibliotecas integradas con el tiempo, encontré sus inconsistencias semánticas muy irritantes. Recogí Python posteriormente y finalmente estaba en casa. Como desarrollador de casi toda la vida, si me ofrecieran R y Python sin bibliotecas y me pidieran que eligiera una y creara bibliotecas estadísticas, elegiría Python en un minuto. Mientras que R goza de mucho apoyo entre los no programadores, Python es la herramienta elegida entre los programadores. Por supuesto, estoy generalizando y habrá algunos programadores a los que les gustará R sobre Python y viceversa.