xuxoramos / ecobici-ms-ml

Exploring Microsoft Machine Learning capabilities to develop large scale ML models without leaving R and resorting to Python
GNU Affero General Public License v3.0
3 stars 3 forks source link

ecobici-ms-ml

Este ejemplo pretende crear un regresor para predecir tiempos de viaje con los datos de ecobici, utilizando Microsoft Machine Learning Server 9.3.0 en una VM de Azure. Distribuiremos los datos de ecobici mediante un shared Azure File en mi propio storage account.

¿Por qué?

R había sido el campeón del mundo de Ciencia de Datos y Machine Learning hasta 2016, cuando Google hizo open source su proyecto TensorFlow, un framework para redes neuronales "profundas", y FB posteriormente lanzó PyTorch, una capa de abstracción sobre TensorFlow. Esto se debe a que R, por diseño, tiene las siguientes limitantes como plataforma de análisis:

El Microsoft Machine Learning Server de MS tiene dentro 2 engines, Anaconda para Python, y el Microsoft R Server, antes Revolution Analytics. En este ejercicio nos enfocaremos en R, y mostraremos como, mientras vanilla R no tiene el punch para trabajar con datos de ecobici, el MS ML Server si, dado que es un completo rewrite de funciones de R, pero diseñadas para aprovechar múltiples cores y memoria virtual.

¿Por qué no Spark + R Server de MS?

La intención de este ejemplo es comparar codo a codo vanilla R y el backend de R del Microsoft Machine Learning Server. Para ello, debemos tener este setup lo más posible al típico ambiente local de vanilla R que usaríamos si los datos de ecobici no fueran tan grandes, y eso implica que no tendremos ayuda del poder de un filesystem distribuído como Azure Blob Storage, porque nos obligaría a trabajar con Spark + R Server (que es el actual Machine Learning Server), en detrimento del propósito final del experimento.

¿Por qué los datos de ecobici?

¡Porque son un ch...orro! Es un CSV de 16GB sin comprimir, y por tanto ofrece una buena oportunidad para demostrar las ventajas de MS ML Server sobre el R que traemos todos en nuestras laps. Puedes ver más detalles sobre los datos en /data/README.md.

Instrucciones para replicar el ejemplo