¿Puede Python desplazar a R para Data Science?

Sé que esta es una vieja pregunta. Lo vi en mi feed, y después de leer todas las respuestas, sentí que tenía algo que agregar.

Primero, y ante todo, depende de lo que usted defina como “ciencia de datos”. Hay lugares que dudo que R pierda terreno, y es con aquellos que hacen “ciencia de datos” desde un punto de vista estrictamente de análisis estadístico, que, Si bien no se considera corriente como la definición, es al menos una gran parte de lo que hoy llamamos ciencia de datos. En mis tres títulos (BSc, MMath y PhD en estadística) R ha sido la herramienta elegida por profesores y estudiantes. Eso incluye a los estudiantes que pasaron a ser profesores. Me gusta engendra me gusta y todo eso.

De hecho, R fue mi favorito personal por un tiempo, y tenía una experiencia en programación mucho más amplia, así como cursos relevantes de CS que la mayoría de mis compañeros. Comparado con mis compañeros específicamente en el programa de doctorado mientras estuve allí, más que nada, por un amplio margen.

Hay, por supuesto, algunos problemas con R que Python principalmente bordea o no tiene ni remotamente.

Primero, R no es, técnicamente, un lenguaje de programación: es un entorno equipado con un lenguaje de programación. Para ser justos, fue diseñado de esa manera, porque fue diseñado y escrito por estadísticos para estadísticos mucho antes de que se usara el término ciencia de datos. No digo que se tratara de estadísticos que eran programadores pobres, pero primero fueron estadísticos. Conocí a un par de miembros del equipo de desarrollo de R Core (Duncan Murdoch y yo tuvimos conversaciones ocasionales mientras estaba en Western, y aunque nunca tuve que enseñarme una clase o un TAed para él, seguí su trabajo), y mientras que tengo un gran respeto por todos ellos, nuevamente, el estadístico primero, el programador segundo.

Si no fuera por RStudio y Hadley Wickham, la R “regular” no estaría donde está ahora. Y si no fuera por Revolution Analytics (ahora Microsoft R), aún se vería obligado a lidiar con R como un cerdo de memoria. La cuestión es que esto no es realmente culpa de nadie: cuando se desarrolló R, no se consideraron conjuntos de datos reales ni siquiera cerca del tamaño que tenemos ahora. Dudo que alguien haya concebido que tal situación fuera posible. Y la administración de memoria es realmente, muy, difícil de cambiar en un sistema como R sin romper muchas cosas, razón por la cual Revolution (y ahora presumiblemente Microsoft) podría cobrar una moneda por su producto.

Python, por otro lado, no estaba originalmente destinado a la ciencia de datos. Es muy bueno en ciertas cosas específicas. Es el lenguaje de pegamento definitivo, y sus expresiones idiomáticas son suficientes como las de R y me sentí cómodo cambiando. Agregar una integración de C más fácil que la de R y Cython (y eventualmente Numba … oh my) hacen que sea increíblemente rápido para algoritmos personalizados. Y, para que no lo olvidemos, Numpy, Scipy y scikit aprenden para todo lo que no sea personalizado (aunque puede hacer muchos algoritmos personalizados de ciencia de datos ajustando y / o ampliando cosas).

Realmente no conozco la historia de Python tan bien como la historia de R, por lo que no sé qué decisiones tomaron todo el código (principalmente escrito en C) que hizo que ocurriera toda esta magia de la ciencia de datos. Fue allí cuando comencé con Python, y de nuevo, las similitudes con R me hicieron cambiar cómodamente. (Tenga en cuenta que había estado programando en varios otros idiomas durante mucho tiempo antes). Pero la similitud tenía sentido en términos de análisis.

R tiene una gran cantidad de paquetes. Más de lo que espero que tenga Python, porque hay repetición, mala calidad y una sintaxis muy diferente en muchos de ellos. Si no fuera por Hadley, RStudio y muchos años de uso de R, no estaría usando R en todos estos días. Tal como está, lo uso para cosas personalizadas que necesito explotar si sé que hay algo en lo que R tiene un paquete en el que confío.

