Archivo de la etiqueta: random forest

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)

Cómo los metadatos nos pueden ayudar a predecir tu trabajo gracias al Big Data

El pasado noviembre, saltó a la palestra del “mundo de los datos” una noticia que en España ha pasado algo desapercibida (al menos en los  medios generalistas). No obstante, no creo que sus implicaciones sean menores. La agencia de espionaje de Canadá, la CSIS, había estado recolectando metadatos (datos generados en el uso de medios digitales como el correo electrónico, los mapas de geolocalización, etc.) durante 10 años.

El tribunal supremo de Canadá, instruyendo la causa, decretó -como no podría ser de otro modo- que esto era ilegal. Por más que tuviera un fin de eventuales espionajes o amenazas por terrorismo, la seguridad y privacidad del ciudadano por delante de todo.

Estos metadatos, para que se hagan ustedes a la idea, incluyen desde números de teléfono, localizaciones, direcciones de email, duraciones de las llamadas o comunicaciones, etc. Es decir, datos asociados a acciones, no el contenido de las mismas en sí (las llamadas y sus contenidos… en cuyo caso estaríamos hablando de algo aún más grave). El CSIS quería esto porque en 2006 puso en marcha un programa que bautizó como “Operational Data Analysis Centre” para producir información inteligente que ayudase a la toma de decisiones estratégicas en favor de la seguridad del país.

Esta noticia, me resultó bastante ilustrativa porque los metadatos (los grandes olvidados, sobre los que he escrito en alguna ocasión a colación de whatsapp y Facebook), pueden revelar mucha información sobre nosotros mismos. Cómo nos comportamos, qué y por qué decidimos qué, cómo tomamos las decisiones, etc. En definitiva, un montón de información personal, que nunca podemos olvidar. Como ha hecho el tribunal supremo de justicia canadiense, por más que se trate de una agencia pública la que ha cometido el delito.

Pues bien, me acordaba de esta noticia al leer que un equipo de investigadores de la empresa de telecomunicaciones noruega Telenor, junto con el MIT Media Lab y la organización sin ánimo de lucro Flowminder, han encontrado un método para, partiendo de metadatos, predecir el estado ocupacional/profesional de una persona (desempleado o a qué se dedica). Podéis leer el artículo aquí.

Estimating individual employment status using mobile phone network data (Fuente: arxiv.org/ftp/arxiv/papers/1612/1612.03870.pdf)
Estimating individual employment status using mobile phone network data (Fuente: arxiv.org/ftp/arxiv/papers/1612/1612.03870.pdf)

El paper explica maravillosamente el modelo predictivo que han conformado. La variable dependiente, no era otra que una variable categórica de 18 pòsibles estados (uno por cada profesión, desde estudiante, empleado/ocupado y tipos de ocupación). ¿Las independientes? (es decir, las predictoras); pues los metadatos que decíamos antes: un total de 160 características o variables (casi nada), tomadas desde dispositivos móviles y categorizadas en tres categorías: financieras, de movilidad y sociales. Para qué explicarlo, si en el paper sale una tabla con todas esas características:

Los metadatos de nuestros dispositivos móviles (Fuente: arxiv.org/ftp/arxiv/papers/1612/1612.03870.pdf)
Los metadatos de nuestros dispositivos móviles (Fuente: arxiv.org/ftp/arxiv/papers/1612/1612.03870.pdf)

Todos estos datos generamos desde nuestro dispositivo móvil. Que, como decíamos, ayudan a predecir, entre muchas cosas, una cuestión tan importante como nuestro estado de ocupación. Para ello, el equipo investigador ha comparado diferentes modelos predictivos (GBM, Random Forest, SVM, kNN, redes neuronales, etc.). Tras estudiar los rendimientos de cada modelo predictivo, se quedaron con una arquitectura de red neuronal usando un 75/25% de training/testing, siendo la precisión del modelo, de media, un total de un 67,5%. Hay profesiones donde es más fácil acertar y en otras más difícil. Será que algunos nos comportamos de manera más predecible y otros de menos :-)

Precisión de los modelos predictivos para predecir ocupaciones (Fuente: arxiv.org/ftp/arxiv/papers/1612/1612.03870.pdf)
Precisión de los modelos predictivos para predecir ocupaciones (Fuente: arxiv.org/ftp/arxiv/papers/1612/1612.03870.pdf)

¿Qué variables son  las más críticas? Es decir, las que “mejor predicen” una profesión. Nada menos que la la torre de telecomunicaciones a las que más se conecta una persona (latitud y longitud), el número de lugares visitados (por frecuencia) y el radio de viaje (cómo se aleja de su hogar, la celda de conexión más cercana y que más frecuenta -salvo que durmamos mucho en hoteles :-)-). ¿Alguien se extraña entonces por qué Google Maps es gratuito? Lo de siempre, introduzcan en el navegador maps.google.com/locationhistory. En la siguiente imagen, representan la relación de estas variables y cómo ayudan a predecir la ocupación:

Relación entre variables predictoras y ocupaciones (Fuente: https://arxiv.org/ftp/arxiv/papers/1612/1612.03870.pdf)
Relación entre variables predictoras y ocupaciones (Fuente: https://arxiv.org/ftp/arxiv/papers/1612/1612.03870.pdf)
Profesiones y variables predictoras (Fuente: http://motherboard.vice.com/read/how-metadata-can-reveal-what-your-job-is)
Profesiones y variables predictoras (Fuente: http://motherboard.vice.com/read/how-metadata-can-reveal-what-your-job-is)

Este modelo de deep learning (aprendizaje cognitivo o profundo), este tipo de software que está revolucionando tantos procesos, dado que se entrenan a sí solos para encontrar patrones en grandes cantidades de datos, está en boca de muchos ahora. Su potencial es tan grande, que permitir que una agencia pública federal los emplee para cosas como las que aquí descritas, me parece preocupante.

Y ahora ustedes se estarán preguntando de dónde habrán estos investigadores obtenido los datos. Telenor :-) Es decir, la empresa de telecomunicaciones que, obviamente de manera anonimizada, han procesado hasta 76.000 conexiones de dispositivos móviles a sus torres de comunicaciones. Y de ahí han salido estos metadatos. Un proyecto, solo basado en esos datos, pero que imagínense lo que puede mejorar si lo integramos con otras fuentes de datos. Modelos aún más precisos a nivel de predicción. Un proyecto de Big Data en toda regla.

Como ven, estos proyectos de Big Data, tienen mucho potencial. Todo está por hacer y aprender. En nuestros programas de Big Data, además de ver los diferentes modelos predictivos, también aprendemos a integrar todas esas fuentes de datos, mejorar su calidad en un modelo de datos único y unificado, así como a montar infraestructuras de Big Data que optimicen estos procesamientos.