¿Usas R estándar o Microsoft R Open? ¿Por qué?

Uso el estándar R por la misma razón por la que no actualizo mi sistema operativo poco después de que se lanza uno nuevo: no quiero ser parte de la misma ola de usuarios de prueba y lidiar con los dolores de cabeza en mi trabajo diario. Microsoft R Open “existió” como parte de Revolution Analytics, y desde antes no me motivó lo suficiente como para migrar:

Revolución Analytics – Wikipedia

Principalmente porque (en la medida en que lo entendí) se me pidió que usara varias funciones `rx ` para obtener lo que se prometió al usar la variante de R. Siendo la mayoría de las funciones que uso no creadas en `rx` o Mi escepticismo de que alguna vez podrían seguir creando suficientes funciones `rx` para mis necesidades diarias se sumaron. Con la línea lo suficientemente borrosa para mí, la promesa de múltiples hilos nunca es realmente atractiva. Tenga en cuenta que esto se debe principalmente a las promesas de administración de memoria y subprocesos múltiples.

Sin embargo, esto no quiere decir que piense que Microsoft R Open no tiene su atractivo, y aquí es donde difiero un poco de otras respuestas (y por qué consideré publicar una también).

El mayor punto de venta para mí en Microsoft R Open es ** la reproducibilidad ** en lugar del multihilo (ya que tiendo a reconsiderar las alternativas o la forma en que manejo la lógica del problema si el conjunto de datos es lo suficientemente grande como para garantizar múltiples -hilo).

Por ejemplo, en cuanto a la reproducibilidad: Stackoverflow es el rey en los ejemplos de fragmentos de código, pero no menos vulnerable a las funciones inexistentes en desuso (la mayoría de las veces me golpearon en ggplot2). Hasta donde sé, en R te quedas adivinando las soluciones, en Microsoft R Open, usas * checkpoint *:

Reproducibilidad: uso de instantáneas fijas del repositorio CRAN

Esto es reproducibilidad en su máxima expresión. Seguramente, esto no le ahorrará la molestia de los fragmentos de código existentes, pero asegurará que sus computadoras portátiles vivan para ver otro día en laboratorios o incluso grupos de empresas que no pueden permitirse el lujo de mantener tanto el sistema final como las computadoras portátiles que muestran partes de él.

En lo que respecta a R Studio, veo esto como un problema separado para usar R o Microsoft R Open, ya que parece que puedes usar Microsoft R Open en R Studio (como era de esperar, ya que R Studio es solo un IDE que aún pregunte dónde están ubicados sus binarios R en la computadora si no lo instaló primero desde CRAN):

Uso de Microsoft R Open con RStudio

Quizás donde Microsoft R Open brilla más es cuando pasas de él a lo que se basa en él:

Microsoft R Client y Microsoft R Server (aparentemente ahora etiquetado como Machine Learning Server).

2min Video –

o una vista más general de 2 minutos de video:

Como analogía, cuando trabajas con R, obtienes un par de cosas extra:

  • R brillante
  • Diapositivas R (o como se llame actualmente)
  • Cuadernos R
  • Scripts R

Cuando migras a Microsoft R Open, obtienes 2 adicionales:

  • Cliente Microsoft R
  • Servidor Microsoft R (o Servidor ML, etc.)

Entonces, nuevamente, reutilice su código R tal como está, envuelva algunas funciones agradables como lo haría en R Shiny, y listo, lo tiene desplegable ahora dentro de Microsoft SQL Server Platform.

Esto no le afectará en general en un grupo de investigación, pero si trabaja en una organización que tiene usuarios de BI que operan principalmente en herramientas como Databases + Tableau, entonces esta es una manera fácil de evitar una Torre Babel, o como el video describe correctamente, horas de dolor de cabeza sobre cómo integrar ambos juntos.

TL; DR:

  • Actualmente, el único atractivo para mí para usar Microsoft R Open en cualquier lugar sería la reproducibilidad (punto de control), que para mis propias necesidades no es realmente suficiente para pasar el tiempo migrando (puede haber otros, pero tal vez no se mostró lo suficiente como el punto de control ellos para que yo sea consciente).
  • Si forma parte de un grupo más grande de usuarios, en particular que usan Microsoft SQL Server, entonces consideraría el panorama general al decidir un cambio.

Lecturas adicionales:

Revisión: SQL Server 2017 agrega Python, procesamiento de gráficos y se ejecuta en Linux | ZDNet

PD: No es algo que me preocupe a diario, no confíe en mi palabra, pero revise las referencias 🙂 Agradecería que me dijeran mal en cualquier artículo para mejorar mi comprensión del paisaje, por supuesto.

Depende de lo que haga.

Cuando uso R como motor de cómputo y .NET como plataforma de desarrollo de software, uso Microsoft R Open. Está muy bien integrado con Visual Studio ( Herramientas R para Visual Studio [1], [2]), SQL Server ( Servicios SQL Server R [3]) y .NET Framework (R.NET, [4] RServeCLI2 [5]) entonces mi ambiente de trabajo es consistente. En los últimos 12 años, Microsoft nunca ha decepcionado con respecto a su producción de software y herramientas analíticas. No hice pruebas comparativas, sin embargo, parece más optimizado con respecto a la velocidad. El servidor MS R es multiproceso de forma predeterminada, ese es el verdadero poder del mismo , sin embargo, no he tenido que trabajar con cálculos que requieren subprocesos múltiples y probarlo en aplicaciones reales.

