No creo que haya una respuesta general para la velocidad: probablemente depende de los modelos. Para RandomForests, GBRT y el rendimiento de la mayoría de los modelos lineales deberían ser similares. Además, todavía no existen muchos algoritmos en R (en el archivo CRAN) en scikit-learn, lo contrario a veces también debería ser cierto.
Para mayor comodidad, scikit-learn intenta aplicar una API simple y consistente (ajuste / predicción / transformación) en todos los modelos que deberían facilitar la curva de aprendizaje).
En scikit-learn también tratamos de usar uniformemente estructuras de datos de entrada barebone como matrices numpy y matrices scipy.sparse, mientras que en R es común usar representaciones de nivel superior de los datos y modelos como fórmulas. Pero a veces esto tiene una penalización de rendimiento, por ejemplo: http://www.gregorypark.org/?p=286 y no siempre es útil (por ejemplo, cuando los datos de entrada se derivan de matrices de píxeles sin procesar, como en tareas de visión por computadora).
- ¿Qué es más beneficioso para la comprensión general de la informática, el procesamiento del lenguaje natural o la teoría de la computación?
- ¿Puedo usar el aprendizaje profundo o ANN para un problema de agrupación como KNN?
- ¿Qué pasos son necesarios para construir un sistema de aprendizaje profundo para el análisis de sentimientos, tomando como datos de entrada de las redes sociales?
- ¿Cuál es la diferencia entre la taxonomía automática y la generación de clasificación?
- ¿Cómo puedo hacer que mi computadora esté disponible para Google, Quora, Facebook, para poder contribuir a sus tareas de aprendizaje automático durante el tiempo de inactividad?
Además, el uso de estructuras de datos basadas en numpy (fragmentos de memoria contiguos con un tipo de datos, una forma n-dimensional y zancadas) hace posible tener un control más preciso sobre el uso de la memoria y, en ocasiones, hacer cosas más avanzadas con archivos mapeados de memoria para cálculos de múltiples CPU ( aunque este caso de uso en particular aún no está optimizado en scikit-learn) o la serialización / cargadores eficientes a / desde almacenes de datos optimizados como PyTables.
Probablemente depende de tu cultura. Personalmente, también me gusta mucho el hecho de que Python es un lenguaje de programación de propósito general que te permite hacer:
- recolección de datos sin procesar con rastreadores y raspadores web,
- limpieza / preprocesamiento de datos (como la limpieza HTML) y almacenamiento en múltiples bases de datos, almacenes NoSQL, almacenes numéricos (HDF5 / PyTables) o indexadores de texto completo,
- exploración interactiva de datos con pandas y matplotlib,
- análisis predictivo con scikit-learn,
- Despliegue de producción de los modelos predictivos como un servicio REST HTTP utilizando matraz, por ejemplo,
- aplicaciones web para la visualización interactiva de datos django y algún ingenioso kit de herramientas del lado del cliente JS o matplotlib en el lado del servidor, por ejemplo.
Por el poder no estoy seguro de lo que quieres decir. Como se dijo anteriormente, CRAN es mucho más grande que scikit-learn en términos de cobertura.