Nos hemos encontrado con grandes diferencias de velocidad de ejecución. Nos propusimos observar las diferencias de velocidad gracias a las sugerencias de nuestros alumnos, nos encontramos que Python y R no ejecutan igual. Son bastante distintos.
¿Es Python es más veloz que R?
¿Por qué es importante la velocidad?
- Permite ciclos de prueba y aprendizaje muchos más cortos (Nos permite repetir varias veces los ciclos ya que se ejecutan de manera rápida).
- Ayuda a explorar soluciones más sofisticadas y precisas (No me conformo con una solución intermedia puedo jugar con los parámetros para obtener un modelo predictivo más preciso).
- Incrementa la productividad de los científicos de datos (Resolvemos más problemas en el mismo tiempo).
¿Es la velocidad un único valor?
No pues:
- Una cosa es la velocidad del lenguaje y otra es como están implementadas diferentes rutinas, funciones y paquetes.
- Cada paquete tiene un autor distinto y puede ser más o menos eficiente.
- Los parámetros con los que se controlan los procesos para crear modelos no son los mismos, proyectando dudas sobre la medición.
¿Cuál es más veloz entonces, R o Python?
Luego de varios experimentos podemos observar:
- Cálculo: parecidos
- Gráficos: Pyyhon
- Aprendizaje no supervisado: R
- Redes Neuronales: Python
- SVM, KNN, NB, DT: Parecidos
Conclusiones
- No podemos observar que uno sea consistentemente más rápido que otro.
- Se puede notar que hay algoritmos que están implementados en forma muy diferente y las diferencias de velocidad son significativas.
- En muchos casos las diferencia en los tiempos de ejecución no compensa la diferencia en los tiempos de desarrollo.
- La dependencia con la cantidad de datos también es distinta.
- Estas diferencias son un motivo más por los que conviene manejar ambas herramientas.