Titanic: Tu primer experimento en Azure ML Studio (I)

Tuesday, 14 November 2017

Titanic: Tu primer experimento en Azure ML Studio (I)

En Machine Learning, como en otros muchos campos, una de las formas más efectivas de aprender es ponerse manos a la obra. El famoso “Learning by doing”. Y aunque hay una gran cantidad de conceptos que conviene aclarar y aprender, vamos a intercalarlos con ejemplos prácticos que nos ayuden a perder el miedo a probar y… a equivocarnos, que, en definitiva, es la mejor forma de aprender.

Por eso, en Data Science son muy interesantes las “Competiciones”. Son una excelente forma de aprender, trabajando sobre problemas reales, en un entorno donde puedes encontrar los lenguajes más habituales, librerías, herramientas y conjuntos de datos… También puedes aprender a partir de las soluciones que han desarrollado otros participantes, compartir información con ellos etc.

Las competiciones también pueden tener otros objetivos, como la búsqueda de talento, resolver un problema concreto ofreciendo un atractivo premio como recompensa, o resolver problemas científicos o relacionados con el bien común.

En cualquier caso, si tienes interés en aprender sobre Data Science y Machine Learning, Kaggle va a ser uno de sitios favoritos. Así que, ahí va una recomendación:

¡Hazte Kaggler!

No obstante, si estás empezando en este mundo, y no conoces todavía ningún lenguaje, de primeras Kaggle puede resultar un poco “intimidante”. Así que, para ir cogiendo confianza, vamos empezar a trabajar sobre un ejemplo basado en una de sus competiciones, “Titanic, Machine Learning from Disaster”, pero usaremos una herramienta más intuitiva, Azure Machine Learning Workbench. 

Por claridad, dividiremos el experimento en varios post. En este primero, veremos cómo acceder a la herramienta, cómo localizar los datos de trabajo y dónde encontrar algunos ejemplos para empezar a utilizar Azure ML Studio. En el siguiente, cargaremos los datos en la herramienta y los dejaremos listos para aplicar nuestro modelo ML. Después, nos plantearemos la elección del algoritmo, lo aplicaremos y, por último, evaluaremos los resultados.

Además de este primer ejemplo  de uso de Azure ML, seguiremos nuestra serie de ML  trabajando con otros entornos que nos permitirán explorar otras herramientas, conocer otros algoritmos, e ir profundizando poco a poco en el mundo del Data sScience. Pero, una advertencia, cuanto más sepamos, más querremos aprender. Y siempre hay más…

¡A por ello!


Dónde podemos conseguir los datos


El dataset del Titanic es muy conocido, y es interesante tanto para principiantes como para expertos. Se puede descargar de distintas fuentes, pero recomendamos usar los datos de entrenamiento (train.csv) de Kaggle.


Figura 1: Descargamos el dataset de Kaggle.
Figura 1: Descargamos el dataset de Kaggle.

Concepto Training Data vs Testing Data


Ya que hablamos de “datos de entrenamiento”, conviene detenerse para aclarar el concepto. Los algoritmos de Machine Learning aprenden de los datos con los que los entrenamos. A partir de ellos, intentan encontrar o inferir el patrón que les permita predecir el resultado para un nuevo caso. En este ejemplo, dado que se trata de un acontecimiento del pasado, no va a haber “casos nuevos”. Sin embargo, si separamos la muestra total de los datos en dos partes:

Training data, los datos que usamos para entrenar al algoritmo
Testing data, los datos que nos “reservamos” para comprobar si el modelo que hemos generado con los datos de entrenamiento “funciona”. Es decir, si las predicciones que hemos obtenido sobre la supervivencia de un pasajero concreto son acertadas o no.

Normalmente el conjunto de datos se suele repartir en un 70% de datos de entrenamiento y un 30% de datos de test, pero se puede variar la proporción según el caso. Lo importante es ser siempre conscientes de que hay que evitar el sobreajuste u “overfitting”. Esto ocurre cuando el modelo está “sobre-entrenado”. Son modelos complejos que se ajusta tan milimétricamente al conjunto de datos a partir del cual se han creado, que pierden gran parte de su poder predictivo, y ya no son útiles para otros conjuntos de datos. Esto se debe a que los datos siempre van a tener un cierto grado de error o imprecisión, e intentar ajustarse demasiado a ellos, complica el modelo inútilmente al mismo tiempo que le resta utilidad.

Acceso a la herramienta.


Debes conectarte a Microsoft Azure Machine Learning Studio y crearte una cuenta. No hace falta tener una suscripción de Azure para poder trabajar en este entorno de pruebas. También ha salido recientemente otra versión para escritorio, que podéis encontrar aquí.

Figura 2: Accedemos a Azure ML Studio.
Figura 2: Accedemos a Azure ML Studio.

Es interesante hacer un poco de “turismo” para conocer un poco el entorno antes de empezar. “Sí, queremos hacer el tour”

  Figura 3: Nos proponen un pequeño tour para conocer la herramienta.
Figura 3: Nos proponen un pequeño tour para conocer la herramienta.

Al igual que comentamos que Kaggle es un buen lugar para aprender, en Azure ML Studio tenemos una gran cantidad de ejemplos (samples) que nos pueden ser muy útiles. En el siguiente post, veremos cómo crear un nuevo experimento desde cero. Mientras tanto, os recomendamos explorar un poco la galería, elegir cualquiera de ellos, ver cómo está hecho, y, para los más impacientes, ¿por qué no? modificarlo.  

Figura 5: Galería de Ejemplos.
Figura 5: Galería de Ejemplos.

(Continuará)

 No te pierdas el próximo LUCA Talk el próximo martes (21 de Noviembre a las 16:00)
"Acelerando la transformación digital con Smart Digits" . Regístrate al webinar aquí

2 comments:

  1. Me encanta la temática y me gustaría por fin hacer algo práctico en este ámbito, cuándo podemos esperar la siguiente entrega? Está planificado que sea de forma diaria/semanal/mensual (lo mejor serían las dos primeras opciones pero no hay que ser avaricioso jaja)

    ReplyDelete
  2. Hola Keont, nos alegra mucho que te guste nuestra propuesta. Continuaremos con nuestro experimento del Titanic la semana que viene. Mientras tanto, échale un vistazo a los ejemplos y "trastea" con la herramienta. ¡Es la mejor forma de aprender!

    ReplyDelete