Realmente no hay necesidad de elegir uno sobre el otro si puede usar ambos. Especialmente porque puedes llamar a R desde Python (pero diablos, puedes llamar a prácticamente cualquier otro idioma desde Python). Si recién comenzara ahora, y tuviera que elegir uno … aún sería difícil. Sobre todo porque ya tengo una historia tan larga con R. Pero probablemente elegiría Python … eventualmente. Pero, ¿por qué elegir si no es necesario?

En mi opinión, todo depende del costo de cambio, y esto probablemente no se limita solo a R y / o Python:

1) ¿Hay suficientes casos de uso en los que será más eficiente o productivo al cambiar a una nueva herramienta?

Si los casos de uso que ha encontrado se ocupan principalmente de su herramienta existente, entonces el costo de aprender un nuevo idioma, sintaxis y su filosofía podría no valer la pena. Sin embargo, si hay casos de uso convincentes que no están disponibles o es difícil hacerlo de manera eficiente utilizando su herramienta existente, es posible que esté en el negocio. Además, debe asegurarse de que la nueva herramienta tenga una cobertura más amplia, en el sentido de que no solo cubre los nuevos casos de uso, sino también sus casos de uso existentes muy bien.

2. ¿Cuánto de su trabajo actual depende de su herramienta actual (digamos R)?

Si sus trabajos involucran principalmente la construcción de prototipos que no interactúan con otro sistema y no son parte de una tubería, entonces el costo de la conmutación será menor. Por otro lado, si su tubería / sistema depende en gran medida de la plataforma que está utilizando, el código que necesita volver a escribir no es necesariamente solo el trabajo en sí, sino también otras cosas que simplifican todo junto.

3. ¿Es el paradigma de programación para la nueva herramienta lo suficientemente diferente como para que tenga una nueva comprensión de cómo se puede estructurar el análisis de datos?

Para dar un ejemplo más concreto: R es esencialmente un lenguaje de programación funcional, y muchos de sus flujos de trabajo de procesamiento de datos siguen este paradigma. También tiene un giro orientado a objetos, pero generalmente me resulta mucho más difícil de comprender que cómo Python lo aborda.

Habrá momentos en que un paradigma particular sea más adecuado para el análisis que está tratando de hacer, y elegir la herramienta adecuada es importante.

Si la nueva herramienta sigue principalmente el mismo paradigma que su herramienta existente, es probable que la aprenda bastante rápido, pero no estiraría tanto su mente y le daría nuevas perspectivas.

Su pregunta es bastante común y está siendo debatida en muchos foros. Cuando se trata de elegir un lenguaje de programación para proyectos de Data Science o perspectivas de trabajo, las personas tienen diferentes opiniones dependiendo de sus antecedentes profesionales y dominios en los que trabajan.

Puedo ayudarte con mi experiencia y conocimiento de Python. Veamos primero algunos datos.

“Los datos superan las emociones”

– Clifford Stoll, astrónomo estadounidense

Fuente: KD Nuggets

Tanto Python como R se encuentran entre los lenguajes más populares para el análisis de datos y tienen sus partidarios y oponentes. Si bien Python es a menudo elogiado por ser un lenguaje de propósito general con una sintaxis fácil de entender, la funcionalidad de R se desarrolla teniendo en cuenta a los estadísticos, lo que le brinda ventajas específicas de campo, como excelentes funciones para la visualización de datos.

R: Pros

  • Una imagen dice más que mil palabras.

Los datos visualizados a menudo se pueden entender de manera más eficiente y efectiva que los números sin procesar solos. R y la visualización son una combinación perfecta. Algunos paquetes de visualización imperdibles son ggplot2, ggvis, googleVis y rCharts.

  • Ecosistema R

R tiene un rico ecosistema de paquetes de vanguardia y comunidad activa. Los paquetes están disponibles en CRAN, BioConductor y Github. Puede buscar en todos los paquetes R en Rdocumentation.

