mindsdb – machine learning for developers :)
Hace unas semanas atrás, recibí un publi-mail con con una invitación a probar una nueva librería open source, algo que a primera vista parecía un spam / phishing xD, sin embargo (para mi sorpresa) no era un spam, si no, un publi-mail invitando a developers a probar un proyecto llamado mindsdb (https://github.com/mindsdb/mindsdb#mindsdb).
El proyecto tiene como meta poder automatizar o simplificar muchas tareas del data science (como la exploración de datos, analysis, test de distintos algoritmos, etc.), algo que suena muy bien para los developers pero un poco mal para los data science xD, incluso con un lema “IA for developers”.
A primera vista, trate de instalar el proyecto en mi entorno anaconda con python 3.7 usando pip
pip3 install mindsdb --user
Sin embargo, la importar el proyecto (import mindsdb), me lanzo la exception “ImportError: cannot import name ‘LudwigModel’ from ‘ludwig’”, googleando es un error conocido, donde la solución, es clonar una versión fixed y compilar
git clone https://github.com/mindsdb/mindsdb/tree/ludwig_import_fix cd ludwig_import_fix python3 setup.py install
Luego de eso, la importación de la librería funciono.
Ejemplo
Siguiendo la documentación, nos invita a probar el siguiente ejemplo
import mindsdb # Instantiate a mindsdb Predictor mdb = mindsdb.Predictor(name='real_estate_model') # We tell the Predictor what column or key we want to learn and from what data mdb.learn( from_data="https://s3.eu-west-2.amazonaws.com/mindsdb-example-data/home_rentals.csv", # the path to the file where we can learn from, (note: can be url) to_predict='rental_price', # the column we want to learn to predict given all the data in the file ) result = mdb.predict(when={'number_of_rooms': 2,'number_of_bathrooms':1, 'sqft': 1190}) # The result will be an array containing predictions for each data point (in this case only one), a confidence for said prediction and a few other extra informations print('The predicted price is ${price} with {conf} confidence'.format(price=result[0]['rental_price'], conf=result[0]['rental_price_confidence']))
Y luego de unos veintitantos segundos, mindsdb generó un modelo de machine learning llamado “real_estate_model” entrenado con el archivo “home_rentals.csv” y ejecutando la predicción del precio de arriendo de una propiedad con 2 habitaciones, 1 un años y una superficie de 1190 (¿1.190 metros cuadrados? cosas del primer mundo xD).
Algo bastante interesante, ya que permite automatizar muchas tareas del mundo del machine learning, a si que seguiré jugando con la librería, a pesar que se encuentra en una etapa muy preˆ2-alpha.
Ejemplo en Google Colab
Google Colab (https://colab.research.google.com) es una herramienta de google (gratuita hasta cierto punto, creo xD) que nos permite usar un notebook jupyter conectado a un backend de google generado para nuestra sesión (con un par de gigas de espacio y ram), el mismo ejemplo, corre en Google Colab, previamente instalado mindsdb con pip usando el comodín ! de jupyter para correr comandos en la terminal.
!pip install mindsdb import mindsdb # Instantiate a mindsdb Predictor mdb = mindsdb.Predictor(name='real_estate_model') # We tell the Predictor what column or key we want to learn and from what data mdb.learn( from_data="https://s3.eu-west-2.amazonaws.com/mindsdb-example-data/home_rentals.csv", # the path to the file where we can learn from, (note: can be url) to_predict='rental_price', # the column we want to learn to predict given all the data in the file ) result = mdb.predict(when={'number_of_rooms': 2,'number_of_bathrooms':1, 'sqft': 1190}) # The result will be an array containing predictions for each data point (in this case only one), a confidence for said prediction and a few other extra informations print('The predicted price is ${price} with {conf} confidence'.format(price=result[0]['rental_price'], conf=result[0]['rental_price_confidence']))
Referencias
- https://github.com/mindsdb/mindsdb/issues/183
- https://mindsdb.github.io/mindsdb/docs/installing-mindsdb