mindsdb – machine learning for developers :)

Jun 04, 2019 No Comments by

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

Python

About the author

Ingeniero en Informática, Oracle Certified Master Java EE 6 Enterprise Architect, Oracle Certified Professional Java Programmer. Experto en distintas ramas de la computación y otras "yerbas" xD. Si te gusto este post, sígueme en @deerme_org, escríbeme a info AT deerme.org o contactame por linkedin.
No Responses to “mindsdb – machine learning for developers :)”

Leave a Reply


3 + = seven