R: Contras

  • R lingua franca de ciencia de datos

R es desarrollado por estadísticos para estadísticos. Pueden comunicar ideas y conceptos a través del código R y los paquetes, no necesariamente necesita una formación en informática para comenzar. Además, se adopta cada vez más fuera de la academia.

  • R es lento

R fue desarrollado para facilitar la vida de los estadísticos, no la vida de su computadora. Aunque R puede ser experimentado como lento debido a un código mal escrito, existen múltiples paquetes para mejorar el rendimiento de R: pqR, renjin y FastR, Riposte y muchos más.

  • R tiene una curva de aprendizaje empinada

La curva de aprendizaje de R no es trivial, especialmente si proviene de una GUI para su análisis estadístico. Incluso encontrar paquetes puede llevar mucho tiempo si no está familiarizado con él.

Python: Pros

  • IPython Notebook

IPython Notebook facilita el trabajo con Python y los datos. Puede compartir fácilmente cuadernos con colegas, sin tener que instalar nada. Esto reduce drásticamente la sobrecarga de código de organización, salida y archivos de notas. Esto le permitirá pasar más tiempo haciendo un trabajo real.

  • Un lenguaje de uso general.

Python es un lenguaje de propósito general que es fácil e intuitivo. Esto le da una curva de aprendizaje relativamente plana y aumenta la velocidad a la que puede escribir un programa. En resumen, ¡necesita menos tiempo para codificar y tiene más tiempo para jugar con él!

Además, el marco de prueba de Python es un marco de prueba incorporado de baja barrera de entrada que fomenta una buena cobertura de prueba. Esto garantiza que su código sea reutilizable y confiable.

  • Un lenguaje multipropósito

Python reúne a personas con diferentes orígenes. Como lenguaje común y fácil de entender que los programadores conocen y que los estadísticos pueden aprender fácilmente, puede crear una herramienta única que se integre con cada parte de su flujo de trabajo.

Python: Contras

  • Visualizaciones

Las visualizaciones son un criterio importante al elegir el software de análisis de datos. Aunque Python tiene algunas bibliotecas de visualización agradables, como Seaborn, Bokeh y Pygal, quizás haya demasiadas opciones para elegir. Además, en comparación con R, las visualizaciones suelen ser más complicadas, y los resultados no siempre son tan agradables a la vista.

  • Python es un retador

Python es un desafío para R. No ofrece una alternativa a los cientos de paquetes esenciales de R. Aunque se está poniendo al día, todavía no está claro si esto hará que las personas abandonen R?

¡Depende de usted! Como científico de datos, es su trabajo elegir el idioma que mejor se adapte a las necesidades. Algunas preguntas que pueden ayudarte:

  1. ¿Qué problemas quieres resolver?
  2. ¿Cuáles son los costos netos para aprender un idioma?
  3. ¿Cuáles son las herramientas de uso común en su campo?
  4. ¿Cuáles son las otras herramientas disponibles y cómo se relacionan con las herramientas de uso común?

Descargo de responsabilidad: soy cofundador de @GreyAtom y ayudo a talentos de ingeniería a encontrar carreras sostenibles en tecnologías emergentes.

Greyatom se centra en proporcionar programas relevantes de la industria sobre tecnologías emergentes. Nuestro programa emblemático tiene como objetivo orientar a los profesionales que trabajan y los más nuevos en el inicio de su carrera en Data Science. El programa está en el sitio, el día típico dura 8 horas al día, se basa en la práctica, el proyecto, las horas del instructor se graban y se transmiten EN VIVO. Además, los estudiantes pueden volver a asistir a lotes adyacentes si los conceptos no son claros.

Los instructores y desarrolladores de currículums se encuentran entre los mejores institutos a nivel mundial y en India [IIT, IIM, Universidad Estatal de Nueva York, etc.]. Los proyectos de los estudiantes se construirán sobre conjuntos de datos REALES proporcionados por nuestra industria y socios de contratación. Becas de la industria disponibles para estudiantes meritorios y merecedores.

