Archivo de la etiqueta: clasificación

Guía para comenzar con algoritmos de Machine Learning

El interés por el concepto de «machine learning» no para de crecer. Como siempre, una buena manera de saberlo, es utilizando herramientas de agregación de intereses como son Google Trends (las tendencias de búsquedas en Google) y Google N Gram Viewer (que indexa libros que tiene Google escaneados y sus términos  gramaticales). Las siguientes dos imágenes hablan por sí solas:

Búsqueda del término "machine learning" en Google (Fuente: Google Trends)
Búsqueda del término «machine learning» en Google (Fuente: Google Trends)
El término "machine learning" en libros en el último siglo (Fuente: Google N Gram Viewer)
El término «machine learning» en libros en el último siglo (Fuente: Google N Gram Viewer)

Sin embargo, no se trata de un término nuevo que hayamos introducido en esta era del Big Data. Lo que sí ha ocurrido es el «boom de los datos» (derivado de la digitalización de gran parte de las cosas que hacemos y nos rodean) y el abaratamiento de su almacenamiento  y procesamiento (básicamente, los ordenadores  y sus procesadores cuestan mucho menos que antes). Vamos, dos de los vectores que describen esta era que hemos bautizado como «Big Data».

Los algoritmos de machine learning están viviendo un renacimiento gracias a esta mayor disponibilidad de datos y cómputo. Estos dos elementos permiten que estos algoritmos aprendan conceptos por sí solos, sin tener que ser programados. Es decir, se trata de ese conjunto de reglas abstractas que por sí solas son construidas, lo que ha traído y permitido que se «autonconfiguren».

La utilidad que tienen estos algoritmos es bastante importante para las organizaciones, dado que son especialmente buenos para adelantarnos a lo que pueda ocurrir. Es decir, que son bastante buenos para predecir, que es como sabéis, una de las grandes «inquietudes» del momento. Se pueden utilizar estos algoritmos de ML para otras cuestiones, pero su interés máximo radica en la parte predictiva.

Este tipo de problemas, los podemos clasificar en dos grandes categorías:

  • Problemas de regresión: la variable que queremos predecir es numérica (las ventas de una empresa a partir de los precios a fijar)
  • Problemas de clasificación: cuando la variable a predecir es un conjunto de estados discretos o categóricos. Pueden ser:
    • Binaria: {Sí, No}, {Azul, Rojo}, {Fuga, No Fuga}, etc.
    • Múltiple: Comprará {Producto1, Producto2…}, etc.
    • Ordenada: Riesgo {Bajo, Medio, Alto}, ec.

Estas dos categorías nos permiten caracterizar el tipo de problema a afrontar. Y en cuanto a soluciones, los algoritmos de machine learning, se pueden agrupar en tres grupos:

  • Modelos lineales: trata de encontrar una línea que se «ajuste» bien a la nube de puntos que se disponen. Aquí destacan desde modelos muy conocidos y usados como la regresión lineal (también conocida como la regresión de mínimos cuadrados), la logística (adaptación de la lineal a problemas de clasificación -cuando son variables discretas o categóricas-). Estos dos modelos tienen tienen el problema del «overfit»: esto es, que se ajustan «demasiado» a los datos disponibles, con el riesgo que esto tiene para nuevos datos que pudieran llegar. Al ser modelos relativamente simples, no ofrecen resultados muy buenos para comportamientos más complicados.
  • Modelos de árbol: modelos precisos, estables y más sencillos de interpretar básicamente porque construyes unas reglas de decisión que se pueden representar como un árbol. A diferencia de los modelos lineales, pueden representar relaciones no lineales para resolver problemas. En estos modelos, destacan los árboles de decisión y los random forest (una media de árboles de decisión). Al ser más precisos y elaborados, obviamente ganamos en capacidad predictiva, pero perdemos en rendimiento. Nada es gratis.
  • Redes neuronales: las redes artificiales de neuronas tratan, en cierto modo, de replicar el comportamiento del cerebro, donde tenemos millones de neuronas que se interconectan en red para enviarse mensajes unas a otras. Esta réplica del funcionamiento del cerebro humano es uno de los «modelos de moda» por las habilidades cognitivas de razonamiento que adquieren. El reconocimiento de imágenes o vídeos, por ejemplo, es un mecanismo compleja que nada mejor que una red neuronal para hacer. El problema, como el cerebro humano, es que son/somos lentos de entrenar, y necesitan mucha capacidad de cómputo. Quizás sea de los modelos que más ha ganado con la «revolución de los datos»; tanto los datos como materia prima, como procesadores de entrenamiento, le vienen como anillo al dedo para las necesidades que tienen.

En el gran blog Dataconomy, han elaborado una chuleta que es realmente expresiva y sencilla para que podamos comenzar «desde cero» con algoritmos de machine learning. La tendremos bien a mano en nuestros Programas de Big Data en Deusto.

Guía para principiantes de algoritmos de Machine Learning (Fuente: dataconomy.com)
Guía para principiantes de algoritmos de Machine Learning (Fuente: dataconomy.com)

El Machine Learning en la era del Big Data

