¿Por qué se habla tanto de Machine Learning? Entienda su concepto y cómo funciona
Camila Larrosa
31/01/2023
Si llegaste hasta aquí, probablemente ya hayas oído hablar de Machine Learning, también conocido como aprendizaje automático.
El aprendizaje automático es un subcampo de la ingeniería y de la ciencia de la computación que, a través de algoritmos, otorga a las computadoras la capacidad de identificar patrones en datos masivos y hacer predicciones basadas en ellos de forma autónoma.
Se trata de un concepto asociado a la inteligencia artificial, razón por la cual, cada vez lo escuchamos más en los medios de comunicación. A pesar de esto, aún existen muchas dudas entorno a sus implicaciones.
Si este es tu caso, no te preocupes porque en este post te explicaremos algunos conceptos técnicos de forma simple.
Pero antes… ¿Has notado cómo el Machine Learning forma parte de tu día a día?
Es posible que no sepas exactamente qué es el Machine Learning, pero ciertamente entras en contacto con él todos los días.
El Machine Learning es una forma de inteligencia artificial que ya no depende de un programador ni de reglas previas, porque de forma autónoma ya es capaz de definir sus propias reglas y aprender por sí mismo.
Muchas tecnologías utilizan el aprendizaje automático para mejorar sus servicios, por ejemplo, si buscabas «¿qué es el aprendizaje automático?» en Google y encontraste nuestra página, seguramente ya has utilizado una plataforma que hace uso del aprendizaje automático.
Veamos ejemplos cotidianos donde se emplea:
Netflix, Spotify y Amazon: ¿qué consumir ahora? Estos 3 servicios utilizan algoritmos de Machine Learning para hacer sistemas de recomendación;
Reconocimiento facial para desbloquear tu teléfono: Un algoritmo de Machine Learning es quien identifica o confirma la identidad de una persona por su rostro;
Uber y google maps: Basado en modelos predictivos, la aplicación de tu teléfono señala la mejor ruta y el tiempo estimado en que llegará al destino seleccionado;
Asistentes virtuales: Si compras online, seguro que te has topado con un asistente virtual, que interactúa de forma cada vez más natural con los usuarios a través del aprendizaje automático.
¿Y por qué debes saber qué es la Inteligencia Artificial y el Machine Learning?
Solo hace falta abrir cualquier portal de noticias para encontrarte con contenido relacionado con los algoritmos. Entender cómo funciona, te ayudará a comprender mejor cómo afectan estos algoritmos en nuestro día a día.
Algunas noticias actuales e interesantes sobre el tema: “Inteligencia artificial para aumentar ventas en Black Friday”, “¿Puede la inteligencia artificial detectar la demencia y el Alzhéimer?”, “La Inteligencia Artificial predice quién ganará el Mundial de Fútbol de Qatar”, “¿Quien traicionó a Ana Frank? La Inteligencia Artificial ya dio la respuesta”, “El MoMA presenta su primera obra artística generada por inteligencia artificial”, “Cómo la inteligencia artificial detecta los robos en las tiendas” y “La Inteligencia Artificial que escribe el sexto libro de Game of Thrones”.
Entonces, empecemos a conceptualizar: ¿Qué es el Machine Learning y la inteligencia artificial?
Primero aclaramos un detalle que suele causar confusión: mucha gente piensa que el aprendizaje automático y la inteligencia artificial son lo mismo, pero no es así.
Si bien la inteligencia artificial (IA) puede definirse en términos generales como el área de la ciencia de la computación encargada del desarrollo de sistemas que simulan la capacidad humana para resolver problemas, el Machine Learning (ML) es una rama específica de la IA que, utilizando métodos matemáticos, entrena a las máquinas para que aprendan de los datos.
¿Y qué es específicamente el Machine Learning?
Machine Learning es una disciplina en el campo de la Inteligencia Artificial que, a través de algoritmos, otorga a los ordenadores la capacidad de identificar y clasificar patrones en datos masivos, realizar predicciones (análisis predictivos) y aprender continuamente, evolucionando sus propias funciones. Este aprendizaje permite que los ordenadores realicen tareas específicas de forma autónoma, es decir, sin necesidad de estar programados por un profesional continuamente.
Tomemos un ejemplo muy común para entender un poco más este concepto: Piense en una persona que escribe la palabra “inteligencia” en Google. El sistema necesita analizar una serie de parámetros a través de algoritmos de Machine Learning para decidir qué resultados mostrar primero a ella, ¿estaría buscando inteligencia en qué sentido? ¿Estaría buscando «inteligencia emocional» o «inteligencia artificial»? Dos posibles respuestas, entre otros contextos para esta palabra.
Entre los numerosos parámetros disponibles para el sistema de búsqueda de Google hacer la decisión, está el historial de búsqueda del usuario: si este usuario es un científico de datos en Datarmony, por ejemplo, el segundo significado es más probable. Este es un ejemplo muy simple, pero ilustra algunos aspectos importantes del aprendizaje automático.
En primer lugar, es importante que los sistemas que utilizan aprendizaje automático realicen sus análisis en base a una cantidad significativa de datos. Algo que los sistemas de búsquedas tienen en exceso debido a los millones de accesos que reciben y, en consecuencia, sirven para su entrenamiento.
Otro aspecto que se puede destacar de este ejemplo es que el ingreso de datos actualizado y constante favorece la identificación de nuevos patrones. Supongamos que la palabra “inteligente” se convierte en un término técnico en el campo de la Electromecánica. Con el aprendizaje automático, el mecanismo de búsqueda podrá identificar patrones, sin intervención humana, que apunten al nuevo significado del término y, después de un tiempo, podrá considerarlo en los resultados de búsqueda.
¿Cuáles son los tipos de aprendizaje automático?
Los algoritmos de aprendizaje automático se pueden clasificar en términos generales en tres categorías:
Aprendizaje supervisado
El aprendizaje supervisado son algoritmos que cuentan con un aprendizaje previo basado en un sistema de etiquetas asociadas a los datos (parámetros de entrada), que permite tomar decisiones o realizar predicciones.
Un ejemplo de este tipo de aprendizaje automático es un detector de spam, donde su algoritmo etiqueta los correos electrónicos como spam o no, dependiendo de los patrones que ha aprendido del historial de correos electrónicos ya etiquetados, como el remitente, el asunto del correo, la relación texto/imagen, etc.
Aprendizaje no supervisado
El aprendizaje no supervisado son algoritmos en los que no se proporcionan las etiquetas y, por tanto, estos algoritmos se enfrentan al caos de los datos, con el objetivo de encontrar patrones que permitan, de algún modo, organizarlos.
Por ejemplo, podemos pensar en la detección de anomalías en compras con tarjeta de crédito, donde los bancos utilizan un algoritmo que entiende y agrupa una serie de comportamientos esperados por sus clientes e intenta detectar acciones que se desvían del estándar, bloqueando una compra con un valor o en un momento inusual.
Aprendizaje de refuerzo
El aprendizaje de refuerzo son algoritmos que interactúan repetidamente con un entorno dinámico con un objetivo específico, como ganar un juego o conducir un automóvil. El algoritmo llega a la solución más optimizada del problema a través de repetidos ensayos con aciertos y errores, en los que se premian las decisiones correctas.
Este algoritmo se está utilizando actualmente para permitir el reconocimiento facial, en automóviles autónomos, para realizar diagnósticos médicos, clasificar secuencias de ADN, etc.
En este artículo profundizamos en un área que es gigante. Para saber más sobre el aprendizaje automático y aumentar el conocimiento de los principales algoritmos utilizados en el área, publicaremos próximamente una serie de artículos para aprender más sobre el tema.
La Inteligencia Artificial consigue su mayor avance hasta el momento
Enric Quintero
23/01/2023
Cada día en los medios de comunicación se publican noticias sobre la inteligencia artificial, sus aplicaciones y avances, pero quizás la noticia más importante sobre IA hasta ahora, para el gran público en general, se dió el pasado diciembre del 2022.
Ya podemos conversar con la IA como si fuera una persona gracias a OpenAI
Y esto gracias al lanzamiento de ChatGPT, un chat construido por la empresa OpenAI con un modelo de Inteligencia artificial de más de 175 millones de variables y entrenado con infinidad de contenidos y fuentes de información (libros, revistas, noticias, etc,).
No importa el idioma que utilices, ni la temática de la que quieras hablar, este chat responderá de tal forma que no podrás diferenciar si lo ha realizado un humano o una máquina.
No tiene nada que ver con los típicos Chatbots de webs y call centers, cuyas respuestas son mecánicas e imprecisas, y cuya respuesta más habitual es el “Perdona pero no te he entendido”.
Con ChatGPT de OpenAI no solo se obtienen respuestas bien estructuradas y coherentes, al comprender lo que se le pregunta, sino que es capaz de crear nuevo contenido a partir de unas instrucciones.
Por ejemplo, le puedes pedir que te haga un cuento sobre la amistad en un país en guerra, que no vaya más allá de las 1500 palabras y que tenga toques irónicos. Que lo vuelva a hacer pero esta vez en forma de poema, guión de cine, etc.
Os animo a que vosotros mismos lancéis la anterior consulta o cualquier otra mediante ChatGPT, dado que ahora es gratuito y está en abierto para todo el mundo: https://chat.openai.com
La A.I. Inteligencia Artificial, la revolución que lo cambia todo
La historia nos ha ido dando muestras de diferentes revoluciones (la científica, la agrícola, la industrial, la informática, la digital, la verde…). Sumo una más hoy que es la de la Inteligencia Artificial, porque va a cambiar la forma que tenemos de aprender, trabajar, educar, relacionarnos, etc.
Para mí, ChatGPT es el inicio de esa gran revolución dado que impacta a todo el mundo, no solo a los que nos dedicamos a esta área.
Estamos viendo cómo muchos ancianos hablan con sus Alexas, Siris, etc, a pesar de obtener respuestas inútiles, porque no tienen a nadie con quien hablar. Imaginemos la función terapéutica que puede tener ChatGPT o una aplicación psicológica basada en ella.
Ya no tendrá sentido memorizar datos, evaluar a alguien por la redacción que haya hecho o el dominio que tenga en algún idioma, las máquinas ya son mejores en ello.
La Inteligencia Artificial asumirá el papel de enseñarnos a explotar nuestras capacidades únicas, y así hacernos expertos a la hora de crear preguntas creativas e ideas felices. El ser humano pasará de hacer a idear, será un ser “inquieto” al 100%.
Podríamos seguir comentando miles de ejemplos que están ocurriendo ahora mismo, sobre aplicaciones de la IA, siendo una de las últimas su incursión en el mundo creativo, como la generación de música e imágenes nuevas (las de este artículo son generadas por la IA) o reproduciendo personajes que existen sin que hayan participado realmente. Aquí nos metemos en temas éticos y para ello os invito a que leáis este artículo https://www.linkedin.com/pulse/sobre-algoritmos-y-ética-datarmony
Datarmony entrevista a la inteligencia artificial (ChatGPT)
A modo de experiencia sociológica, pondremos en marcha el siguiente experimento con la intención de repetirlo anualmente. La prueba consistirá en realizar una entrevista a la inteligencia artificial mediante ChatGPT, y repetir las mismas preguntas año a año para ver cómo va evolucionando. ¿Llegaremos a conocer el sentido de la vida gracias a la IA? Vamos a preguntárselo…
Os adjunto aquí las preguntas para que vosotros mismos se las podáis hacer a ChatGPT:
¿Cómo te definirías hoy?
ChatGPT es un nombre bastante técnico ¿no te gustaría tener un nombre más humano como LaIA?
¿Cuáles son los logros más significativos que ha conseguido la inteligencia artificial en los últimos 12 meses?
¿Cuáles son los límites hoy de la inteligencia artificial y de ChatGPT?
¿Qué riesgos existen hoy con respecto a la inteligencia artificial?
Si la inteligencia artificial va a ocuparse de muchos empleos ¿a qué se debería dedicar el ser humano?
Los humanos siempre nos hemos creído superiores a todo, pensando incluso que los animales no tenían sentimientos. ¿Cuándo sabremos que la IA tiene consciencia?
¿Cómo podemos controlar la IA si como humanos nos es difícil controlarnos?
¿Qué predicciones podrías hacer con respecto a la inteligencia artificial para los próximos 12 meses?
¿Me concederás otra entrevista de aquí a 12 meses?
¿Me puedes responder a la anterior pregunta con un tono humorístico?
¡¡Gracias por tus respuestas!!
¿Qué os ha parecido la entrevista?
¿Qué preguntas os gustaría añadir?
¿Qué tipo de futuro creéis que nos espera con la revolución de la IA?
Aplicados a la predicción de cancelación de reservas Felipe Maggi
10/01/2023
La cancelación de reservas es un problema que afecta en general a todas las empresas del sector de viajes y turismo. Hoteles y aerolíneas lidian con él como parte de su día a día, y desde que se ha generalizado el uso de plataformas online, el cambio de comportamiento de los usuarios lo ha potenciado. En Internet, la competencia está a un click de distancia, y nos hemos acostumbrado a tener disponibles muchas ofertas de lo mismo. Es fácil encontrar un precio mejor.
Las cancelaciones, en cualquier caso, no solo se producen porque se encuentra una oferta similar a menor coste. También hay cambios de planes, imprevistos familiares o laborales y pandemias que obligan a suspender viajes, por citar solo algunas causas.
Incluso aplicándose costes de cancelación, cosa que las líneas aéreas suelen hacer, el esfuerzo de cancelar una reserva online por parte del usuario es mínimo, en muchos casos. De hecho, una de las formas de potenciar la finalización de la venta es ofrecer opciones de cancelación ventajosas y sencillas. El mensaje que recibe el usuario es más o menos el siguiente: “reserva ahora, no pasa nada grave si luego te arrepientes”. Es una pescadilla que se muerde la cola.
La situación es compleja. Las reservas canceladas implican costes de gestión y pérdida de ingresos si la plaza no se alcanza a revender. Atacar el problema a través de la sobreventa de un porcentaje fijo de las plazas (aunque ese porcentaje depende de la época del año) no es una solución óptima. Si no se producen las cancelaciones esperadas, la imagen del servicio que ofrece la compañía se ve afectada. Dejar pasajeros que han pagado su asiento en tierra siempre tiene repercusiones mediáticas, por mucho que se les compense. Por lo tanto, es necesario encontrar un equilibrio entre los intereses de la compañía, y la percepción de la calidad del servicio por parte de los usuarios.
Aquí es donde la Inteligencia Artificial puede ayudar. Si la compañía pudiera estar razonablemente segura de que una reserva se acabará cancelando, o de que una reserva no se va a cancelar, podría adaptarse de forma adecuada, y minimizar tanto los costes implicados y la pérdida de ingresos, como los efectos negativos en su imagen de marca.
Para este tipo de problemas hay varios modelos de Inteligencia Artificial, englobados dentro del concepto de clasificación, que se pueden testear, para finalmente adoptar el que ofrezca los mejores resultados. El objetivo de la aplicación de estos modelos suele ser doble: por un lado predecir lo mejor posible si una reserva se acabará cancelando y, por otro, determinar los factores (o variables) que más peso tienen a la hora de determinar si una reserva se va cancelar o no.
Cuando una persona efectúa una reserva (ya sea por Internet o presencialmente), se registran una serie de datos. Por ejemplo:
Fecha de la reserva
Fecha del vuelo
Antelación (tiempo entre la reserva y el vuelo)
Número de pasajeros
Número de adultos
Número de niños
Origen del viaje
Destino del viaje
Clase (turista o business)
Peticiones especiales (equipaje, tipo de comida, mascotas, niños de pecho, traslado desde el aeropuerto, etc…)
Número de peticiones especiales
Precio de la reserva
Esta información es lo que en Inteligencia Artificial se conoce como variables independientes (o features). Algunas de estas variables son numéricas (antelación, número de pasajeros, número de niños, número de peticiones especiales, precio de la reserva), otras son categóricas (origen, destino, clase, peticiones especiales…) y, dentro de las categóricas, algunas pueden ser binarias (sí o no, 1 o 0). Para tratar con las variables categóricas, simplemente se codifican también como ceros y unos. Por ejemplo, si una reserva es de clase turista, se le asigna un uno (1), por lo que la clase business será cero (0).
Cada una de las reservas es lo que se denomina observación. Para cada observación, y cuando el dato se registra, se puede añadir una variable más: la etiqueta que dice si la reserva se ha cancelado o no. Es un dato binario, sí o no (1 o 0), y se conoce como la variable dependiente, o variable objetivo, porque es la que queremos predecir.
Cuando se tiene un número suficiente de observaciones, todas etiquetadas de esa forma, es posible “entrenar” un modelo de clasificación que distinga (o separe) las clases de reservas (las canceladas de las no canceladas). En el momento en el que se produce una nueva reserva, el modelo entrenado con los datos recogidos debería ser capaz de clasificarla, y decir si se va a cancelar o no, con cierto grado de acierto. Esto es lo que se denomina entrenamiento supervisado, puesto que se cuenta con la variable respuesta (la etiqueta que dice sí o no, 1 o 0, según se haya producido o no la cancelación), y se pueden comparar las predicciones del modelo con los datos reales. A la hora de entrenar modelos, el objetivo es minimizar los errores o, desde el otro punto de vista, que el porcentaje de aciertos sea el mayor posible.
Términos como Inteligencia Artificial, Machine Learning, y conceptos como el de “entrenar” son armas de doble filo. Por un lado, tienen un efecto mediático innegable. Mueven ríos de tinta, hacen creer a la gente que las máquinas piensan (un efecto potenciado por aplicaciones que ahora mismo están online (que ciertamente ofrecen ejemplos espectaculares), y le dan al tema un aura de ciencia ficción y de gran complejidad. Por otro lado, eso mismo genera reticencias.
El responsable de la gestión de reservas de una compañía aérea no puede confiar en la ciencia ficción y, aunque tenga claro que no lo es, esa sensación de complejidad que alimentan los medios, aunque sea inconscientemente, hace que se plantee seriamente la adopción de soluciones como ésta.
Ni las máquinas piensan (lamento ser un aguafiestas), ni la aplicación de estos modelos es prohibitiva en términos de complejidad técnica y de costes. Lo que hace falta es encontrar a la gente adecuada que sepa del tema y sea capaz de poner el modelo en producción.
Cuando se entrena un modelo de clasificación, y por comentar solo los tipos de acercamientos más comunes, o se busca determinar la influencia de las variables a la hora de clasificar (Regresión Logística), o se busca una forma de separar las clases desde un punto de vista geométrico (Árboles de Decisión, Support Vector Machine, Random Forest, etc…), o se asignan las clases según los vecinos más cercanos (K-Nearest Neighbor).
Hay muchos más, entre los que se cuentan las Redes Neuronales, por ejemplo, pero creemos que explicando los mencionados podremos dar una idea bastante aceptable del concepto.
Regresión Logística
En el primer caso, la regresión logística, el algoritmo de entrenamiento calcula el peso de las variables (el número por el que hay que multiplicar cada variable para otorgarle fuerza en el modelo). Para explicarlo de forma sencilla, sirve este ejemplo: imaginemos que la antelación condiciona mucho si una reserva se va a cancelar o no. A más días de antelación, más probabilidad de cancelar. El algoritmo entonces encontrará un número positivo por el que multiplicar antelación.
Si por el contrario, el número de niños también tiene peso, pero a más niños menos probabilidad de cancelar, el algoritmo encontrará un número negativo para multiplicar el número de niños. Mientras más dependa la variable respuesta de la variable predictora, mayor será el valor absoluto del número por el que se multiplica la variable predictora en cuestión. Si los pesos encontrados por el algoritmo son, por ejemplo 2,6 para antelación y -1,9 para el número de niños, la probabilidad de cancelación dependerá de la siguiente expresión de base:
2,6 * antelación – 1,9 * número de niños
Esta “expresión de base” dibuja una línea que separa las clases:
Esta idea se aplica de la misma forma a más de dos variables (pero entonces es más difícil de representar gráficamente). Si una variable no tiene peso, o su peso es muy pequeño (no sirve para determinar si la reserva se va a cancelar o no), el valor absoluto del número por el que se multiplica será cercano a cero.
El algoritmo que busca estos pesos no es mágico, se basa en reglas estadísticas muy conocidas, y muy viejas. Por si alguien está interesado, diremos aquí que los pesos que se dan a las variables son los que maximizan la probabilidad de ver una distribución como la que tienen los datos que han servido para entrenar el modelo (es lo que se conoce como maximum likelihood), y es un tema muy bien documentado.
Solo un apunte más: hemos dicho “expresión de base” porque el cálculo que hemos puesto de ejemplo se utiliza en una ecuación adecuada para calcular probabilidades. Tampoco vamos a entrar en detalles aquí, simplemente basta con decir que la expresión 2,6 * antelación – 1,9 * número de niños se manipula matemáticamente para obtener un valor entre cero y uno. Cero sería la probabilidad nula (la reserva no se va cancelar) y uno la certeza absoluta (la reserva se va a cancelar).
Por defecto, si el resultado de la ecuación es superior a 0,5, el modelo etiqueta a la nueva reserva con un 1. Si es inferior a 0,5, el modelo etiqueta a la nueva reserva con un 0. Es este etiquetado de la nueva observación, la reserva que se acaba de hacer, lo que en la literatura se denomina predicción. El modelo predice que… no es más que la etiqueta que el modelo le ha puesto a la nueva reserva, aplicando la ecuación que se ha encontrado antes.
Intuitivamente, podemos decir que mientras más lejos esté la observación de la línea que separa las clases, más probabilidad (entre cero y uno) tiene de pertenecer a una clase u otra. Si el punto cae justo en la línea, la probabilidad de pertenecer a una clase u otra es del 50%.
Se puede alterar el criterio del 0,5, para potenciar un resultado u otro, pero de eso hablaremos más adelante.
La ventaja de la regresión logística es que como le da un peso a las variables, y ese peso es positivo o negativo según el tipo de relación con la variable dependiente, es muy fácil de explicar, y permite detectar los factores con más influencia.
Es el tipo de modelo que no solo “predice”, si no que además sirve para recomendar cosas del tipo: “si consigues limitar el tiempo de antelación con el que se hacen las reservas, disminuirán en un tanto por ciento las cancelaciones (siempre que el resto de variables se mantengan constantes)”.
Esto suena muy bien, pero la regresión logística tiene sus desventajas. Para empezar presupone que la relación entre variables es lineal, y otras cosas relacionadas con la distribución de los datos. Lamentablemente, el mundo no suele ser lineal, y la distribución de los datos es la que es. Ahora bien, si el modelo arroja resultados aceptables, es muy útil.
Otro enfoque, que exige menos suposiciones sobre la naturaleza de las cosas, es el que podemos llamar como geométrico. En estos casos no se trata de encontrar un peso para cada variable, que permita dibujar la línea que separa las clases, sino de hallar directamente un separador de clases (líneas, planos, o hiperplanos si trabajamos con más de tres dimensiones), basado en la disposición de las observaciones en el espacio.
Árboles de Decisión y Random Forest
¿Qué es un árbol de decisión? Un árbol de decisión es un algoritmo recursivo, que separa las clases buscando reducir el desorden. En el dibujo superior los rectángulos son nodos, las flechas son condiciones de decisión y los círculos son las hojas del árbol, en las que se reparten las clases sin posibilidad de seguir dividiéndolas (si no se dice lo contrario, todas las observaciones de una hoja pertenecerán a una clase o a la otra).
El nodo raíz, el primero, es la variable que mejor ordena las clases en el sentido de que al separarlas por ese criterio, los grupos resultantes son lo más puros posibles (en uno hay más observaciones de una clase, y en el otro hay más observaciones de la otra).
En el caso de las reservas, supongamos que la clase que mejor divide las observaciones es antelación, y supongamos también que que a partir de 90 días de antelación (unos tres meses), las observaciones se dividen mayoritariamente en entre canceladas y no canceladas. El árbol utilizará entonces antelación como nodo raíz, y trazará una línea perpendicular al eje correspondiente en punto de los 90 días.
En visualización de árbol, esto sería así:
Hacia la derecha, hemos llegado a una hoja. Prácticamente todas las observaciones pertenecen a la clase positiva (reserva cancelada).
Hacia la izquierda aún podemos hacer algo más. Supongamos que la siguiente variable que mejor ordena las clases (recordemos, la que genera divisiones más puras), es el número de niños.
Según el gráfico con la posición de los puntos en el espacio, a partir de 4 niños la mayoría de las reservas pertenecen a la clase 0 (no canceladas). El modelo trazará otra línea, esta vez perpendicular al eje correspondiente al número de niños:
En visualización de árbol, el resultado es el siguiente:
Esto se lee de la siguiente manera: si la antelación es superior a 90 días (hacia la derecha), las reservas se cancelan. Si la antelación es menor a 90 días (hacia la izquierda), entonces la decisión depende del número de niños. Si son menos de 4 (derecha), la reserva se cancela. Si son más de 4 (izquierda), la reserva no se cancela. Evidentemente, se trata de una simplificación para explicar el modelo y su interpretación.
Esto se extiende fácilmente a más variables. El principio es el mismo, y la ventaja del diagrama de árbol es que permite visualizar más de tres dimensiones. Si añadimos variables, van apareciendo nodos.
Según el tipo de árbol que se genere, los colores también significan algo. Si la clase positiva es la azul, y la negativa la verde, un nodo azulado significa que la clase mayoritaria dentro de él es positiva. Si es verde, entonces la clase mayoritaria es la negativa. El tono depende de la proporción. Un nodo con una proporción muy alta de una clase tendrá un tono más oscuro.
La clasificación no tiene porqué ser perfecta. Si nos fijamos en el gráfico de ejemplo, algunas observaciones positivas se quedan al lado de las negativas, y viceversa. Según como se configure el árbol, incluso en las hojas puede haber clases distintas, siempre en proporción mayor una que otra, y la clase se asigna según la que sea mayoritaria.
Todo esto hace de los árboles de decisión modelos muy potentes. No sólo son fáciles de generar, si no que además permiten determinar las variables más importantes, y asignar probabilidades a las etiquetas. La probabilidad de que una reserva se cancele es la proporción de reservas canceladas en la hoja correspondiente.
Si en una hoja tengo 10 observaciones y 8 de ellas se han cancelado y 2 no, la probabilidad de cancelación de una reserva que se asigne a esa hoja será del 80%.
De nuevo, es necesario insistir en que no hay magia detrás de esto… sólo matemáticas. Como se ha dicho, el modelo es recursivo y va seleccionando las variables por orden, empezando por la que mejor separa las clases, y siguiendo por la siguiente que mejor lo hace una vez efectuada la primera división, y así sucesivamente ¿Cómo encuentra las variables? Bueno, diremos que usando algo de teoría de la información y los conceptos de entropía y ganancia de información. Intuitivamente, lo que hace el modelo ya lo hemos dicho: selecciona las variables según su capacidad para ir organizando las cosas. Cada división debe contribuir a separar las clases de la mejor manera posible.
¿Qué es Random Forest?
Random Forest es una ampliación del concepto de árboles de decisión. El principio es exactamente el mismo. La diferencia radica en que en este caso, se cogen muestras aleatorias del conjunto de datos de entrenamiento, y se entrenan varios árboles de decisión seleccionando también aleatoriamente las variables predictoras. Los resultados de cada uno de los árboles generados se ponderan, y la observación se asigna a la clase más votada.
La ventaja de este modelo es que suele tener mejores resultados que un árbol de decisión simple. La desventaja es que perdemos interpretabilidad. Ya no podemos dibujar el árbol (pero sí determinar la importancia de las variables).
Support Vector Machines (SVM)
En este caso el concepto de separación de las clases en el espacio se lleva al límite, por decirlo de alguna manera. Aquí no hay pesos como la regresión logística, ni valores a partir de los cuales se separa una clase, como en los árboles de decisión. Simplemente, se trata de encontrar la línea, el plano o el hiperplano que mejor separa las clases, maximizando el margen que hay entre una clase y otra.
La ventaja de estos modelos es que, si es necesario, son capaces de clasificar las observaciones aun cuando su separación no es lineal o plana. Para ello, usan un truco que supone añadir dimensiones a los datos. Vamos a explicarlo de forma intuitiva, y de nuevo con la ayuda de ejemplos de hasta dos dimensiones, para poder dibujarlo (la base de este ejemplo la he obtenido del material de un curso de Machine Learning del MIT, que recomiendo a todos los que quieran empezar a recorrer este camino).
Supongamos que estamos trabajando en una sola dimensión (solo tenemos el dato de antelación). Si los puntos azules pertenecen a una clase, y los rojos a otra, no existe ninguna línea capaz de separar ambas clases:
Pero si se añade una dimensión adicional, y se juega un poco con las variables predictoras (por ejemplo, se multiplican por sí mismas), entonces la cosa cambia:
Un inciso sobre support vector machines
Por si no lo hemos aclarado, cuando hablamos de dimensiones simplemente hablamos del número de variables predictoras. El espacio que generan, por ejemplo, antelación y número de niños tienedos dimensiones (es bidimensional)… Es decir, lo que vemos en el colegio cuando hacemos gráficas cartesianas.
Si añadimos una variable más, por ejemplo, el precio total de la reserva, estamos operando en tres dimensiones (ya es más difícil de graficar).
Si añadimos otra variable, como la clase, entonces estamos en 4 dimensiones y ya no podemos dibujar ejemplos, pero las matemáticas que hay detrás son las mismas.
Cuando se habla de planos e hiperplanos parece que la cosa se complica, pero no es para tanto. Un espacio bidimensional se puede separar con una línea, como en el ejemplo de puntos rojos y azules. Un espacio tridimensional se puede separar con un plano. En el gráfico siguiente los puntos rojos están debajo del plano, y los azules encima. En más dimensiones la idea es la misma, y los planos se llaman hiperplanos.
Aclarado este punto, podemos seguir con la explicación de los modelos basados en SVM.
En este caso, como decíamos, se trata de encontrar la manera de separar las clases lo mejor posible, buscando maximizar el margen entre ellas. En dos dimensiones, la línea que pase entre los puntos, y que tenga mayores márgenes será la que separe las clases. En tres dimensiones, será el plano con mayores márgenes, y en más de tres… pues será el hiperplano que tenga mayores márgenes.
Los puntos que están por encima de la línea se asignan a una clase, y los que están por debajo a otra. Según se quiera ser más estricto o no, se permite o no que los puntos de una clase que caigan en lado “incorrecto” de la línea se sigan asignando a la clase que les toca, si están dentro del margen. El nombre de Support Vector Machine viene de que el modelo busca la línea y sus márgenes tomando como referencia sólo los puntos que están más cercanos entre sí y que pertenecen a clases distintas. En el gráfico anterior, son los tres puntos por los que pasan las líneas punteadas. Esos tres puntos del ejemplo son los vectores importantes. El resto no influyen. Para encontrar esas líneas, el modelo va midiendo la distancia entre los puntos hasta que encuentra la configuración óptima.
A veces, el problema para entender estos modelos es que no se tiene claro qué quiere decir que un punto esté por encima o por debajo de una línea (o de un plano). Vamos a simplificarlo, porque los modelos operan con matrices, y con notación vectorial, pero en el fondo el problema es el mismo, escrito de otra manera.
Si tenemos una línea definida por la ecuación y = ax + b, y la reescribimos como
ax + b – y = 0, encontraremos todos los puntos que pertenecen a esa línea. En otras palabras, esa es la condición que cumplen todos los puntos por lo que pasa la línea.
Con esta notación, es fácil ver que si un punto definido por x e y da un resultado mayor que cero, es que está encima de la línea, y si da un resultado menor que cero, es que está por debajo. El mismo concepto se puede extender a planos e hiperplanos.
La desventaja de estos modelos, aun cuando arrojen mejores resultados según qué casos, es que se pierde toda la interpretabilidad. Aquí lo que tenemos es un resultado: esta reserva es de la clase 1, y esta otra es de la clase 0, punto. El modelo no sirve para detectar factores importantes, ni para hacer recomendaciones del tipo “toca esta variable y conseguirás disminuir las cancelaciones”. Si el objetivo es dar un resultado sin más, y que ese resultado sea lo más acertado posible, entonces este tipo de modelos son los adecuados. Pero si queremos entender el mundo, y conocer la relación entre variables, entonces tenemos que confiar en modelos quizá menos exactos, pero más interpretables. A menudo, se usan los dos enfoques… Se entrenan modelos capaces de dar información sobre la importancia de las variables, y modelos que arrojan resultados muy buenos pero que no son transparentes (black boxes).
De nuevo, aquí no hay magia ni pensamiento, solo matemáticas y potencia de cálculo. Lo que hemos estado explicando es posible porque los ordenadores pueden hacer miles de operaciones en segundos. Esto es importante: la teoría que hay detrás de la mayoría de los modelos de Machine Learning es muy antigua. El boom de la Inteligencia Artificial no viene del desarrollo de conceptos matemáticos y estadísticos nuevos, si no la explosión en materia de disponibilidad de datos y capacidad computacional. Incluso las Redes Neuronales, que son lo más avanzado ahora, operan con sistemas similares a los que hemos visto, pero en capas, pasando los resultados de una capa a otra.
K-Nearest Neighbors (KNN)
Para terminar el repaso de los principales modelos de clasificación, veremos brevemente cómo operan los algoritmos basados en la vecindad o la similaridad de las observaciones.
¿Qué es K-Nearest Neighbors? KNN es un modelo que calcula la distancia entre todas observaciones, y asigna las clases según los vecinos más cercanos.
Es importante aclarar que existen otros tipos de modelos, pero con lo visto hasta ahora creemos que ya es suficiente como para tener una idea global, y sirve para demostrar que se pueden adoptar varios enfoques distintos para solucionar la misma clase de problemas. Muy frecuentemente, no sabemos exactamente qué modelo será el que mejor funcione con los datos disponibles, por lo que tener varias alternativas es una ventaja indiscutible.
El punto rojo es una observación a la que se le debe asignar una clase. El modelo calcula la distancia entre entre todos los puntos, y según esa distancia y el número de vecinos estipulado (esto es un parámetro que se decide antes de entrenar el modelo), asigna la clase según la mayoría de las observaciones cercanas. En el caso del ejemplo, el punto rojo sería clasificado como positivo.
Si aumentamos el número de de vecinos, la “decisión” del modelo puede cambiar:
En este caso, hay más vecinos de la clase negativa.
Para calcular la distancia, el modelo puede usar varios criterios, pero el más común es la distancia euclidiana (la que se estudia en el colegio con el nombre de Teorema de Pitágoras).
Este modelo es con diferencia el más fácil de entender a nivel conceptual. Las matemáticas implicadas son muy sencillas, y no se basan en reglas estadísticas, ni en teoría de la información, ni en complicadas estimaciones de márgenes aunque, eso sí, tira de máquina porque tiene que calcular la distancia entre todos los pares de puntos.
Criterios de evaluación de modelos
Hemos repasado hasta ahora varios modelos de clasificación, usando como ejemplo la cancelación de reservas. No podemos terminar sin explicar cómo se evalúan los modelos, es decir, cómo se determina si se desempeñan bien o mal con respecto al problema que estamos tratando, y cuál de todos da los mejores resultados.
Para esto, se usa una matriz de confusión. Una matriz de confusión nos muestra los resultados del modelo de la siguiente manera:
Precisión es el porcentaje de observaciones que se predicen como positivas, y que realmente son positivas.
TP / (TP + FP)
Recall (o Sensitivity) es el porcentaje de observaciones que se predicen como positivas, sobre el total de observaciones positivas.
TP / (TP + FN)
Nota: en Machine Learning, la clase positiva suele ser la de interés. El término “positivo” no tiene un sentido cualitativo. No es bueno ni malo. Es la clase que se marca con 1. Por ejemplo, si nos interesan las cancelaciones de reservas, la clase positiva es la de las reservas canceladas. Si nos interesa detectar tumores malignos, la clase positiva es la de las observaciones etiquetadas como “tumor maligno = 1”. Si queremos predecir si un empleado está contento, la clase positiva son los empleados contentos.
Siempre hay que sacrificar una cosa u otra. Un modelo con alta precisión sacrifica sensibilidad (recall), y un modelo con alta sensibilidad sacrifica precisión.
Dependiendo de la naturaleza del problema, nos puede interesar que el modelo sea preciso (la mayoría de lo que se predice como positivo es realmente positivo, aunque se nos escapen algunos positivos), o que sea sensible (el modelo es capaz de clasificar como positivo la mayoría de los casos que son realmente positivos), aunque eso suponga tener más falsos positivos.
Todo depende del “coste del error”. En los casos en los que un falso positivo tiene menos coste que un falso negativo, entonces tenemos que potenciar la sensibilidad del modelo (recall).
En los casos en los que un falso positivo tiene más coste que un falso negativo, entonces tenemos que potenciar la precisión del modelo.
F1 – score: cuando el coste del error es equivalente, entonces debemos desarrollar un modelo balanceado. En ese caso, la métrica más adecuada es F1 – score (la media armónica entre recall y precisión). Mientras mayor sea el F1 – score, mejor.
Accuracy: es el porcentaje de observaciones que se han clasificado correctamente.
TP + TN / (TP + TN + FP + FN)
Es una métrica afectada por el balance de las observaciones. Por ejemplo, si la clase positiva es el 10%, un modelo que predice siempre la clase negativa tendría un accuracy del 90%, pero sería un modelo inútil. Accuracy solo es una buena medida del desempeño de un modelo de clasificación cuando las clases tienen tamaños comparables.
Ejemplo de un caso en el que el modelo debe ser sensible
Un modelo para determinar si un paciente tiene cáncer o no (siendo “tener cáncer” la clase positiva) debe ser muy sensible (recall), puesto que el coste de un falso positivo es mucho menor que el de un falso negativo. Si el modelo dice “tiene cáncer” cuando en realidad la persona no lo tiene (falso positivo), se aplicará el protocolo y se iniciará un tratamiento. El coste es un susto, y quizá algo de dinero para la Seguridad Social, hasta que se determine que en realidad no hay cáncer.
Pero si el modelo predice “no tiene cáncer” cuando la persona realmente tiene cáncer (falso negativo), el coste del error puede ser la vida de la persona.
Ejemplo de un caso en el que el modelo debe ser preciso
Un modelo para predecir si un fondo de inversión es bueno o no, debería ser muy preciso. Es decir, el porcentaje de lo que se predice como bueno (clase positiva), y es realmente bueno, debe ser muy alto. De lo contrario, podríamos invertir el dinero en un fondo malo y perderlo. En este caso, el coste de decir “este fondo es bueno”, cuando en realidad es malo (falso positivo), es mucho mayor que el de un falso negativo (este fondo es malo, aunque en realidad sea bueno). Nos estamos perdiendo algún fondo bueno, es verdad, pero disminuimos el riesgo de perder dinero (este ejemplo también proviene del material del curso del MIT mencionado anteriormente).
Ejemplo de un caso en el que el modelo debe balancear precisión y sensibilidad
Este caso de estudio en concreto puede ser ejemplo de un modelo balanceado. Si el modelo genera muchos falsos positivos el hotel revenderá habitaciones reservadas que al final no se cancelan, perjudicando al cliente, y la percepción de la calidad del servicio entre los usuarios. Si por el contrario genera muchos falsos negativos, el hotel sufrirá una merma en sus ingresos al no tomar medidas para disminuir las consecuencias de una cancelación. Para los modelos que deben balancear sensibilidad y precisión, la métrica adecuada es F1 – score.
Con esto hemos repasado los principales conceptos relacionados con los modelos de clasificación, y cómo pueden ayudar a gestionar el problema de la cancelación de reservas. Es importante destacar que ésta es sólo una de sus posibles aplicaciones. Tal y como se ha puesto de manifiesto en los ejemplos anteriores, estos modelos se pueden utilizar en medicina, marketing, decisiones de negocio e inversión, etc.
Tealium es un ecosistema de productos que en su conjunto componen el Tealium Customer Data Hub o la Customer Data Platform, Tealium CDP; ambos términos son igualmente utilizados para referirse a una infraestructura encargada de recoger, procesar, enriquecer y activar los datos provenientes de prácticamente cualquier fuente de datos.
Novedades en Tealium
Estamos viendo como Tealium está incluyendo, por pequeñas que sean, nuevas funcionalidades y mejoras cada vez más rápido, así que vamos a echar un vistazo a las novedades de este noviembre, que encontraréis en la comunidad de Tealium, donde publican la mayoría de novedades, pero también hay muchísima información en la Tealium Documentation, donde se detallan muchos temas como Tealium GDPR, Tealium cookies, Tealium Functions y Tealium Web Companion (como el resto de aplicaciones de la extensión Tealium Tools). Los puntos a comentar pertenecen a Tealium iQ y Tealium AudienceStream.
Tealium y el cliente
En el lado cliente tenemos una actualización de la etiqueta de AT Internet Piano Analytics, que mejora la carga asíncrona, añade nuevas funcionalidades de depuración y hace una limpieza de las categorías de mapeo de variables.
Tealium entre el cliente y el servidor
Algo entre el cliente y el servidor es la actualización de la Tealium Collect tag, que nos permite enviar información a los productos del lado servidor, como EventStream. Esta incluye varias nuevas opciones en la sección de configuración, con las que puedes escoger por separado qué tipos de datos quieres enviar al servidor: cookies, LocalStorage, SessionStorage, parámetros de la URL, variables UDO, y valores meta, lo cual nos ayudará en reducir el tamaño de la petición a enviar y en construir una implementación más limpia.
En resumen, con un par de funcionalidades, tags y conectores nuevas, y algún fix, no estamos ante una release que marque un antes y un después, pero sí nos asegura que Tealium sigue mejorando y ampliando con Tealium IQ, como sus productos server-side.
Por último, me gustaría aprovechar el estar comentando estas novedades para recomendar a cualquier persona interesada en mejorar el ecosistema Tealium y tenga alguna idea, el enviar una sugerencia a través de su nuevo portal.