Algunos enlaces rápidos:

Chatee con un consejero académico: le invitamos a compartir todas sus dudas e inseguridades, a las que haremos todo lo posible para guiarlo hacia su camino profesional hacia el éxito. https://calendly.com/greyatom/co

Como alguien competente en ambos, este es solo un titular sensacionalista sin ninguna base de hecho.

Ambas herramientas tienen los mismos límites de memoria en RAM, ambas son de un solo núcleo por defecto y ambos problemas se resuelven de la misma manera en cualquier plataforma (agregue más RAM, HDF5, RDBMS). Además, para obtener un excelente rendimiento de cualquier idioma, las personas escriben código en C / C ++ / Fortran o intentan trabajar con compiladores JIT (Numba, PyPy, compilador en R).

Entonces, ¿sobre qué estamos discutiendo, las preferencias de sintaxis? Eso es apenas “comer unos” IMO.

Lo que muchos no se dan cuenta es que muchos analistas orientados a temas tienen y probablemente siempre tendrán problemas para hacer análisis de datos utilizando un lenguaje de nivel bastante bajo como Python. Python seguramente comerá el almuerzo de R en ciencias de datos. Pero R comerá el almuerzo de Stata, SPSS, Excel y Graphpad (y más personas hacen análisis de datos con estas herramientas que con Python). También hay grandes áreas de aplicación (como la bioinformática) que dependen en gran medida de los paquetes R (como Bioconductor, que tiene más de 1000 paquetes especializados y un modelo de datos común). Entonces creo que van a coexistir. Pero ser utilizado por personas algo diferentes dependiendo de la disciplina. RStudio ha desempeñado un papel importante para hacer que R sea más accesible para las personas nuevas y para facilitar el análisis de datos reproducibles mediante el uso de secuencias de comandos R y, en cierta medida, la programación. Una gran cantidad de “ciencia de datos”, entendida en términos generales, no requiere un lenguaje más poderoso que R. Y R está mejorando todo el tiempo.

No, no es probable

Python no fue originalmente diseñado para computación estadística y minería de datos. Fue diseñado para que los programadores escriban programas para crear sitios web, softwares, etc. Más tarde, debido a su facilidad de uso, Python se expandió al campo de big data (tanto Hadoop como Spark ahora admiten Python).

R es una historia diferente. Fue inventado para los estadísticos. Tiene muchos paquetes de minería de datos / estadísticas de código abierto. Los programadores de R han desarrollado una tradición de código abierto para su trabajo y contribuir a la comunidad. Últimamente, Microsoft desarrolló una versión multiproceso de R usando MLK llamada Microsoft R Open. La comunidad de Spark también abrazó a R con SparkR.

A medida que R se está volviendo cada vez más popular, creo que algún día podría expulsar a Python de la comunidad de big data si resuelve sus propios problemas, como el procesamiento de datos.

Python ciertamente tiene su lugar en la ciencia de datos. Sin embargo, R se mantiene erguido, no irá a ningún lado pronto.

Dos idiomas felizmente coexistirán.

Los científicos de datos estarían usando R para el modelado y experimentos basados ​​en matemática de modo. Los ingenieros estarían usando Python para obtener más ideas basadas en código que se pueden hacer en vivo más rápido.

No sé si Python alguna vez reemplazará a R, pero lo que sí sé es que es un lenguaje de programación muy maduro rodeado de una gran comunidad de código abierto.

Puedes usarlo para muchos propósitos

  • Análisis de datos, limpieza, preprocesamiento, visualización,
  • construyendo muchos modelos de aprendizaje automático
  • Minería de texto y PNL
  • Aprendizaje profundo
  • Manejo de conexiones de bases de datos SQL y NoSQL
  • Procesamiento de datos a gran escala (por ejemplo, usando chispa)
  • Envolviendo cosas alrededor de una aplicación web
  • Examen de la unidad
  • Empujando a la producción

Me encanta Python porque hace que todas estas tareas sean realmente fáciles gracias a las poderosas bibliotecas.