El Machine Learning o «Aprendizaje automático» es un área que lleva con nosotros ya unos cuantos años. Básicamente, el objetivo de este campo de la Inteligence Artificial, es que los algoritmos, las reglas de codificación de nuestros objetivos de resolución de un problema, aprendan por si solos. De ahí lo de «aprendizaje automático». Es decir, que los propios algoritmos generalicen conocimiento y lo induzcan a partir de los comportamientos que van observando.

Para que su aprendizaje sea bueno, preciso y efectivo, necesitan datos. Cuantos más, mejor. De ahí que cuando irrumpe el Big Data (este nuevo paradigma de grandes cantidades de datos) el Machine Learning se empezase a frotar las manos en cuanto al futuro que le esperaba. Los patrones, tendencias e interrelaciones entre las variables que el algoritmo de Machine Learning observa, se pueden ahora obtener con una mayor precisión gracias a la disponibilidad de datos.

¿Y qué permiten hacer estos algoritmos de Machine Learning? Muchas cosas. A mí me gusta mucho esta «chuleta» que elaboraron los compañeros del blog Peekaboo. Esta chuleta nos ayuda, a través de un workflow, a seleccionar el mejor método de resolución del problema que tengamos: clasificar, relacionar variables, agrupar nuestros registros por comportamientos, reducir la dimensionalidad, etc. Ya veis, como comentábamos en la entrada anterior, que la estadística está omnipresente.

«Chuleta» de algoritmos de Machine Learning (Fuente: http://1.bp.blogspot.com/-ME24ePzpzIM/UQLWTwurfXI/AAAAAAAAANw/W3EETIroA80/s1600/drop_shadows_background.png)

Estas técnicas llevan con nosotros varias décadas ya. Siempre han resultado muy útiles para obtener conocimiento, ayudar a tomar decisiones en el mundo de los negocios, etc. Su uso siempre ha estado más focalizado en industrias con grandes disponibilidades de datos. Por ejemplo, el sector BFSI (Banking, Financial services and Insurance) siempre han considerado los datos como un activo crítico de la empresa (como se generalizó posteriormente en 2011 a partir del Foro de Davos). Y siempre ha sido un sector donde el Machine Learning ha tenido mucho peso.

Pero, con el auge de la Internet Social y las grandes empresas tecnológicas que generan datos a un gran volumen, velocidad y variedad (Google, Amazon, etc.), esto se generaliza a otros sectores. El uso del Big Data se empieza a generalizar, y el Machine Learning sufre una especie de «renacimiento».

Ahora, se convierten en pieza clave del día a día de muchas compañías, que ven cómo el gran volumen de datos además, les ayuda a obtener más valor de la forma de trabajar que tienen. En la siguiente ilustración que nos genera Google Trends sobre el volumen de búsqueda de ambos términos se puede observar cómo el «Machine Learning» se ve iluminado de nuevo cuando el Big Data entra en el «mainstream»(a partir de 2011 especialmente).

Búsquedas de Big Data y Machine Learning (Fuente: Google Trends)
Búsquedas de Big Data y Machine Learning (Fuente: Google Trends)

¿Y por qué le ha venido tan bien al Machine Learning el Big Data? Básicamente porque como la palabra «aprendizaje» viene a ilustrar, los algoritmos necesitan de datos, primero para aprender, y segundo para obtener resultados. Cuando los datos eran limitadas, corríamos el peligro de sufrir problemas de «underfitting«. Es decir, de entrenar poco al modelo, y que éste perdiera precisión. Y, si utilizábamos todos los datos para entrenar al modelo, nos podría pasar lo contrario, problemas de «overfitting«, que entonces nos generaría modelos demasiado ajustados a la muestra, y quizás, poco generalizables a otros casos.

El entrenamiento del modelo con datos y los problemas de
El entrenamiento del modelo con datos y los problemas de «underfitting» y «overfitting» (Fuente: http://i.stack.imgur.com/0NbOY.png)

Este problema con el Big Data desaparece. Tenemos tantos datos, que no nos debe preocupar el equilibrio entre «datos de entrenamiento» y «datos para testar y probar el modelo y su eficiencia/precisión«. La optimización del rendimiento del modelo (el «Just Right» de la gráfica anterior) ahora se puede elegir con mayor flexibilidad, dado que podemos disponer de datos para llegar a ese punto de equilibrio.

Con este panorama de eficientes algoritmos (Machine Learning) y mucha materia prima para que éstos funcionen bien (Big Data), entenderán por qué no solo hay muchos sectores de actividad donde las oportunidades son ahora muy prometedoras (la sección «Rethinking industries» de la siguiente gráfica), sino también para el desarrollo tecnológico y empresarial, es una era, esta del Big Data, muy interesante y de valor.

El panorama de la inteligencia de las máquinas (Fuente: http://blogs-images.forbes.com/anthonykosner/files/2014/12/shivon-zilis-Machine_Intelligence_Landscape_12-10-2014.jpg)
El panorama de la inteligencia de las máquinas (Fuente: http://blogs-images.forbes.com/anthonykosner/files/2014/12/shivon-zilis-Machine_Intelligence_Landscape_12-10-2014.jpg)

En los últimos años hemos visto mucho desarrollo en lo que a tecnología de Bases de Datos se refiere. Las compañías disponen de muchos datos internos, que se complementan muy bien con los externos de la «Internet Social». Así, el Machine Learning, nos acompañará durante los próximos años para sacarle valor a los mismos.