Cuando desarrollo aplicaciones que no están basadas en MS Open R, elijo R, porque algunas personas le temen a Microsoft, el proceso de instalación es bien conocido y estandarizado y no hago que mi software dependa de plataformas externas (lo hago completamente en R). Cuando necesito implementar soluciones basadas en servidor, uso OpenCPU.

Cuando realizo el análisis de datos, uso la versión CRAN, pero esa es una cuestión de solo acostumbrarme. También podría usar MS Open R.

Notas al pie

[1] R Herramientas de desarrollo | Estudio visual

[2] Microsoft / RTVS

[3] Descripción general de los servicios de SQL Server R

[4] jmp75 / rdotnet

[5] konne / RserveCLI2

Principalmente hago todo mi análisis e ingeniería de datos en el estándar R, pero eso es porque he estado usando el estándar R desde el día 1.

Intenté usar Microsoft R Open una vez y tiene una buena integración con SQL Server, donde puedes hacer instantáneamente toda la transformación y análisis de datos que proporciona R. Microsoft R Open también es supuestamente más rápido ya que tiene soporte para subprocesos múltiples.

Pero además de eso, realmente no veo una gran diferencia en términos de uso de R. Es por eso que creo que me atendré al estándar R, donde me he acostumbrado al entorno actual que estoy usando. Realmente no tengo una razón significativa para cambiar (todavía).

Lo que te oigo preguntar es “¿Conduces un auto rojo o un auto negro?”. Conduzco un automóvil azul (R Studio), así que, francamente, no sé cómo responder exactamente la primera parte de su pregunta. (Microsoft R usa ganchos de computación para .NET, como Adrian explicó en su respuesta, por lo que para la computación de núcleo muy duro, vale la pena trabajar con las bibliotecas que proporciona).

RStudio es un entorno integrado que finalmente hizo que trabajar con R fuera soportable. Todavía tiene que lidiar con documentación inexistente, confiar en libros abiertos como “R for Data Science” y en la sabiduría de la multitud de StackOverflow para llegar a cualquier parte con las cosas que no sabe de la cabeza. Pero al menos tiene (1) un IDE verdadero que completa automáticamente los nombres de los objetos existentes y muestra sugerencias para las opciones de comando a medida que las escribe, y (2) tiene herramientas de investigación reproducibles allí: cuadernos Jupyter y RMarkdown. Para el trabajo de análisis, dejé de escribir código R y solo escribí RMarkdown, con archivos .R que solo contenían el código de funciones.

Estoy de acuerdo con Stas Kolenikov.

Desarrollo para Windows en Matlab y C ++. También desarrollo en R, Ruby y Python y prefiero desarrollar en MacOS para estos entornos.

Utilizo RStudio para desarrollar en R. He descubierto que RStudio funciona realmente bien tanto en Windows como en Mac. Sin embargo, prefiero usar RStudio y R en Mac porque funciona más rápido en Mac que en Windows, y MacOS tiene una mejor estrategia de administración de memoria que Windows. Mis conjuntos de datos pueden ser algo grandes a veces, pero aún así el rendimiento en Mac es aceptable para mí sin el subprocesamiento múltiple. También puedo implementar mis scripts sin problemas en CentOS para producción. Otros componentes que interactúan con los scripts R también se desarrollan en MacOS y se implementan en CentOS.

Debo admitir que me siento más cómodo con los sistemas * nix que con Windows. He encontrado más recursos en forma de componentes de código abierto disponibles para entornos * nix. También confío más en la comunidad * nix open spurce que en Microsoft en términos de interoperabilidad y soporte a largo plazo. Microsoft puede optar por abandonar el soporte para sus proyectos en cualquier momento.

Gracias por la A2A

Uso MRO: es más rápido gracias al uso de MKL y tiene un equipo dedicado en pruebas y mantenimiento de Microsoft. El único inconveniente es que, por lo general, estará una versión secundaria (generalmente no es un gran problema)

Estándar R. Funciona perfectamente bien, así que no veo por qué debería confiar en Microsoft con mis necesidades de análisis de datos.

Estándar R, por las mismas razones de Joël.

More Interesting

¿Será la ciencia de datos un campo de demanda después de 10 o 15 años?

Tengo 7 años de experiencia en análisis y ciencia de datos. ¿Vale la pena hacer PGPBA de Greatlakes o IIMB o CBA de ISB?

¿Cuáles son algunas ideas o proyectos en Machine Learning o análisis de big data en un hackathon?

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

¿Cuáles son los requisitos previos necesarios para aprender la administración de big data?

¿Cuál es el propósito principal del análisis de datos?

¿Quién puede sugerir un buen proyecto en el campo de la atención médica, la minería de datos y el aprendizaje automático que utilice el reconocimiento de imágenes?

¿Cuál es la importancia de encontrar el tipo de distribución de datos para fines de modelado predictivo?

¿Cuál es su opinión sobre el Programa Insight Data Science Fellows?

Cómo ingresar al campo de análisis de datos

¿Qué libros recomendarías para aprender ciencia de datos?

¿De dónde puedo aprender XGBoost? Quiero aprenderlo desde cero y no solo la implementación.

¿Es bueno el programa de maestría en visualización de datos en Parsons School of Design?

¿Qué dicen los grandes datos sobre el ajedrez? ¿Hay algún algoritmo numérico simple para evaluar las posiciones de ajedrez que no impliquen calcular árboles de posición? ¿Tienen éxito al predecir los resultados de los juegos de ajedrez entre jugadores de habilidades similares?

¿Qué es la computación paralela y cómo se usa en ciencia de datos?