Si desea obtener más información sobre python y sus capacidades de ciencia de datos, puede seguir mi blog, donde escribo algunos casos de uso de ciencia de datos.

Espero que esto ayude

Aclamaciones

Si bien Python se considera una herramienta de programación de propósito más general, R seguirá siendo la primera opción para la mayoría de los analistas de datos que realizan el trabajo de análisis de datos. R es inmediatamente útil para realizar numerosos análisis estadísticos estándar, y no tan estándar, por lo general con buenas opciones predeterminadas para parámetros opcionales y resultados razonablemente formateados y útiles. A medida que explora un nuevo método analítico, a menudo encontrará que ya hay un paquete R que lo hace (o un par de paquetes competidores …)

Python se considera primero como un lenguaje de programación. R se considera primero como un entorno de análisis de datos. Cada uno es útil a su manera.

Creo que el lema en el artículo que citó es bastante claro:
“R sigue siendo popular entre los doctores en ciencias de la información, pero a medida que los datos avanzan, Python se está haciendo cargo”. R siempre será utilizado por personas realmente serias sobre el uso de la cosa más poderosa (PhD). Python hace que las herramientas de datos estén más disponibles para todos, pero puede que no sea la forma óptima de resolver un problema. La mayoría de las personas no necesitan soluciones óptimas, así que sí, Python se convertirá en la corriente principal para el análisis de datos.

Diferentes lenguajes de programación son buenos para diferentes cosas y eso es algo positivo.

Los usuarios principales no están interesados ​​en construir un sistema de análisis que sea el más robusto, rápido y potente. Solo quieren una respuesta a su pregunta. Python es una manera excelente, accesible / fácil, y generalmente lo suficientemente rápida como para obtener eso.

Cualquiera que realmente necesite velocidad para algo grande y feo siempre irá a R. Al igual que si necesito datos de cadenas de minas, probablemente iría con PERL en lugar de Python.

R nunca será desplazado por Python.

Una mejor pregunta podría ser si Python desplazará SAS o SPSS

Digamos lo que dicen los Kagglers en Python o R. Recuerde que este análisis es demostrativo de hacia dónde se dirige la tecnología y proviene de los científicos de datos de todo el mundo.

Resultados de la encuesta de Kaggle 2017

Tenga en cuenta que, en términos de uso real en un entorno de trabajo, los usuarios de Kaggle que usan Python y R están muy cerca (13% frente al 10% de los encuestados).

El 51% de los usuarios de R recomienda que los principiantes aprendan Python primero

39% de los usuarios de R que recomendaron R

72% de los usuarios de Python recomendaron Python

19% de los usuarios de Python que recomendaron R primero.

Los programadores que usan R y Python en el trabajo recomiendan Python el doble de veces que recomiendan R como el mejor lenguaje para principiantes.

Python es el idioma más recomendado para principiantes, independientemente del idioma que use el encuestado en el trabajo.

No estoy exactamente seguro de lo que significa “desplazar” aquí. Si la pregunta es, “¿pueden muchos científicos de datos hacer su trabajo tan fácilmente usando Python como usando R?” entonces ciertamente. Muchos de nosotros usamos Python sobre R ya. (Apenas sé R.)

Si la pregunta es “¿los científicos de datos dejarán de usar R a favor de Python?” entonces yo diría que no. Hay muchas personas que prefieren usar R, y varios paquetes de R especializados que no tienen un equivalente fácil de Python.

Si la pregunta es “¿utilizarán los científicos de datos la mejor herramienta para el trabajo?” entonces espero que la respuesta sea sí. 🙂

R y Python coexistirán.

He visto lugares donde R y Python coexisten y ninguno puede existir sin el otro. R se usa ampliamente en ciencia de datos para la creación rápida de prototipos, mientras que Python se usa para traducir el mismo código para sistemas de producción que se ejecutan un poco más rápido. R es ideal para el caso en el que desea escribir rápidamente un algoritmo, probarlo como una muestra del conjunto de datos original y luego usar Python para sistemas de producción en tiempo real.

