Archivo de la etiqueta: machine learning

Un pequeño experimento con Deep Learning

(Artículo escrito por nuestro profesor Pedro Gómez)

Como muchos ya sabréis, Deep Learning no es sino un conjunto de algoritmos de Machine Learning que se caracterizan por emplear modelos de redes neuronales con muchas capas para lograr el aprendizaje deseado.
Para que funcionen de manera correcta, requieren de muchos ejemplos o datos a partir de los cuales los algoritmos puedan llegar a aprender de manera automática. También requieren de una gran capacidad de computación, por lo que en los últimos años han ido ganando importancia gracias entre otras cosas a la potencia de las GPUs.
La diferencia principal con el resto de técnicas de Machine Learning es que mientras las técnicas tradicionales requieren procesar primero los datos generando características de los mismos antes de aprender, las técnicas de Deep Learning consiguen realizar el aprendizaje deseado sin ese paso previo.
Algunas aplicaciones comunes del Deep Learning son:
  • Reconocimiento de imágenes
  • Detección de objetos
  • Sistemas de recomendación
  • Traducción de lenguaje
  • etc.
Mientras que otras menos conocidas pueden ser:
Por el lado del software, existen varios frameworks que nos permiten utilizar las técnicas de Deep Learning. Básicamente, cada proveedor de servicios en la nube ha creado su propio framework, como parte de su estrategia para competir por dichos servicios. Uno de los más conocidos es Tensorflow de Google: https://www.tensorflow.org/
Una de las ventajas de Tensorflow, es que tiene conexión con lenguajes de programación populares en el mundo del Machine Learning, como R y Python. En el caso del ejemplo que os voy a comentar, éste ha sido el framework que he utilizado.
Imaginemos que nos quisiéramos inventar nombres de personas nuevos en euskera. Para poder entrenar un modelo que pueda aprender un modelo de lenguaje, necesitamos ejemplos de nombres en euskera ya existentes. En este caso, he descargado la lista de nombres disponibles en Euskera separada por sexos:
Nombres de personas en euskera (Fuente: http://www.euskaltzaindia.eus/index.php?option=com_content&view=article&id=4161&Itemid=699&lang=es)
Nombres de personas en euskera (Fuente: http://www.euskaltzaindia.eus/index.php?option=com_content&view=article&id=4161&Itemid=699&lang=es)
Disponemos en este caso de 1529 nombres de hombres y 1669 de mujeres. La verdad es que son pocos, y para hacer un experimento más serio sería conveniente disponer de más datos. Quizás alguien disponga de un listado más completo.
Podemos intentar generar un modelo de Deep Learning que modelice la probabilidad de observar un nombre en euskera como la probabilidad conjunta condicional de cada una de las letras anteriores que aparecen en dicho nombre. Para entrenar este modelo en este caso he optado por una arquitectura de red denominada RNN, Recurrent Neural Network.
¿Será el modelo capaz de inventar nombres nuevos en Euskera a partir de los ya existentes? Os adjunto un listado de algunos de los nombres nuevos que he obtenido, ¿os suenan a nombres en euskera? Os aseguro que no figuran en la lista oficial de Euskaltzaindia:
Hombres Mujeres
Oñat Buga
Elaitz Abenle
Aldeka Hezua
Molen Auntzun
Xapebo Saiane
Odrin Durosi
Olaxo Guna
Etein Lenine
Lari Urparana
Agotz Manke
Enix Gatzide
Ereki Kalunia
Isteru Izia
Ortzo Emalene
Hiraso Niresku
Jariti Ozoitza
Nankin Irnen
Leniz Jenitz
Ultaz Erzui
Benitx Azkiloga
A mí al menos sí me parecen bastante euskaldunes!

Comunicando los resultados de Big Data eficientemente

(Artículo escrito por Izaskun Larrea, alumna de la promoción de 2017 en el Programa en Big Data y Business Intelligence en Bilbao)

¡Hacer predicciones no es suficiente! Los científicos de datos eficaces saben explicar e interpretar sus resultados y comunicar los hallazgos con precisión a las partes interesadas para tomar decisiones empresariales. La visualización es el campo de investigación que estudia la comunicación efectiva de resultados cuantitativos vinculando percepción, cognición y algoritmos.  Es necesario aprender a reconocer, diseñar y utilizar visualizaciones efectivas.

Como Data Scientist debemos explorar las consideraciones éticas sobre el Big Data y cómo estas consideraciones están comenzando a influir en la política y en la sociedad. Tenemos limitaciones en el uso de la tecnología para proteger la privacidad y los códigos de conducta que emergen para guiar el comportamiento de los científicos de los datos.

Las inferencias estadísticas del Big Data, heterogéneos y ruidosos son inútiles si no puede comunicarlos a sus colegas, a sus clientes, a su administración y a todas las partes interesadas, parece ir paradójicamente empeorando. Pero la reproducibilidad no es sólo para los académicos: los científicos de datos que no pueden compartir, explicar y defender sus métodos para que otros puedan construir son difíciles de entender. La importancia de la investigación reproducible y cómo el cloud computing está ofreciendo nuevos mecanismos para compartir código, datos, entornos e incluso costos que son críticos para la reproducibilidad práctica.

comunicación Big Data

Últimamente, he trabajado en una serie de proyectos que requieren la recapitulación del Big Data para desarrollar materiales de comunicación que transmiten mensajes clave con claridad y precisión.

Si bien el tipo y la cantidad de datos, las áreas temáticas y el público objetivo de cada pieza de comunicaciones varían, cada proyecto implica el uso de los siguientes pasos para producir piezas de comunicaciones efectivas en el Big Data:

  1. Evaluar la exactitud de tus datos. Ya sea porque esté explorado en Internet, interpretando un informe técnico de 100 páginas, analizando los datos de demostración reportados por el usuario o resumiendo los resultados de un trabajo, es importante hacer preguntas sobre tus datos. ¿Tus fuentes proporcionan información conflictiva que es contraria a lo que esperabas? Si es así, haz un poco de investigación adicional para resolver estos problemas y excluir cualquier fuente no confiable.
  2. Analizar lo que dice la información – Ahora que sabes que tus datos son más precisos, es el momento de organizarlo en categorías lógicas. ¿Cuáles son los principales bloques de información con los que se trata? ¿Tienes información cualitativa y cuantitativa? Una vez que tengas una mejor comprensión de la profundidad y amplitud de tus datos, puedes resumir con mayor facilidad los puntos clave de cada agrupación de datos.
  3. Determinar lo que es más importante para tu audiencia – Es fácil resumir todos los datos con los que estás trabajando, pero algunos datos son más importantes para tu audiencia que otros. ¿Alguno de tus puntos clave fue sorprendente o nuevo? Trate de encontrar tus puntos clave, preguntarse qué es significativo y por qué cada punto importa. Si tú no puedes llegar a una respuesta, es probable que el punto clave no debe ser incluido.
  4. Identificar el formato más significativo para la presentación de tus datos – Para aumentar la eficacia de tu análisis, este paso debe estar realmente en tu mente durante todo el proceso del análisis de datos. Es importante determinar qué formato de comunicaciones será más útil para tu audiencia, para que tu proyecto inspire acción en lugar de simplemente una exposición de información masiva. ¿Es probable que tu público realice físicamente un resumen ejecutivo o una hoja informativa? ¿Es probable que eliminen las páginas o el capítulo de un informe que más se relaciona con tu investigación? El propósito de la información debe determinar el formato de tu informe. Y por supuesto, no olvides que vivimos en una edad muy visual. Debemos de usar señales visuales para comunicar temas complejos.

Un análisis de datos eficaz requiere hacer el trabajo desde abajo para que nadie más en la organización se atasque con el Big Data. Tu audiencia no tendrá tiempo para luchar para determinar qué información es más importante. Es tu trabajo interpretar los datos para ellos.

¿Quién va a llevarse el beneficio que reportan nuestros datos?

(Artículo escrito por Olatz Arrieta, alumna de la promoción de 2017 en el Programa en Big Data y Business Intelligence en Bilbao)

La era del Big Data

A estas alturas creo que todas las personas que estamos en el mundo profesional moderno hemos oído hablar de Big Data, Internet de las cosas, Industria 4.0, Inteligencia Artificial, Machine learning, etc.

Mi reflexión nace de ahí, del hecho innegable de que en estos últimos…¿cuánto? ¿5, 10, 15, 20 años? la presencia de internet y lo digital en nuestras vidas ha crecido de manera exponencial, como un tsunami que de manera silenciosa ha barrido lo anterior y ha hecho que sin darnos cuenta, hoy no podamos imaginar la vida sin móvil, sin GPS, sin whatsapp, sin ordenador, sin internet, sin correo electrónico, sin google, sin wikipedia, sin youtube, sin Redes Sociales,…Basta mirar a nuestro alrededor para ver un escenario inimaginable hace pocos años.

Hasta aquí nada nuevo, reflexiones muy habituales. Pero yo quería centrarme en un aspecto muy concreto de esta revolución en la que estamos inmersos, yo quería poner encima de la pantalla ( 😉 ) el valor económico de los datos y los nuevos modelos de negocio que esto está trayendo y va a traer consigo, con nuevos servicios, agentes y roles, actualmente inexistentes, que deberán de ser claramente regulados, tanto a través de las leyes, como sobre todo, en las compraventas y contratos entre privados. Y para ello, es importante que vayamos pensando en ello.

La gran pregunta

¿De quién es la propiedad de un dato? ¿Quién tiene la capacidad de explotar y sacar rentabilidad de los datos, tanto directamente como vendiéndolos a terceros?

Es una pregunta compleja con implicaciones legales que cómo he dicho habrá que desarrollar, pero la realidad es que, hoy por hoy, el dato lo explota quien sabe cómo hacerlo y quién tiene la capacidad tecnológica y económica para hacerlo: léase los gigantes de internet, los grandes fabricantes tecnológicos, las operadoras de telecomunicaciones, la banca y aseguradoras,  grandes distribuidores, fabricantes de automóviles, etc., entre otros. Aparte está el sector público que se supone que va a actuar en este proceso, de manera neutral, velando por la privacidad de los datos y compartiendo todo lo publicable a través del open-data  para la libre explotación por parte del sector privado.

Volvamos al valor del dato. Hace unos meses veía en youtube una entrevista a un Socio de Accenture que contaba, hablando sobre el bigdata, que en una comida que había tenido días antes con un Consejero de una Aseguradora, este Socio le había transmitido su sorpresa por la reciente compra de un hospital por parte de la aseguradora, ya que solo veía pérdidas y activos obsoletos…..…..a lo que el Consejero le contestó: “Ya lo sabemos, pero su valor es un intangible…estamos pagando por la información de sus pacientes”. Dichos datos iban a poder tener  un doble (al menos) valor para la aseguradora, el primero, la explotación directa de los datos a través de algoritmos de machine learning que le permitirían el ajuste de los perfiles de riesgo de sus clientes y otro para comercializarlos y vendérselos, por ejemplo, a una farmacéutica.

Esto es un pequeño ejemplo de lo que ya está pasando, y no sólo en EEUU donde parece que estos temas van muy por delante, sino en nuestro entorno más cercano, donde las grandes empresas del tipo que he comentado, están comprando y vendiendo datos de clientes y usuarios.

Podríamos hablar también del caso clarísimo de las operadoras de móvil o de la banca que disponen del detalle de toda la vida de sus clientes, dónde van, con quién hablan, en qué y dónde gastan,..

Esto no es una crítica ni una denuncia porque realmente no están haciendo nada ilegal ni falto de ética, sino simplemente invertir mucho y ganar todo el dinero que pueden. Seguro que están respetando los datos personales, que sí están regulados por la LOPD, pero sí es verdad que todo esto está ocurriendo gracias a la falta de cultura digital y de conciencia del valor del dato de los usuarios-ciudadanos, que no dudamos en aceptar/firmar, sin mirar, los acuerdos de uso que nos ponen delante, con tal de poder utilizar esos servicios digitales que se han convertido en “imprescindibles” para nosotros.

Yendo al caso concreto del sector del automóvil. Hace poco leía la biografía de Elon Musk, fundador de TESLA, entre otras empresas, que es uno de los fabricantes de coches eléctricos más innovadores y digitalizados. En el libro contaba como dotan a sus coches de un complejo sistema de sensorización conectado a su central, con el que monitorizan el desempeño de cada elemento del coche así como el uso del mismo, ofreciendo a sus clientes un servicio de anticipación de necesidades y prevención de incidencias, totalmente transparente para los clientes, que pueden llegar a encontrarse, por ejemplo, como se les presenta a las 9 de la mañana en casa un técnico de TESLA para entregarles un coche de sustitución porque van arreglar el sistema de aire acondicionado que estaba empezando a desajustarse, cuando el usuario no había siquiera notado nada, o que al arrancar el coche por la mañana se les muestra en la pantalla del coche, ofertas de un supermercado al que suelen ir o de una hamburguesería  que está camino al trabajo….todo esto está ocurriendo ya.

se les presenta a las 9 de la mañana en casa un técnico de TESLA para entregarles un coche de sustitución porque van arreglar el sistema de aire acondicionado que estaba empezando a desajustarse, cuando el usuario no había siquiera notado nada

Hablando de industria 4.0…., ¿podría un fabricante de maquinaria industrial ofrecer a sus clientes su producto ya sensorizado, de manera que pueda monitorizar y explotar centralizadamente los datos de funcionamiento de todas las máquinas instaladas en distintos clientes con el consiguiente incremento de la información sobre su uso que eso supone, y ofrecer directamente, o a través de una tercera empresa a la que venda esa información, servicios de mantenimiento preventivo personalizado u optimización de consumos energéticos a sus clientes? ….Todo esto y mucho más se puede hacer y se hará (si no se está haciendo ya..).

Y vuelvo al asunto que planteaba, ¿de quién es la información registrada sobre los hábitos de vida/fabricación de esos clientes?¿del fabricante que ha instalado los sensores y elementos de comunicación en el coche/máquina que permiten el registro, digitalización, transporte y explotación de los datos, o…. del cliente que es quién genera realmente el contenido?¿Podría un cliente negarse a facilitar esos datos, parece que sí, pero mejor aún, ¿podría un cliente quedarse con una parte de los beneficios que, por ejemplo, TESLA pueda estar obteniendo de la venta de sus datos a los comercios de la zona para que hagan sus ofertas o el fabricante de maquinaria pueda estar obteniendo de la venta de datos a terceros para que ofrezcan servicios de mantenimiento u optimización?

¿Podrán existir intermediarios de datos que nos gestionen y rentabilicen la información que generamos, de manera similar a como hacen los gestores de banca con nuestro dinero?

Se avecina un terreno de juego nuevo, con nuevas reglas por construir y con un enorme potencial de negocio para quienes sean capaces de entender antes sus posibilidades y desarrollar nuevos modelos de explotación y servicio, y tanto las personas como las empresas debemos, al menos, empezar a ser conscientes de nuestro valor y papel en todo esto.

Valor económico de los datos (Fuente: http://www.centrodeinnovacionbbva.com/sites/default/files/cibbva-el-valor-de-los-datos-para-el-consumidor.jpg)
Valor económico de los datos (Fuente: http://www.centrodeinnovacionbbva.com/sites/default/files/cibbva-el-valor-de-los-datos-para-el-consumidor.jpg)

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)

Nuestro Alumni Iker Ezkerra, 10º clasificado en una competición de Big Data de Microsoft

El pasado miércoles 5 de Abril, tuvimos la ceremonia de entrega de diplomas de la promoción de 2016 de nuestro Programa de Big Data y Business Intelligence en la sede de Bilbao. Un total de 58 alumnos, a los que queremos extender nuestra felicitación desde aquí también.

Pero quizás, una de las mejores noticias que pudimos recibir ese día es que uno de esos 58, Iker Ezkerra, Alumni de dicha promoción, nos comunicó que había quedado 10º clasificado en una competición de Big Data que había organizado Microsoft. Concretamente en esta:

Competición Microsoft modelo concesión crediticio
Competición Microsoft modelo concesión crediticio

Una competición en la que el objetivo era desarrollar un modelo predictivo de eventuales impagos de clientes que solicitaban un préstamos hipotecario. Todo ello, utilizando tecnologías de Microsoft. Un reto interesante dado que la validación del modelo que cada participante desarrollaba, se realizaba con con 2 datasets que cada participante no conocía a priori. Se va escalando posiciones en el ranking en función del scoring que va obteniendo el modelo. ¿El resultado? El citado décimos puesto para Iker, además de obtener la certificación «Microsoft Professional Program Certificate in Data Science«.

Iker Ezkerra, décimo puesto competición Big Data Microsoft
Iker Ezkerra, décimo puesto competición Big Data Microsoft

Dentro de este proyecto, Iker tuvo que aprender un poco sobre la mecánica de concesión de créditos. Cuando solicitamos un préstamos hipotecario al banco, estas entidades financieras utilizan modelos estadísticos para determinar si el cliente va a ser capaz de hacer frente a los pagos o no. Las variables que influyen en esa capacidad de devolver el capital e intereses son muchos y complejos; ahí radica parte de la dificultad de esta competición, y donde Iker tuvo que trabajar mucho con los datos de origen para tratar de entender y acorralar bien a las variables que mejor podrían predecir el eventual «default» de un cliente.

Un total de 110.000 registros, para entrenar un modelo de Machine Learning. Por si alguien se anima en ver todo lo que pudo trabajar Iker, aquí os dejamos un enlace donde podréis encontrar el dataset. Y aquí los criterios de evaluación seguidos, que creo pueden ser interesantes para entender cómo funcionan este tipo de modelos predictivos.

Le pedí a Iker un breve párrafo describiendo su experiencia, dado que al final, nadie mejor que él para describirla. Y, muy amablemente, me envío esto, que para nosotros, desde Deusto Ingeniería, es un placer poder leer:

En los últimos meses del Programa en Big Data buscando documentación, formación y sobre todo datos que pudiese utilizar en un proyecto con el que poder poner en práctica los conocimientos que estaba adquiriendo me encontré con una Web esponsorizada por Microsoft en la que se ofrecen varios retos en los que poder poner en práctica tus conocimientos en análisis de datos. Estos retos ofrecen una visión bastante completa de lo que sería el ciclo de vida de un proyecto de análisis de datos como la limpieza del dataset, detección de outliers, normalización de datos, etc. Además algo que para mi ha sido muy interesante es que detrás de cada modelo que vas entrenando hay una «validación» de lo «bueno» que es tu modelo con lo que te sirve para darte cuenta de si tienes problemas de overfitting, limpieza de datos correcta, etc. Ya que por detrás de todo esto hay un equipo de gente que valida tu modelo con otros 2 datasets obteniendo un «score» que te permite ir escalando posiciones en una lista de competidores a nivel internacional.

Con todo esto y tras muchas horas de trabajo conseguí obtener la décima posición que para alguien que hace 1 año no sabía ni lo que era la KPI creo que no está nada mal :). Así que animo a todo el mundo con inquietudes en el mundo del dato a participar en este tipo de «competiciones» que te permiten poner a prueba los conocimientos que has adquirido y también a quitarte complejos en esta área de la informática que para algunos nos es nueva.

Felicidades, Zorionak, Congratulations, una vez más, Iker. Un placer poder disfrutar de vuestros éxitos en el mundo del Big Data.

La carrera hacia la ventaja competitiva en la era del dato: plataformas de Inteligencia Artificial y la derrota de la intuición humana

Ya va a hacer un año de lo que muchos bautizaron como uno de los principales hitos de la historia de la Inteligencia Artificial. Un algoritmo de inteligencia artificial de Google, derrotaba a Lee Sedol, hasta entonces el campeón mundial y mayor experto del juego «Go». Un juego creado en China hace entre 2.000 y 3.000 años, y que goza de gran popularidad en el mundo oriental.

AlphaGo, el
AlphaGo, el «jugador inteligente» de Google derrotando a Lee Sedol, experto ganador del juego «Go» (Fuente: https://qz.com/639952/googles-ai-won-the-game-go-by-defying-millennia-of-basic-human-instinct/)

No era la primera vez que las principales empresas tecnológicas empleaban estos «juegos populares» para mostrar su fortaleza tecnológica y progreso. Todavía recuerdo en mi juventud, allá por 1997, ver en directo cómo Deep Blue de IBM derrotaba a mi ídolo Garry Kasparov. O como Watson, un sistema inteligente desarrollado también por IBM, se hizo popular cuando se presentó al concurso Jeopardy y ganó a los dos mejores concursantes de la historia del programa.

La metáfora de la «batalla» muchos la concebimos como la «batalla» del humano frente a la inteligencia artificial. La conclusión de la victoria de los robots parece clara: la inteligencia artificial podía ya con el instinto humano. Nuestra principal ventaja competitiva (esos procesos difícilmente modelizables y parametrizables como la creatividad, el instinto, la resolución de problemas con heurísticas improvisadas y subjetivas, etc.), se ponía en duda frente a las máquinas.

No solo desde entonces, sino ya tiempo atrás, las principales empresas tecnológicas, están corriendo en un entorno de competitividad donde disponer de plataformas de explotación de datos basadas en software de inteligencia artificial es lo que da competitividad a las empresas. Amazon, Google, IBM, Microsoft, etc., son solo algunas de las que están en esta carrera. Disponer de herramientas que permiten replicar ese funcionamiento del cerebro y comportamiento humano, ya hemos dicho en varias ocasiones, abre nuevos horizontes de creación de valor añadido.

¿Qué es una plataforma de inteligencia artificial? Básicamente un software que una empresa provee a terceras, que hace que éstas, dependan de la misma para su día a día. El sistema operativo que creó Microsoft (Windows) o el buscador que Alphabet creó en su día (Google), son dos ejemplos de plataformas. Imaginaros vuestro día a día sin sistema operativo o google (¿os lo imagináis?). ¿Será la inteligencia artificial la próxima frontera?

No somos pocos los que pensamos que así será. IBM ya dispone de Watson, que está tratando de divulgar y meter por todas las esquinas. Una estrategia bajo mi punto de vista bastante inteligente: cuanta más gente lo vea y use, más valor añadido podrá construir sobre la misma. Es importante llegar el primero.

Según IDC, para 2020, el despliegue masivo de soluciones de inteligencia artificial hará que los ingresos generados por estas plataformas pase de los 8.000 millones de dólares actuales a los más de 47.000 millones de dólares en 2020. Es decir, un crecimiento anual compuesto (CAGR), de más de un 55%. Estamos hablando de unas cifras que permiten vislumbrar la creación de una industria en sí mismo.

CAGR de los sistemas de inteligencia artificial y cognitivos (Fuente: http://www.idc.com/getdoc.jsp?containerId=prUS41878616)
CAGR de los sistemas de inteligencia artificial y cognitivos (Fuente: http://www.idc.com/getdoc.jsp?containerId=prUS41878616)

¿Y qué están haciendo las grandes tecnológicas? IBM, que como decíamos antes lleva ya tiempo en esto, creó en 2014, una división entera para explotar Watson. En 2015, Microsoft y Amazon han añadido capacidades de machine learning a sus plataformas Cloud respectivas. A sus clientes, que explotan esos servicios en la nube, les ayudan prediciendo hechos y comportamientos, lo que las aporta eficiencia en procesos. Un movimiento, bastante inteligente de valor añadido (siempre que se toque costes e ingresos que se perciben de manera directa, el despliegue y adopción de una tecnología será más sencillo). Google ha sacado en abierto (un movimiento de los suyos), TensorFlow, una librería de inteligencia artificial que pone a disposición de desarrolladores. Facebook, de momento usa todas las capacidades de análisis de grandes volúmenes de datos para sí mismo. Pero no será raro pensar que pronto hará algo para el exterior, a sabiendas que atesora uno de los mayores tesoros de datos (que esto no va solo de software, sino también de materias primas).

Según IDC, solo un 1% de las aplicaciones software del mundo disponen de características de inteligencia artificial. Por lo tanto, es bastante evidente pensar que su incorporación tiene mucho recorrido. En el informe que anteriormente decíamos, también vaticina que para ese 2020 el % de empresas que habrán incorporado soluciones de inteligencia artificial rondará el 50%.

Por todo ello, es razonable pensar que necesitaremos profesionales que sean capaces no solo de explotar datos gracias a los algoritmos de inteligencia artificial, sino también de crear valor sobre estos grandes conjuntos de datos. Nosotros, con nuestros Programas de Big Data, esperamos tener para rato. Esta carrera acaba de comenzar, y nosotros llevamos ya corriéndola un tiempo para estar bien entrenados. La intuición humana, no obstante, esperamos siga siendo difícilmente modelizable. Al menos, que podamos decirles a los algoritmos, qué deben hacer, sin perder su gobierno.

Cuándo y por qué puede fallar un modelo predictivo

Las pasadas elecciones americanas, han vuelto a poner encima de la mesa un debate que parece ya clásico: los (supuestos) fallos de las encuestas. El debate también salió con la infravaloración que se hizo a la victoria del Partido Popular el pasado 26-J, el «sorpasso» que las encuestas vaticinaron o en el Brexit.

Las encuestas, como modelos que son, son una aproximación a la realidad. Lo que suele fallar en esos modelos de aproximación no son tanto los métodos predictivos empleados, sino cómo se pondera la idea de la incertidumbre. Y es que estos ejercicios de adelantarnos a lo que puede ocurrir en un futuro (predecir), nunca borran ni eliminan la incertidumbre. El mundo es así, no es lineal.

Lo que ocurre es que nuestra mente no funciona bien bajo incertidumbre, por lo que la encanta utilizar las predicciones como una idea cerrada y segura. Así manejamos la información con más facilidad, reducimos nuestra fatiga cognitiva,  y podemos conversar sobre los temas con más facilidad con la gente.

Pero los modelos predictivos, como decía, no son tan sencillos. Ni los modelos estadísticos para tratar de hacer una previsión de los resultados electorales, ni los que tratan de predecir qué ocurrirá en la economía o con la meteorología. Siempre habrá incertidumbre.

Miremos el caso de las elecciones americanas para ilustrar la idea de cuándo y por qué puede fallar un modelo predictivo. Cuando hablamos del Teorema de Bayes, ya dijimos que predecir consta de tres partes constituyentes:

  1. Modelos
  2. Calidad de datos
  3. Juicio humano

Vayamos por partes. Los modelos. Ningún modelo es perfecto, el famoso aforismo de la estadística («All models are wrong«) de George Box que citó en este artículo de 1976. A sabiendas que la ciencia política llevada décadas estudiando el campo, que hay gente realmente buena detrás construyendo modelos predictivos (FiveThirtyEight, Predictwise, etc.), no tengo la sensación de que fuera un problema metodológico de captura de mecanismos -atributos, variables predictoras- de elección de presidente (comportamiento de los diferentes estados, variables económicas y sociales, momentum, ruido social, etc.).

No obstante, como señala este reportaje de New York Times, es posible y probable que los modelos no recogieran bien cómo Trump desplazó el debate a la derecha y ganó en zonas rurales el gran soporte urbano que tenía Clinton. Aquí juegan otros elementos (el mecanismo de asignación de electores), pero entiendo eso sí estaba recogido. Como veis, más incertidumbres que certezas. Pero esto es lo que tiene hacer modelos; a posteriori te das cuenta, pero a priori es difícil estimar las mejores variables a incorporar.

Modelo predictivo de fivethirtyeight.com
Modelo predictivo de fivethirtyeight.com

En segundo lugar, los datos en sí. De su calidad y su vital importancia, también hemos hablado mucho por aquí. Evidentemente, en un proceso electoral en el que cada vez los medios digitales tienen mayor protagonismo, es un candidato este eje a ser considerado. La falta de veracidad de las respuestas de las encuestas (no sea que alguien se entere que voy a votar a Trump, incluso un fallo de memoria, por las prisas con las que se suele responder), el sesgo de respuesta (te respondo a lo que tú me preguntas, no más), sesgos muestrales (¿cómo preguntar a todos a sabiendas de la ausencia de uso de medios digitales o telefónicos en muchos casos?, aquí es donde entraría el margen de error), etc. Es por todos estos problemas de los datos por los que cada vez hay más «cocina» o corrección de las respuestas por quién lo ha podido preguntar/hacer la encuesta. Por otro lado, no olvidemos la cada vez mayor importancia de las redes sociales, donde los efectos de red son difíciles de recoger todavía a nivel metodológico. Por todo esto, es probable que los datos que lleguen a los modelos, no sean los mejores en estos momentos. Y que haya mucho que mejorar aún en toda esta parte.

En tercer y último lugar, esta la interpretación de los resultados que ofrece un modelo. Es decir, el juicio humano. Como decíamos al comienzo, es difícil en ocasiones, en un modelo predictivo, explicar a la gente que todo lo que aquí se «modeliza» es una aproximación a una realidad mucho más complicada que lo que un modelo representa. Esa diferencia, ese gap, es lo que ponderamos con la incertidumbre. Como no sabemos lo que va a ocurrir con 100% de certeza, lo expresamos. Un intervalo de confianza del 95%, no garantiza, obviamente, nada. Este valor quiere decir que de cada 20 muestras sobre esa misma población (el electorado americano), 19 veces, el valor a predecir (el resultado electoral), estará contenido en el modelo. Solo se «fallará» (que tampoco es un término del todo correcto en este  contexto), en 1 de cada 20 ocasiones. ¿Puede ser este el caso de la victoria de Donald Trump o el resto de situaciones explicadas al comienzo? Es posible y probable.

Como ven, hacer un modelo predictivo no es un tarea sencilla. Por ello, es bueno manejar esta terminología básica de elementos críticos a considerar para saber muy bien lo que se está haciendo. En nuestros Programas de Big Data, por eso empezamos siempre hablando de modelado y calidad de datos, para luego empezar con la estadística y los modelos de aprendizaje supervisado y no supervisado (Machine Learning). No todo es software, claro.

El uso del Machine Learning en las entidades financieras

(Artículo de nuestro profesor Pedro Gómez Tejerina)

Las entidades financieras han sido las pioneras tradicionalmente en utilizar el Data Mining y Machine Learning (ML). Y lo han aplicado principalmente en el núcleo de su negocio, la financiación. Cuando un cliente quiere solicitar un préstamo, el banco le solicita una determinada información (edad, estado civil, nivel de ingresos, domicilio, etc). En realidad el banco lo que ha hecho internamente ha sido analizar los datos históricos de los préstamos que tiene concedidos e intentar determinar la probabidad de que un cliente con determinadas características pueda impagar ese préstamo (a través de modelos de Machine Learning). Es lo que se denomina un scoring, y es el primer requisito que requiere una entidad financiera para conceder un préstamo a un cliente, que pase ese modelo de scoring (es decir, que no tenga una gran probabilidad de impago según ese modelo estimado).

Pero hay otras muchas otras áreas dentro de un banco donde se utiliza el ML. Ya comentamos en otro artículo cómo los departamentos de Marketing hacen un proceso similar para intentar predecir qué clientes podrían contratar en un futuro cercano un nuevo producto. Son los denominados modelos de propensión y la lógica es parecida al caso anterior. Analizar los datos históricos de contrataciones de productos para buscar clientes “similares” a los que anteriormente ya contrataron esos productos. Los clientes más parecidos a los que en el pasado contrataron un producto son a priori los que más probabilidad tienen de contratarlos en el futuro. A esos serán a los siguientes a los que les ofrecerán las ofertas comerciales.

Pero esto del ML tiene muchas más aplicaciones en una entidad financiera. Por ejemplo intentar detectar automáticamente operaciones (bien sean de tarjetas de crédito o transferencias) fraudulentas para evitar disgustos a sus clientes. O intentar predecir el uso en fin de semana de los cajeros automáticos de las oficinas para asegurarse de que no se quedan sin efectivo cuando los clientes vayan a retirarlo. O incluso a nivel organizativo re-estructurar la localización de sus oficinas físicas para atender mejor a sus clientes a través del análisis de los datos de las visitas de los mismos a las oficinas. Y todo esto por no hablar de los motores de recomendación de inversión, que analizan rentabilidades históricas de los activos financieros para ofrecer recomendaciones de inversión personalizadas a los clientes según el apetito de riesgo que estos tengan.

Todos estos ejemplos son tan sólo una muestra de las aplicaciones que el mundo del Data Mining y Machine Learning tienen en una entidad financiera, pero como os podéis imaginar, hay muchos más. La tendencia actual es enriquecer estos modelos con otro tipo de datos (redes sociales, Open Data, datos no estructurados…) para mejorar su capacidad predictiva. Aquí es donde entra en juego el Big Data.

Fuente: https://www.coursera.org/course/compfinance
Fuente: https://www.coursera.org/course/compfinance

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.

Eligiendo una herramienta de Analítica: SAS, R o Python

(Artículo escrito por Pedro Gómez Tejerina, profesional del sector financiero, y profesor de nuestro Programa de Big Data y Business Intelligence)

Probablemente si estás leyendo este blog tengas un problema analítico que quieras resolver con datos. Es posible también que tengas unos conocimientos de estadística que quieras poner en práctica, así que es hora de elegir una herramienta analítica. Así que vamos a intentar orientaros en la elección, aunque las tres herramientas de analítica nos van a permitir hacer en general los mismos análisis:

  1. Conocimientos previos de programación. Si sabes programar y vienes de un entorno web, probablemente Python sea el más fácil de aprender. Es un lenguaje más generalista que los otros dos y solamente tendrás que aprender el uso de las librerías para hacer análisis de datos (Pandas, Numpy, Scipy, etc.). Si no es el caso y lo tuyo no es programar, SAS es más fácil de aprender que R, que es el lenguaje más diferente de los tres, dado su origen académico-estadístico.
  2. Herramientas User Friendly y GUI: Tanto SAS (SAS Enterprise Guide, SAS Enterprise Miner, SAS Visual Analytics) como R (Rattle, RStudio, Rcommander) tienen buenas interfaces visuales que pueden resolver problemas analíticos sin tener la necesidad de programar. Python dispone de menos (Orange), aunque dispone de una buena herramienta de enseñanza: los notebooks.
  3. Coste de las herramientas. SAS es un software comercial y bastante caro. Además el uso de cada una de sus capacidades se vende por paquetes, así que el coste total como herramienta analítica es muy caro. La parte buena es que tienes un soporte. Por el contrario, tanto R como Python son gratuitos, si bien es cierto que empresas como Revolution Analytics ofrecen soporte, formación y su propia distribución de R con un coste bastante inferior a SAS. Normalmente sólo las grandes empresas (bancos, compañías telefónicas, cadenas de alimentación, INE, etc.) disponen de SAS debido a su coste.
  4. Estabilidad de la herramienta. Al ser un software comercial, en SAS no hay problemas de compatibilidad de versiones. R al tener un origen académico ofrece distintas librerías para hacer un mismo trabajo y no todas funcionan en versiones anteriores de R. Para evitar estos problemas en una gran empresa recomendaría utilizar alguna distribución comercial de Revolution Analytics por ejemplo.
  5. Volumen de datos. Las única diferencia es que SAS almacena los datos en tu ordenador en vez de en memoria (R), si bien es cierto que las 3 tienen conexiones con Hadoop y las herramientas de Big Data.
  6. Capacidad de innovación. Si necesitas utilizar las últimas técnicas estadísticas o de Machine Learning SAS no es tu amigo. Es un software comercial que para garantizar la estabilidad de uso entre versiones retrasa la incorporación de nuevas técnicas. Aquí el líder es R seguido de Python.

Conclusión: no es fácil quedarse con una herramienta de analítica y las personas que trabajamos en grandes compañías estamos habituados a trabajar con varias. SAS ofrece soluciones integradoras a un coste elevado. R tiene muchas capacidades de innovación debido a su origen y Python tiene la ventaja de ser un lenguaje de programación generalista que además puede servir para hacer Data Mining o Machine Learning. La elección dependerá de lo que estés dispuesto a pagar y tus necesidades específicas. Yo tengo la suerte o desgracia de trabajar en una gran empresa, así que dispongo de las 3.

Tendencias en lo que a demanda de perfiles con conocimiento de R, SAS y Python se refiere (Fuente: http://www.statsblogs.com/2013/12/06/sas-is-abandoned-by-the-market-for-advanced-analytics/)
Tendencias en lo que a demanda de perfiles con conocimiento de R, SAS y Python se refiere (Fuente: http://www.statsblogs.com/2013/12/06/sas-is-abandoned-by-the-market-for-advanced-analytics/)

Más información en:

  • http://www.analyticsvidhya.com/blog/2014/03/sas-vs-vs-python-tool-learn/
  • http://blog.datacamp.com/r-or-python-for-data-analysis/