La idea es ofrecer una referencia clara y sencilla que permita comprender, a cualquier lector, el funcionamiento de diversas herramientas que operan a partir del análisis de datos. En la medida de lo posible, se evitará el uso de conceptos grandilocuentes (en la mayoría de los casos no contribuyen a mejorar el entendimiento) y tecnicismos innecesarios pero, si no hay otra alternativa, se ofrecerá una explicación previa con ideas intuitivas y ejemplos.
A propósito del desarrollo y popularidad de las herramientas de inteligencia artificial en los años recientes, parece muy probable que el término machine learning (ML) —que en español se dice aprendizaje de máquina— sea uno de los conceptos más utilizados al presentar alguna herramienta o servicio que funciona a partir del análisis e integración de bases de datos.
En algunos casos, el uso del concepto machine learning está acompañado de otras frases que pueden crear confusión sobre sus implicaciones, por ejemplo: “El algoritmo de machine learning aprende sólo”, “ML es un sistema de análisis predictivo con datos masivos” o “machine learning permite crear herramientas de analítica avanzada”. En lo personal, nunca he entendido a qué se refieren con esta última frase y cuál es la diferencia entre la analítica avanzada y la analítica (es decir, la “no avanzada”).
En esta segunda entrega del especial “Mitos de la Inteligencia Artificial” se ofrece una explicación general sobre el machine learning y también se exploran algunas preguntas relacionadas con su funcionamiento. Por ejemplo, ¿cómo funcionan los algoritmos de ML y para qué sirven? ¿Siempre es necesario un algoritmo de esta clase para solucionar un problema? ¿Por qué es conveniente utilizar ML en algunos casos? Sin afán de pretender que este artículo se convierta en una referencia universal, el objetivo de este texto consiste en ofrecer una explicación clara y sencilla sobre estas preguntas, con base en la experiencia profesional como consultor y profesor de posgrado que el autor tiene en temas de análisis de datos e inteligencia artificial.
¿Qué es machine learning y cómo funciona?
Es una rama de la inteligencia artificial que consiste en un conjunto de métodos computacionales que permiten crear reglas o aprender patrones directamente de los datos con el fin de resolver problemas o tomar decisiones de mejor forma. Si bien no existe una definición universal, sí parece existir un consenso sobre el significado de este concepto entre algunas instituciones que encabezan el desarrollo de estos temas (ver aquí, aquí, aquí y aquí).
En concreto, el aprendizaje de máquina utiliza una serie de algoritmos (¿qué es un algoritmo?) y parámetros para crear reglas a partir de un conjunto de datos. Algunas de las opciones más populares para esta tarea son: bosques aleatorios, redes neuronales, regresión logística, support vector machine, análisis de conglomerados, análisis de regresión y árboles de decisión (en una de las próximas entregas se presentará el funcionamiento detallado de este último algoritmo).
Una de las principales ventajas del ML es que puede ser aplicado a una gran variedad de problemas reales. En estos casos, las conclusiones o predicciones ofrecidas por los algoritmos son utilizadas para sustentar algún producto o servicio.
¿Qué tipo de problemas se pueden resolver con ML?
Existen varias formas de catalogar a los problemas de aprendizaje de máquina. Una de éstas es considerando la naturaleza de la variable que se busca predecir, lo que divide a los problemas de aprendizaje de máquina en dos grupos: clasificación o regresión.
Figura 1: Ejemplos de problemas de ML de clasificación y sus posibles etiquetas
Problema de clasificación | Etiquetas |
Un servicio de correo electrónico quiere decidir si un nuevo correo como es spam | Spam o no spam |
Un reloj inteligente debe determinar el deporte que está realizando un usuario con base en el movimiento | Tenis, natación, correr, caminata, entre otros |
Un analista quiere pronosticar si un índice bursátil subirá | Aumenta o se reduce (aunque podría existir una tercera etiqueta: quedarse igual) |
Una fintech quiere predecir si un usuario que solicita un crédito va a caer en impago | Paga o no paga |
Un banco está interesado en determinar si una compra con tarjeta de crédito es fraudulenta o no | Fraude o no fraude |
Una tienda digital quiere determinar a qué producto corresponde una imagen | En este caso podrían ser cientos o miles de etiquetas (por ejemplo, considera todos los productos que tiene un supermercado) |
Se puede observar que aunque muchos problemas de clasificación tienen sólo dos etiquetas o clases, esta cantidad puede ser mucho mayor dependiendo de la aplicación.
Figura 2: Ejemplos de problemas de ML de regresión y sus posibles variables
Problema de regresión | Variable numérica |
Un inversionista quiere pronosticar el precio que tendrá una acción en 10 días | Precio de la acción en pesos |
Un conductor quiere saber cuánto tiempo le tomará llegar a su destino | Tiempo total en segundos que tomará el recorrido |
Un controlador aéreo quiere pronosticar la temperatura que habrá en la Ciudad de México durante el fin de semana | Grados Celsius |
Un analista quiere predecir el monto que un usuario gastará en una tienda departamental | Monto total en pesos |
¿Qué algoritmos se utilizan para enfrentar estos problemas?
Existe una gran variedad de opciones que se pueden considerar, sin embargo, su elección depende de la naturaleza del problema:
- Algoritmos para problemas de clasificación: regresión logística, Regresión logística multinomial (para problemas de más de dos clases), árboles de decisión, bosques aleatorios, redes neuronales, entre otros.
- Algoritmos para problemas de regresión lineal: regresión lineal simple, redes neuronales, regresión lineal múltiple, entre otras opciones.
En este último caso es importante señalar que el hecho de que un problema de aprendizaje de máquina sea de regresión no implica necesariamente que deba ser resuelto con una regresión lineal pues además de esta técnica existen otras opciones. La única implicación directa de este tipo de problemas es que la variable que se quiere estudiar es numérica.
Por otro lado es necesario mencionar que la mayoría de estos algoritmos están incluidos en las herramientas de análisis de datos más populares como R y Python (que además son gratuitas), por lo que muchas veces la tarea de un científico de datos se concentran en elegir la mejor opción con base en una serie de métricas, definir un conjunto de parámetros óptimo y asegurarse de que los datos considerados sean de buena calidad.
¿Cómo funciona un algoritmo de machine learning?
Para este ejemplo, supongamos que tenemos miles de fotografías sobre viviendas y que tenemos la tarea de determinar si una fotografía corresponde a una vivienda en una ciudad o en una playa. Desde el punto de vista de ML se trata de un problema de aprendizaje de máquina de clasificación de dos clases o etiquetas (playa o ciudad).
Para diseñar el algoritmo es posible observar algunas fotografías que han sido etiquetadas previamente. A continuación se presentan algunas fotografías de viviendas en la playa, ¿qué características tienen?
Ahora se pueden observar fotografías, previamente clasificadas, de algunas viviendas localizadas en la ciudad. ¿Qué características tienen estas viviendas?
Después de observar estas imágenes es posible enlistar algunas características que hacen más probable que una vivienda esté en una ciudad o en una playa. La siguiente tabla presenta un resumen de esta regla de clasificación:
Figura 10: Características más representativas de cada tipo de vivienda. Por supuesto existen otras características que también podrían ser consideradas. Por ejemplo, precio por metro cuadrado, número de pisos, número de recámaras, sin embargo las variables presentadas son útiles para nuestro ejemplo.
A partir de los datos (imágenes) fue posible identificar algunas características que nos permiten diferenciar cada tipo de vivienda. Ahora, esta misma regla puede utilizarse para clasificar nuevas imágenes.
La Figura 11 muestra una fotografía con las siguientes características: vista a la calle, árboles en el exterior, acceso de asfalto y dimensiones pequeñas (probablemente es un departamento). Por otro lado, no tiene alberca, ni acceso a la arena o camastros.
Resumiendo las características de la imagen anterior se presenta una tabla donde se puede observar que es más probable que se trata de una vivienda de la ciudad:
Figura 12: Tabla con características de la vivienda clasificada como de la ciudad.
Por otro lado, en la Figura 13 se observa una nueva imagen que cuenta con las siguientes características: grandes ventanales, alberca y camastros. Por otro lado, esta imagen no muestra cochera ni ventanas pequeñas.
Resumiendo las características de la imagen anterior se presenta una tabla donde se puede observar que lo más probable es que la vivienda esté ubicada en la playa:
Figura 14: Tabla con características de la vivienda clasificada como ubicada en la playa.
Es necesario mencionar que aún contando con una serie de variables que pueden parecer suficientes para hacer una buena clasificación, algunos registros pueden ser asignados de forma incorrecta. Justamente el detalle anterior es una de las características más importantes del funcionamiento de un algoritmo de aprendizaje de máquina: nos interesa que la mayor parte de los nuevos registros sean asignados correctamente a la clase a la que pertenecen en realidad.
Desde el enfoque del aprendizaje de máquina el ejercicio anterior tiene varios componentes que se pueden identificar:
- Conjunto de entrenamiento: es la información que el algoritmo utiliza para aprender o identificar patrones para ofrecer un pronóstico (en este caso, determinar si una vivienda está en una casa o ciudad a través de sus características). La calidad y limpieza de este conjunto de información es fundamental pues incide directamente en el rendimiento del algoritmo. En nuestro ejemplo este conjunto está representado por las primeras fotos en donde ya sabíamos previamente y con toda certeza si la imagen correspondía a una vivienda de casa o de ciudad.
- Conjunto de prueba: es el conjunto de registros que aún no han sido etiquetados. Estos datos no han sido analizados por el algoritmo y se busca clasificarlos de forma correcta. En nuestro ejemplo este conjunto está representado por las nuevas fotos que fueron clasificadas con los patrones determinados a través de las fotos previas (imágenes etiquetadas del conjunto de entrenamiento).
- Métricas: es una serie de medidas que ayudan a evaluar el funcionamiento del algoritmo al ofrecer pronósticos.En general, en un problema de clasificación estamos interesados en clasificar correctamente todas las clases, aunque existen otros enfoques como tasa de falsos positivos, tasa de falsos negativos, tasa de clasificación incorrecta, precisión, entre otras. Considerando los problemas de regresión, el interés principal consiste en ofrecer una estimación lo más cercana al valor real. En este caso se utilizan métricas como el error cuadrático medio aunque también hay otras.
¿Por qué es conveniente utilizar ML en algunos casos?
En la mayoría de las aplicaciones reales de aprendizaje de máquina los conjuntos de prueba y entrenamiento suelen tener millones de registros y un gran número de variables. En estos casos, identificar reglas o variables de forma empírica o intuitiva es más complicado. Además muchas de estas aplicaciones requieren que los pronósticos o clasificaciones sean entregadas de forma rápida y precisa, una tarea que difícilmente podría ser desempeñada por una persona pero sí por un algoritmo de ML implementado en una computadora a través de un lenguaje de programación.
Existen diversos ejemplos de aplicaciones populares y reales de algoritmos de aprendizaje de máquina que podemos mencionar:
- Shazam: es un problema de clasificación porque asigna correctamente una muestra de una melodía a una canción por medio de un algoritmo y un banco de canciones (conjunto de entrenamiento).
- Google Routes ETA (estimated time of arrival): es un problema de regresión porque ofrece un cálculo del tiempo total de recorrido de una ruta. En este caso se utiliza información histórica (conjunto de entrenamiento) sobre patrones de movilidad, tráfico, distancia, límites de velocidad y algunas otras, para estimar el tiempo que tomará un recorrido.
Por otro lado, sin ningún nombre en específico los algoritmos de aprendizaje de máquina pueden ser utilizados por diversas industrias para tomar mejores decisiones:
- Bancos: analizar las características de sus clientes (nivel socioeconómico, nivel de educación, sueldo, estado civil, entre otras) y los resultados históricos para determinar si se otorga o no un préstamo a un nuevo cliente.
- Aseguradoras: para determinar si un nuevo asegurado tendrá o no un siniestro a partir de sus características y hábitos para conducir.
- Medios de comunicación: para determinar si una nueva publicación tendrá un gran alcance en redes dependiendo algunas variables como el autor, la longitud del artículo, hora de la publicación, tema, entre otros.
- Retail: para definir si abrir una nueva tienda en un lugar determinado es conveniente para el negocio de acuerdo al rendimiento que han tenido otras tiendas similares (conjunto de entrenamiento), el número de personas que pasan, el tráfico, la competencia del lugar, el nivel socioeconómico de la zona aledaña, entre otros.
- Salud: para detectar tumores malignos en cáncer de mama a partir de los resultados de una paciente. (ver aquí y aquí).
En conclusión, el machine learning y sus algoritmos utilizan un conjunto de información (entrenamiento) para crear reglas y ofrecer una clasificación o un pronóstico para registros que no han sido analizados (prueba). Estas herramientas tienen múltiples aplicaciones y si son implementadas de forma correcta, ofrecen ventajas comparativas importantes.
Para tener una versión más profunda sobre los algoritmos de ML es necesario considerar una serie de detalles adicionales respecto a los datos (entrenamiento, prueba, sesgo, privacidad, limpieza, entre otros), las métricas y su implementación (inversión, equipo necesario, implementación, tiempo de desarrollo, etc.). Todos estos detalles serán analizados en artículos posteriores de esta serie.