Solo para agregar un punto adicional.

Para hacer estadísticas y econometría, diría que la respuesta es No para el futuro cercano que podemos ver.

En Python nativo (sin R-magic), aún es muy difícil incluso ejecutar una regresión un poco más complicada o generar un informe de prueba estadística fácil de leer.

Quiero reiterar sobre un punto hecho aquí: Python definitivamente puede reemplazar a R en áreas donde la iteración rápida y la implementación son un problema.

Por ejemplo, en la gestión de riesgos o en las cobranzas, cuando trabaje contra un adversario o cambie el comportamiento del usuario, sus modelos deben adaptarse. En muchos casos, es mejor tener tiempos de actualización y actualización rápidos que preocuparse por la precisión o el sobreajuste para las principales tendencias. Aquí es donde Python y la capacidad de entrenar e implementar modelos en el mismo esquema y con el mismo código es una gran ventaja.

Despeja todas tus dudas sobre Python vs R y Data Science. Asista al seminario web gratuito en vivo sobre “¿Cómo programar su camino hacia la ciencia de datos?” eso te ayuda a borrar todas tus consultas. En el seminario web, el orador hablará específicamente sobre el debate Python vs R. También tenemos una sesión de 20 minutos de preguntas y respuestas donde tiene la oportunidad de hacer preguntas relevantes al orador. Aproveche esta oportunidad y guarde sus asientos en el Registro

El siguiente enlace aclarará las dudas sobre R y Python. Excelente comparación.

Choque de titanes! (R vs Python)

TheRe es mucho que puedes hacer en R que no puedes hacer en Python. R está aquí para quedarse y florecer.

Los usuarios de R son de la comunidad matemática y estadística, mientras que los usuarios de Python son de la comunidad CS.

Python es feo. R es hermosa Python no tiene un IDE único como Rstudio.

La reacción entre R y Python como cucharas y tenedores

Como científicos de datos, deben aprender a usar idiomas dependiendo de la escena.

Creo que la mayoría de la ciencia de datos estará de acuerdo con esto, aquí hay un artículo relacionado que fue tendencia en Hacker News: la homogeneización de la informática científica, o por qué Python está comiendo constantemente el almuerzo de otros idiomas

More Interesting

¿Es necesario el aprendizaje automático para el análisis de datos?

¿Qué campo de estudio es el más fácil de aprender como principiante completo: información / seguridad cibernética, ciencia de datos o investigación de operaciones?

¿Cuánto más complejo es el desarrollo de IA en comparación con el desarrollo de aplicaciones móviles sociales?

¿En qué casos un análisis causal es más apropiado para una empresa o departamento de investigación que el modelo predictivo?

Cómo cambiar de ingeniería de datos a modelos de construcción, aprendizaje automático, etc.

¿Cuáles son las posibilidades del análisis de big data y cómo pueden los big data ayudar a los proveedores de servicios a diario?

¿Cuáles son algunos buenos problemas con los juguetes (un solo codificador puede hacer durante un fin de semana) en ciencia de datos? Estoy estudiando el aprendizaje automático y las estadísticas, y estoy buscando algo socialmente relevante utilizando conjuntos de datos / API disponibles públicamente.

¿Qué son los grados fantasmas de libertad?

¿Qué puedo seguir en el dominio de la ciencia de datos? Tengo conocimiento en el programa R.

¿Qué tecnología de big data es mejor para el procesamiento de datos en tiempo real?

¿Está Microsoft Excel fuera de moda y menospreciado por los profesionales de la ciencia de datos?

Cómo construir mi carrera en ciencia de datos

Estoy trabajando en Business Intelligence de los últimos 5 años. ¿Es este el momento adecuado para actualizarme a la ciencia de datos y / o las tecnologías de big data?

Uso mucho Python y R, y me gustaría comenzar una empresa que ofrezca servicios de análisis de datos. ¿Cómo puedo monetizar big data? ¿Donde debería empezar?

¿Qué habilidades de codificación se necesitan para ser un científico de datos?