Categorías
Uncategorized

Cómo medir el valor de cada interacción

Modelo de Atribución

María Mestres

14/03/2023

Uno de los problemas más estudiados en el campo de la analítica web es la atribución de una compra a los distintos canales. Con el marketing digital se puede medir el camino que realizan las personas desde su primera visita hasta la compra, en el cual pueden pasar días, semanas o incluso meses hasta que las personas se decidan y, finalmente, realicen una compra.

Aquí entra en juego el modelo de atribución por canal. La atribución multicanal analiza todo el recorrido que realiza una persona hasta la compra y atribuye valor a todos los «touchpoints» o «interacciones» a lo largo de ese recorrido.

Existen diferentes tipos de modelo de atribución, ya que hay que tener en cuenta que se puede asignar más peso a un fragmento del path o a otro. Más valor a los primeros touchpoints equivaldría a darle más importancia a la captación del usuario; sin embargo, más peso en las últimas interacciones puede reflejar aquellos canales con los que el usuario decidió la compra. Los modelos más clásicos para la atribución de canales son:

  • Last Click: un modelo que atribuye el 100% del valor de conversión al último canal con el que realiza la compra.
  • First Click: un modelo que atribuye el 100% de la conversión al primer canal con el que interactuó su cliente.
  • Linear: el modelo que otorga la misma atribución a cada interacción que tu cliente tiene con tu empresa en el camino hacia la conversión.
  • Time Decay: un modelo que otorga valor adicional a los puntos de contacto más cercanos al punto de conversión en términos de tiempo.

Inicialmente, el modelo de atribución Data Driven de Google utilizaba cadenas de Markov para calcular la importancia de los canales en una compra. En pocas palabras, los modelos de Markov utilizan el efecto de eliminación, es decir, para el caso particular del modelo de atribución, se calcula la pérdida de compras/revenue si elimináramos cada canal. Por tanto, esto nos ayuda a saber en qué porcentaje cada canal ha aportado a las compras.

Datarmony ha querido ir un paso más allá y darle un nuevo enfoque a la atribución por canal. Para ello, en lugar de hacer uso del enfoque anterior basado únicamente en touchpoints de canales y con la base algorítmica de Markov, se ha desarrollado un sistema nuevo con mayor énfasis en el comportamiento del comprador. El resultado se basará en el cambio de probabilidad de compra antes de interactuar con ese canal y posteriormente.

Haciendo uso de la información obtenida mediante Google Analytics se estudia la influencia de cada una de las sesiones de los usuarios y cómo estas afectan a la probabilidad de obtener una compra en el período a atribuir. Con esta información, se reparte la aportación al éxito de compra entre cada uno de los canales que han participado en las sesiones estudiadas.

Entrenamos un modelo de clasificación mediante un árbol de decisión que nos permite predecir la probabilidad de compra tras cada sesión, combinado con teoría de juegos, obtenemos la atribución por canal.

Las principales diferencias entre el modelo actual y el de Markov se presentan a continuación:

Para entender a nivel particular la nueva atribución simularemos algunos usuarios y veremos el resultado de aplicar el modelo Data Driven.

Se definen seis usuarios que tienen ocho sesiones cada uno, en todos se ha producido una única compra de 134€, pero tienen diferentes comportamientos a nivel de sesión por las diferentes variables indicadas anteriormente. A parte, se ha analizado la influencia de cambiar tanto la cantidad de sesiones con cierto canal y su posición, poniendo el foco en dos canales de los que generan más curiosidad sobre el modelo: Email y Social – Brand – Paid.

El resumen a nivel de comportamiento de estos canales consiste en:

Por ejemplo, el id 333 tiene muchas sesiones de Social, pero no son finalizadoras; por contra el 88888888 sí que convierte mediante Social o el 999999999 convierte en Social, pero solo tiene una sesión en ese canal. El mismo enfoque que en Social se le ha dado para el canal Email con los usuarios 4444, 55555 y 7777777.

Tras aplicar el modelo de atribución obtenemos la siguiente tabla donde w indica el peso de que se le ha atribuido a cada canal para cada id, según su comportamiento (cada fila suma 1 que es el total a atribuir a nivel proporcional):

Los usuarios 4444 y 55555 tienen un peso parecido en Email, que varía básicamente porqué el último es finalizador, en cambio en el último se reduce drásticamente debido que Email es solo finalizador.  Fijémonos igualmente que aunque el usuario 4444 tiene la mitad de las sesiones de Email, no le atribuye el 50% del peso.

Algo parecido ocurre cuando cambiamos a los usuarios con mayor presencia de Social, sus números se parecen a los proporciones del caso de email, aunque son ligeramente superiores por casuísticas del modelo.

Si agrupamos la información de cada uno de los id’s, podríamos obtener de la atribución del revenue para cada canal. Un ejemplo de los resultados de este análisis podría ser el siguiente:

En este caso, podemos comprobar que el canal que más revenue aporta es Email seguido de SEO, Paid Search y Direct. Además, se observan ciertas diferencias entre Last Click y Data Driven. Por ejemplo, a SEO se le aporta menos revenue con el modelo Data Driven que con el modelo Last Click, esto se puede deber a que suele ser un canal finalizador pero, en general, no aporta tanto a la conversión.

Para el ejemplo que acabamos de mostrar se ha de tener en cuenta que se han usado registros simulados con el mismo comportamiento a nivel de sesión (tiempo de duración, hits…). Esto se ha hecho para poder comparar su correcto funcionamiento respecto a Markov; si además, añadimos las variables de la sesión entonces podemos ver cómo estás influyen cambiando la aportación de cada canal.

La gracia del modelo data driven que ofrece Datarmony se encuentra en esto, ya no solo se basa en la posición, si no que también se basa en la sesión. Este último punto es realmente importante teniendo en cuenta las restricciones a nivel de cookies que dificultan el seguimiento completo de los usuarios.

Categorías
Uncategorized

Novedades de BigQuery

Novedades de BigQuery

Daniel González

17/02/2023

En este post recopilamos y resumimos las principales novedades de BigQuery, recientemente anunciadas por Google.

El esfuerzo que la compañía está volcando en el desarrollo y mejora de sus servicios Cloud es una clara señal sobre la apuesta estratégica del gigante tecnológico, ahora que la publicidad online se ha visto seriamente amenazada por el fenómeno “cookieless”, y que su buscador ha visto el surgimiento de lo que parece ser un serio competidor.

Las nuevas capacidades y servicios de BigQuery están pensados para facilitar la migración al entorno Cloud de Google, y a hacer atractiva dicha migración mediante una oferta de valor que haga que el esfuerzo valga la pena.

Migration Service

“El servicio de migración a BigQuery brinda herramientas que incluyen evaluación, traducción, transferencia de datos y validación, para una transición sin problemas y sin riesgos.

Además, a través de la adquisición de Compiler Works el año pasado, Google ha ampliado el soporte a 12 fuentes adicionales, incluyendo Oracle, Ateza, Vertica y Snowflake”.
(Google Cloud Tech, 2022b)

Uno de los aspectos más difíciles en cualquier migración es la modernización de la lógica de negocios de legado, como las consultas SQL, los scripts y los procedimientos almacenados. BigQuery Migration Service proporciona traducciones rápidas, correctas y legibles por humanos del código de legado, sin necesidad de dependencias en tiempo de ejecución. Además, estas traducciones se pueden ejecutar en modo por lotes o de manera puntual directamente desde el espacio de trabajo SQL.

Connected Sheets

Connected Sheets es una herramienta que permite analizar, visualizar y compartir datos de BigQuery directamente desde su hoja de cálculo.

Ya no es necesario preocuparse por ejecutar consultas manualmente. La herramienta crea y ejecuta las consultas, ya sea bajo demanda o según un horario previamente definido. Los resultados de las consultas se guardan en la hoja de cálculo para su análisis y compartición. Además, tanto si se desea comenzar los análisis directamente en Sheets como si se prefiere escribir una consulta en el editor SQL de Google Cloud, Connected Sheets ofrece la flexibilidad que necesita.

Anteriormente, Connected Sheets solo estaba disponible para los usuarios del plan de precios de Google Workspace Enterprise, pero Google ha anunciado que ahora está disponible para todos los usuarios de Sheets, incluido el plan personal gratuito.

Log Analytics

BigQuery está expandiendo su alcance más allá de los casos de uso de almacenamiento de datos tradicionales. Uno de estos nuevos casos de uso es el análisis de registros, donde se ingieren datos de dispositivos o aplicaciones y se llevan a BigQuery para su análisis.

Para mejorar el soporte a estos tipos de aplicaciones, Google ha agregado tres nuevas capacidades que ya están disponibles para el público en general. La primera es un nuevo tipo de datos JSON nativo que admite la descomposición de documentos semiestructurados en un formato de almacenamiento de columnas. Esto ofrece un mejor rendimiento y una mejor compresión de almacenamiento en comparación con el uso de un tipo de cadena estándar.

En segundo lugar, los índices de búsqueda permiten ejecutar consultas «aguja en un pajar» en los datos de BigQuery. Estos índices aceleran la velocidad con la que se pueden identificar las filas que contienen patrones específicos de texto. Hay un pequeño costo por el almacenamiento del índice, pero la mejora en rendimiento es notable.

Por último, la API de escritura de almacenamiento de BigQuery permite al motor de altas prestaciones manejar millones de operaciones por segundo sin degradar el rendimiento de las consultas.

Estas nuevas características pueden usarse de forma independiente, pero juntas se combinan para construir soluciones poderosas de análisis de registrar.

Dataform

Dataform es un servicio revolucionario para la creación de tuberías de transformación de datos escalables.

Dataform utiliza un lenguaje basado en SQL llamado SQL X para definir y administrar las tuberías de datos, lo que le permite preparar y transformar los datos con una gran eficiencia para su uso en inteligencia empresarial y análisis. Además, también es compatible con la preparación de datos para el aprendizaje automático y para sistemas secundarios.

Para asegurar una colaboración efectiva y un seguimiento de las mejores prácticas en el desarrollo de software, Dataform trata las tuberías como código y las administra mediante versiones en repositorios Git, como GitHub o GitLab.

Google ha anunciado que Dataform está disponible en versión preliminar, y lo mejor de todo es que no hay ningún cargo adicional por el uso de Dataform, solo los costos de ejecución y almacenamiento de consultas en BigQuery.

Query Inspector

Bigquery ofrecía detalles sobre la ejecución de consultas a través de sus tablas de esquema de información, pero esta información a veces resultaba difícil de descifrar.

Por eso, Google ha lanzado en versión preview de Query Inspector, una nueva herramienta que brinda visualizaciones adicionales para depurar el rendimiento de las consultas, incluyendo un gráfico de ejecución de consultas.

Bigquery descompone la consulta en varios estadios, muchos de los cuales funcionan en paralelo, y el gráfico de consultas ayuda a comprender el flujo de datos a través de estos estadios y a identificar los cuellos de botella. Query Inspector también incluye un solo lugar para ver y comparar el rendimiento de las consultas, permitiéndote profundizar en acciones específicas.

En 2018, Bigquery fue el primer almacén de datos en la nube en ofrecer integración con aprendizaje automático. Bigquery ML permite entrenar, ejecutar y desplegar modelos de aprendizaje automático en Bigquery mediante consultas SQL estándar. Con Bigquery ML, no es necesario preocuparse por la gestión de la infraestructura de aprendizaje automático o la seguridad de los datos, ya que, al igual que el resto de Bigquery, es totalmente automatizado y sin servidor.

Google ha intgrado Bigquery ML en el registro de modelos de AI de Vertex. El registro de modelos es un repositorio central donde se pueden gestionar los ciclos de vida de los modelos de aprendizaje automático. Con solo unas pocas líneas de SQL, se pueden registrar los modelos de Bigquery ML en el registro de modelos para versionar, evaluar o desplegar para predecir en línea.

DataStream

El año pasado Google lanzó DataStream, un servicio de captura y replicación de cambios fácil de usar y sin servidores. Al integrar DataStream con BigQuery, ahora se puede analizar eventos comerciales en tiempo real desde sus sistemas operativos. DataStream replica automáticamente tanto el esquema como los datos de los registros de las bases de datos de origen en BigQuery. A partir de ahí, se puede ejecutar tuberías de transformación o utilizar características de BigQuery como vistas materializadas.

Google ha lanzado, en preestreno, una nueva integración incorporada entre DataStream y BigQuery. Con esta nueva integración, DataStream replica directamente en BigQuery a través de su interfaz de transmisión de altas prestaciones y no es necesario utilizar servicios adicionales. DataStream incluye soporte para Oracle y MySQL. Además han lanzado una vista previa para Postgres, incluyendo Amazon Aurora y el nuevo servicio de base de datos compatible con Postgres de Google, AlloyDB.

Object Tables

Aunque BigQuery se ha centrado hasta ahora en datos estructurados como enteros y cadenas, así como datos semi-estructurados como JSON, se dan cuenta de que hay una gran cantidad de insights que se pueden obtener de los datos no estructurados como imágenes, video, audio y texto. Por eso, están presentando la vista previa de las tablas de objetos de BigQuery.

Estas tablas proporcionan una representación tabular de los objetos en el almacenamiento de Google Cloud y permiten un acceso completo a SQL en los metadatos del objeto. También permite a los usuarios utilizar modelos de aprendizaje automático incorporados en BigQuery, y crear políticas de acceso fino para asegurar los datos del objeto de la misma manera que lo haría en otras tablas de BigQuery.

Con estas novedades y mejoras, BigQuery ayuda a los clientes a sacar el máximo provecho de sus datos, ya sea estructurados o no estructurados, para poder tomar decisiones informadas y mejorar su negocio. Con la integración de BigQuery ML, la posibilidad de versionar, evaluar y desplegar modelos de aprendizaje automático, los clientes pueden aprovechar al máximo el poder de la inteligencia artificial. Aparte, con DataStream, los clientes logran analizar eventos comerciales en tiempo real y con la nueva integración directa con BigQuery, pueden replicar sus datos de manera rápida y eficiente.

Las tablas de objetos de BigQuery también permiten a los clientes acceder a metadatos y utilizar modelos de aprendizaje automático para obtener insights valiosos de datos no estructurados

En resumen, BigQuery es un almacén de datos escalable, sin servidores y de bajo costo diseñado para la agilidad empresarial. Con su integración con BigQuery ML, la posibilidad de analizar datos en tiempo real con DataStream y la accesibilidad a datos no estructurados con tablas de objetos, BigQuery ayuda a los clientes a obtener insights valiosos de sus datos para mejorar su negocio. Con un enfoque en la apertura, la integración y la inteligencia, BigQuery es una herramienta clave en la transformación digital de las empresas.

Categorías
Uncategorized

Qué es MLOps | Definición y categorías principales

¿Qué es MLOps?

Marc Ortega

07/02/2023

Dentro de todo proceso de machine learning hay un concepto que en los últimos años ha ido cobrando más importancia y es esencial para el correcto flujo de cualquier solución, MLOps.

Machine learning operations (MLOps) o DevOps para el aprendizaje automático es el conjunto de mejoras prácticas para que los equipos ejecuten los modelos de manera eficiente y automatizada. Estos procesos garantizan que un modelo funcione correctamente en producción, se pueda escalar para una gran base de usuarios y funcione con precisión.

Las necesidades de un modelo en producción se podrían resumir de la siguiente manera:

Los datos sobre los que se aplica el modelo pueden escalar en volumen por situaciones ajenas a este y dejar de ser compatibles con el proceso de producción ideado.
Aquellos modelos que necesitan cambios en los parámetros que los definen necesitan de una metodología de seguimiento.
Monitorear el comportamiento y los resultados de un modelo nos asegura mantener su calidad y detectar la necesidad de nuevos entrenamientos.
Detectar cambios en la naturaleza de los datos para que el modelo aprenda de ellos a medida que cambian.
Debugar un modelo se puede convertir en una tarea compleja con un flujo mal definido. Además debemos asegurarnos de que los cambios no afecten al resto de procesos que se ejecutan en producción.
Prevenir errores en el código antes de subir a producción, así como mantener un repositorio de calidad que permita a otros miembros del equipo usar y entender el código desarrollado.

Categorías principales en MLOps

Entremos en mayor detalle sobre cada una de estas categorías:

  • Feature Engineering es un término que aplica al conjunto de técnicas para facilitar la automatización de flujos ETL y la extracción de atributos de las variables para mejorar resultados y eficiencia.
  • El seguimiento del modelo es básico para poder detectar cualquier cambio que pueda ocurrir en su comportamiento. Así como, detectar experimentos fallidos durante el entrenamiento de este. Un modelo de machine learning maduro es aquel que también puede capturar los  hiperparámetros (pasados ​​y actuales) y los KPI de calidad del sistema correspondientes.
  • La administración del flujo del proyecto permite entender y controlar el flujo de datos entero, desde que se reciben hasta su transformación y posterior uso. En ese proceso se registran acciones que deben cumplirse en cada paso y genera errores en caso de cumplirse.
  • La administración computacional tiene como objetivo gestionar óptimamente la escalabilidad de un proceso de machine learning. Algunos algoritmos requieren una gran cantidad de potencia computacional durante el entrenamiento y el reentrenamiento y poca durante la inferencia. Como a menudo estas dos tareas están conectadas por un circuito de control de retroalimentación, el sistema debe poder escalar hacia arriba y hacia abajo. A veces, se deben adjuntar recursos adicionales como GPU para el entrenamiento, mientras que no se requieren para la parte de inferencia. Los proveedores de nube pública abordan muy bien este problema ofreciendo escalado automático y balanceo de carga.
  • El modelado CI/CD es muy similar al CI/CD del área DevOps, pero incluyendo verificaciones adicionales antes de la implementación del modelo.CI hace referencia al concepto de integración continua y CD entrega en contínuo.  Estás metodologías imponen la automatización en la construcción, las pruebas y el despliegue de los modelos.
  • La detección de cambios en los datos tiene como objetivo monitorear las características de los datos entrantes y el comportamiento del sistema. Cuando las características de los datos entrantes se desvían del rango esperado, se debe generar una alerta adecuada para que se pueda solicitar el reentrenamiento del modelo (automática o manualmente). Si esto no ayuda, la alerta debe escalarse y el equipo de desarrollo debe analizar más a fondo el problema.

En Datarmony, lo que pretendemos con este artículo es hacer una introducción simple a las implicaciones y beneficios de aplicar metodologías propias de DevOps a entornos de modelado de datos.

Categorías
Uncategorized

Marketing Mix Modeling | Metodología y resultados

Marketing Mix Modeling

Maria Mestres

06/02/2023

Marketing Mix Modeling (MMM) es un método que ayuda a cuantificar el impacto de la inversión en publicidad en las ventas. El propósito de usar MMM es comprender cuánto contribuye cada canal de inversión y cuánto gastar en cada uno.

Imaginemos que en un solo mes hemos sacado un anuncio publicitario de nuestra marca, otro pequeño comercial por Spotify y, además, hemos invertido en publicidad por redes sociales. En efecto, hemos obtenido un aumento en las ventas pero no podemos saber cuál ha sido el canal que ha tenido más repercusión y por cuál es por el que tenemos que apostar para futuras campañas.

Para llevar a cabo un análisis de media mix modeling, se recopilan datos sobre el rendimiento de la empresa, así como datos sobre las actividades de marketing que se han llevado a cabo. Estos datos se analizan utilizando técnicas estadísticas para determinar qué elementos tienen el mayor impacto en el rendimiento de la empresa.

MMM model ayuda a determinar la eficacia de cada inversión en términos del retorno de la inversión. En otras palabras, el canal con un mayor retorno de la inversión (ROI) es más efectivo como medio que otro con un ROI más bajo. MMM model utiliza un análisis de regresión con algunos parámetros adicionales que se deben tener en cuenta para este tipo de análisis. En este artículo, comentaremos varios conceptos asociados con la comprensión de MMM.

Metodología Marketing Mix Modeling

El método que se utiliza para calcular el retorno de la inversión de cada canal es una regresión multivariable. La variable que queremos predecir son las ventas a partir de las inversiones por cada uno de los canales. Se forma una ecuación entre las variables dependientes y los predictores. Esta ecuación podría ser lineal o no lineal según la relación entre la variable dependiente y varias inversiones de marketing.

Una vez hayamos conseguido una buena precisión en el modelo, podemos utilizar los estimadores  para saber qué canal tuvo más impacto en las ventas. Básicamente, los estimadores nos indican cuánto aumentan las ventas si aumentamos en una unidad la inversión de cada canal.

Al modelo se le puede incluir varias variables que pueden ayudar a predecir el comportamiento de las ventas:

  • Precio: Si vamos a trabajar con un producto en concreto, puede que el precio de este varíe y puede que afecte a las ventas totales.
  • Distribución: Podemos trabajar con datos offline. Número de tiendas, existencias de ese producto, etc.
  • Estacionalidad: Es muy probable que las ventas de nuestro negocio tengan un ciclo. Por ejemplo, seguramente los helados presenten un gran volumen de ventas todos los veranos, pero en invierno se vea un decrecimiento en las ventas. Añadir a nuestro modelo variables temporales suele tener sentido. Incluso se puede llegar a trabajar con modelos mixtos entre series temporales y variables exógenas.

Además del modelo base hay que tener en cuenta varios factores que se aplican a este tipo de análisis:

  • Saturación: Estos modelos tienen una peculiaridad y es que suelen tener un crecimiento logarítmico, es decir, suele pasar que cuánto más inviertes en un canal, mayores ventas produce. Sin embargo, esto no suele ser lineal, llega un momento en que por mucho que se invierta, las ventas dejan de crecer. Por ello, se suele tener una gráfica como la siguiente:
  • Adstock: Otra cosa que debemos tener en cuenta es el funcionamiento de la inversión. Es lógico pensar que cuando se emite un anuncio puede tener un impacto al instante pero también a largo plazo. La idea es que, un anuncio visto hoy, sea recordado y se actúe en consecuencia en un momento posterior. Por ello, se utiliza la siguiente fórmula para calcular la inversión actual combinada con la inversión anterior:

Es decir, el adstock actual se calculará a partir de la inversión actual y un porcentaje del adstock anterior. Esta proporción se puede fijar con suficiente información del negocio o utilizando una regresión lineal para obtener el valor óptimo.

Resultados del Marketing Mix Modeling

Segmentación

Además de obtener el ROI para sacar conclusiones y tomar decisiones respecto al negocio, podemos jugar un poco más con los datos. Si se tienen segmentaciones de usuarios o canales, se pueden hacer estudios sobre las diferencias entre estos y personalizar las campañas.

Simulación

Una de las ventajas más claras de utilizar un análisis MMM model es utilizar los resultados de su análisis para optimizar la combinación de marketing para futuras campañas.

Para ello incluirá una simulación de «qué pasaría si». Al utilizar una regresión lineal con las variables explicativas como la inversión para cada medio publicitario, se pueden cambiar los valores para predecir qué sucederá si se realizan cambios en la combinación de marketing.

Por ejemplo, “qué pasa si” aumento un 5% la inversión en televisión. Si tenemos un modelo preciso, los datos se ajustarán a este caso y se podrán simular los resultados para los casos ficticios deseados.

En Datarmony publicamos con frecuencia posts sobre temáticas tan interesantes como esta, síguenos y no te pierdas las novedades.

Categorías
Uncategorized

Naive Bayes algoritmo, ejemplos, python | Significado y funcionamiento

Naive Bayes

Camila Larrosa

03/02/2023

En artículos anteriores vimos qué es Machine Learning y comenzamos a profundizar en su primer subgrupo: el aprendizaje supervisado. A partir de esta publicación sobre el modelo de Naive Bayes, comenzamos a profundizar en cada técnica de esta categoría de aprendizaje automático.

El modelo de Naive Bayes (algorithm) es una clase especial de algoritmo de clasificación fuertemente basado en estadísticas. Es uno de los modelos más tradicionales, y aún muy utilizado, tanto en el ámbito académico como en el mercado.

Quien investiga, trabaja con o estudia Machine Learning debe entender su concepto y su funcionamiento. Al ser simple y fácil de entender, el modelo de Naive Bayes también es una buena forma de iniciarse en el área, para profundizar más adelante con soluciones más robustas.

¿Qué es el algoritmo Naive Bayes?

El algoritmo «Naive Bayes» es un clasificador probabilístico basado en el «Teorema de Bayes», el modelo fue creado por el matemático inglés, Thomas Bayes (1701 – 1761), para tratar de probar la existencia de Dios.

El término “naive” (ingenuo en español) se refiere a la forma en que el algoritmo analiza las características de una base de datos: ignora la correlación entre las variables características (features).

Es decir, si una pelota está etiquetada como «Pelota de tenis», y si también se describe como «Amarillo fluorescente» y «Diámetro pequeño», el algoritmo no tendrá en cuenta la correlación entre estos factores. Esto se debe a que trata a cada uno de manera independiente.

Además, este modelo también asume que todas las variables características son igualmente importantes para el resultado. Y por tanto, en escenarios donde esto no ocurre, Naive Bayes deja de ser la opción ideal.

Otra característica a tener en cuenta a la hora de elegir el algoritmo Naive Bayes es que su rendimiento también es considerablemente bueno con problemas de clasificación de múltiples clases.

Teorema de Bayes

Para comprender mejor el modelo, intentemos entender la idea detrás del Teorema de Bayes.

Este teorema se basa en calcular la probabilidad de que ocurra un cierto evento ‘A’, dado que ya ha ocurrido otro evento anterior ‘B’, lo que se denomina probabilidad condicional.

Dónde:
P(B|A) : Probabilidad de que B suceda, dado que A sucedió;
P(A) : Probabilidad de que ocurra A;
P(B) : Probabilidad de que ocurra B.
Veamos un ejemplo del Teorema de Bayes en el diagnóstico de enfermedades:

Sabiendo que:

  • El resfriado provoca fiebre en el 50% de los casos;
  • La probabilidad previa de que un paciente haya tenido un resfriado es 1/50000;
  • La probabilidad previa de que un paciente haya tenido fiebre es 1/20

¿Cuál es la probabilidad de que un paciente diagnosticado con fiebre haya estado resfriado?

Es decir, la probabilidad de que el paciente haya estado resfriado previamente a la fiebre es del 0,02%.

¿Cómo funciona el algoritmo Naive Bayes?

Para entender cómo funciona el algoritmo de Naive Bayes, usemos un ejemplo más, volviendo al juego de tenis. De esta vez, debemos clasificar si los jugadores van a jugar o no con base en la previsión meteorológica.

Para ello, contamos con un conjunto de datos, con situaciones previas, mostrado en la Figura 2. Los datos contienen información sobre el tiempo (variable característica) y si hubo o no juego (variable objetivo).

Entonces, con esta información, responderemos ¿los jugadores jugarán al tenis cuando haga clima ensolarado?

También en la Figura 2 se listan los pasos que hay que realizar para utilizar el algoritmo Naive Bayes para solucionar problemas de clasificación como este.

Aplicando el paso 3 para responder a la pregunta:

Es decir, con este resultado, sabemos que hay un 65 % de posibilidades de que los jugadores jueguen al tenis con tiempo soleado.

En problemas reales, Naive Bayes utiliza un método similar para predecir la probabilidad de diferentes clases en función de varios atributos, clasificando según la probabilidad de clase más alta.

¿Cuándo usar Naive Bayes?

Uno de los problemas más clásicos para ilustrar la utilidad de Naive Bayes es el clasificador de spam, donde el algoritmo analiza los correos electrónicos e intenta evaluar si son spam o no. Comenzar con esta aplicación, tiene una razón, ya que este es un algoritmo de uso frecuente para problemas de procesamiento de lenguaje natural.

Además, también es muy utilizado en el campo de la salud, como en diagnósticos médicos, determinando si el paciente tiene o no una enfermedad.

También es posible encontrar versiones del algoritmo en sistemas de recomendación, como el filtrado colaborativo y otros. En este caso, el objetivo de Naive Bayes es predecir si a un usuario le gustará o no un determinado recurso, y así sugerirle algo que pueda interesarle.

O sea, Naive Bayes es un algoritmo con aplicaciones muy versátiles, debiendo ser utilizado en los casos en que las variables sean condicionalmente independientes. También es un algoritmo que presenta un óptimo desempeño clasificando categorías muy bien separadas y para datos con dimensiones altas, donde la complejidad del modelo es menos importante.

Implementación de Naives Bayes en Python

De forma muy sucinta y precisa, su aplicación en Python consiste en importar la librería necesaria, entrenar el modelo y realizar predicciones:

# Importar la libreria

from sklearn.naive_bayes import GaussianNB


# Entrenamiento del algoritmo

modelo_nb = GaussianNB()

modelo_nb.fit(x_entrenamiento, y_entrenamiento)


# Predicciones de algoritmos para el conjunto de datos de prueba

prediccion = modelo_nb.predict(x_prueba)

El resto del proceso, como el preprocesado de datos, la separación entre entrenamiento y prueba, y la evaluación del modelo, deben realizarse de forma análoga a otros modelos de Machine Learning.

En Datarmony trabajaremos muchos más posts como este, para que puedas conocer los conceptos y metodologías más interesantes.

Categorías
Uncategorized

Aprendizaje supervisado | Algoritmos, ejemplos

Aprendizaje Supervisado en Machine Learning

Camila Larrosa

02/02/2023

Bienvenidos a otro artículo de la serie Machine Learning realizado por nosotros en Datarmony, con el objetivo de compartir las matemáticas que se utilizan detrás del concepto de inteligencia artificial, en nuestro día a día como científicos de datos.

Después de hablar sobre el aprendizaje automático y saber que se puede clasificar en tres tipos de aprendizaje machine learning: aprendizaje supervisado, no supervisado y de refuerzo. En esta publicación profundizaremos en el primer grupo.

El aprendizaje supervisado es una tarea de aprendizaje automático donde el algoritmo aprende de datos con pares de ejemplos de entradas-salidas, es decir, el modelo aprende a realizar una tarea a partir de ejemplos etiquetados, que se le enseñan en la fase de entrenamiento.

Cuando se trata de aprendizaje supervisado, primero debemos recordar que el conjunto de datos utilizado para entrenar el algoritmo de Machine Learning estará compuesto por variables de características (también llamadas de features), que estarán rotuladas por una variable objetivo (o target).

En este enfoque, el modelo aprende a realizar una tarea a partir de ejemplos etiquetados, que se le enseñan en la fase de entrenamiento. Pero, ¿qué subcategoría de algoritmo elegir?

¿Algoritmos de Clasificación o algoritmos de regresión?

Los algoritmos de aprendizaje supervisado se sub categorizan en dos grupos: Clasificación y Regresión. La diferencia entre ellos está en el tipo de resultado que queremos que produzca la técnica de aprendizaje automático. Veamos la diferencia.

En la clasificación, el objetivo es identificar a qué categoría pertenece una determinada muestra del problema, entre un número limitado de categorías. Si un correo electrónico es SPAM o no; si el riesgo de otorgar crédito a un cliente es bajo, moderado o alto; si un mensaje tiene un sentimiento positivo, negativo o neutral; qué personajes de dibujos animados aparecen en una determinada imagen, etc.

A diferencia de la clasificación, el aprendizaje supervisado de regresión, la idea es predecir un valor numérico; o en otros términos: identificar una categoría en una escala continua. En este caso, el algoritmo aprende de los datos y los modela en una función para hacer predicciones. Este tipo de algoritmos se pueden utilizar, por ejemplo, para predecir el precio de un inmueble, el número de transacciones y el valor de compra que realizará un cliente en el próximo mes, calcular el vida útil de una máquina, cuántas uvas se recogerán en una cosecha, o cualquier otra cantidad cuantitativa.

Además, es importante señalar que lo que diferencia si un problema es del tipo clasificación o regresión, no es una simple distinción entre la predicción de un número, o una letra/palabra, ya que podemos, por ejemplo, predecir valores numéricos en la clasificación de problemas. Sin embargo, en estos casos, esta predicción significa siempre una categoría.

Es decir, en la clasificación, un número siempre significa una clase, que podrá ser reemplazada por cualquier letra, palabra o incluso por otro número, sin perjuicio de la comprensión de las predicciones. Incluso, en la práctica, es muy común utilizar la clasificación binaria con los números 0 y 1 para representar las clases.

Principales algoritmos de aprendizaje supervisado utilizados en la Clasificación y en la Regresión

Hay varias técnicas de Machine Learning que podemos utilizar en problemas de clasificación y de Regresión. Ejemplos de aprendizaje supervisado:

Clasificación: Naive Bayes, Máquinas de Vectores de Soporte (Support Vector Machines, SVM), Regresión Logística, Árboles de Decisión, Bosques Aleatorios y Redes Neuronales.

Regresión: Regresión Lineal, Regresión no Lineal, Máquinas de Vectores de Soporte (SVM), Árboles de Decisión, Bosques Aleatorios y Redes Neuronales.

Es posible que hayas notado que muchas de las técnicas no se limitan solo a la clasificación o solo a la regresión, algunas funcionan para ambos problemas.

Otro motivo de confusión frecuente, interesante de señalar, es la técnica de regresión logística. Por su nombre, nos lleva a pensar que se trata de una técnica de regresión, pero en realidad es una técnica utilizada únicamente para problemas de clasificación.

Consideraciones finales

Esperamos que después de este artículo no queden dudas sobre los tipos de aprendizaje supervisado, la diferencia entre técnicas de clasificación y regresión, y por qué elegir una o otra a la hora de resolver un problema de Machine Learning.

En los próximos artículos seguiremos hablando de las técnicas de aprendizaje supervisado, acercándonos técnica a técnica. Si quieres aprender, por ejemplo, cómo usar algoritmos de Árboles de decisión para problemas de clasificación o regresión, y cómo es su diferencia en la práctica, sigue leyendo nuestros posts.

Categorías
Uncategorized

Solución para conversiones duplicadas en GA4

Conversiones duplicadas en GA4

Vicente Peris

01/02/2023

Qué puede provocar que tengamos conversiones duplicadas

Existen distintas causas por las cuales se pueden generar conversiones duplicadas en nuestros informes de ecommerce y desde Datarmony queremos contarte cuáles son las más comunes:

  • Que al recargar la página se vuelva a lanzar la transacción.
  • Que desde un enlace del mail de confirmación se acceda a una página de resumen en la que se vuelva a lanzar el hit de transacción.
  • Compartir la página con alguien o añadirla a favoritos y al acceder de nuevo se lanza el hit de la transacción.

Comprobar si existen conversiones duplicadas

Para comprobar si en nuestros datos existen transacciones duplicadas, podemos crearnos un informe personalizado.

Para ello accedemos a la sección “explore” de nuestra interfaz de GA4 y creamos un informe seleccionando “Transaction ID” como dimensión y “Transactions” o “Purchase” como métrica, si existen identificadores de transacción con más de una transacción es que se están lanzando más de una vez.

Cómo solucionar algunas duplicidades

Cabe destacar que si implementamos la solución que se explica a continuación, habrá casos en los que no tendrá efecto. La solución parte de usar una cookie o el localStorage para almacenar las transacciones realizadas, si se accede con otro navegador u otro dispositivo estos datos no son accesibles.

Por ello, lo más recomendable es comentar el problema con el departamento de desarrollo que incluyó el código de la transacción y plantear una posible solución para evitar que el código salte cuando no debe.

Esta opción puede ser complicada de realizar por diferentes causas, en ese caso podemos aplicar la solución siguiente:

Guardar la transacción.

Para empezar debemos tener una variable que almacena el identificador de la transacción.
Este dato se recoge del dataLayer de la transacción.
Por lo tanto crearemos una variable de tipo dataLayer que recoja la información del dataLayer de GA4 ecommerce.transaction_id.

En el caso de que nuestro dataLayer siga con el formato de Universal Analytics, el dato estará en: ecommerce.purchase.actionField.id.

El siguiente paso será crear una etiqueta de tipo “Custom HTML” donde incluiremos el código que guarda el identificador de la transacción en el LocalStorage.

El código es el siguiente:

<script>
 if ({{DA. DL - ecommerce.transaction_id}}) {
	var transactionId = {{DA. DL - ecommerce.transaction_id}};
 	var transactions = localStorage.getItem('transactions');
	if (transactions) {
 		var trackedTransactions = transactions.split("|");
   		if (trackedTransactions.indexOf(transactionId)==-1) {         
          	 	    trackedTransactions.push(transactionId);
	                localStorage.setItem("transactions", trackedTransactions.join('|'));
        		}
	}else {
      		var trackedTransactions = [];
      		trackedTransactions.push(transactionId);
	            localStorage.setItem("transactions", trackedTransactions.join('|'));
		}
}
</script>

Para esta etiqueta no añadiremos un trigger porque se lanzará desde la etiqueta que lanza el ga4 event purchase.

Desde la sección “Tag sequencing” en “Advanced Settings” de la etiqueta de evento, indicaremos que queremos lanzar una etiqueta después del evento y seleccionaremos la etiqueta que acabamos de crear.

Esto se verá reflejado en la etiqueta “DA. Save Transaction”.

Verificar si existe la transacción.

Vamos a crear una variable de tipo Custom Javascript que compruebe si el identificador de transacción ya está almacenado en el LocalStorage JavaScript.

El código es el siguiente:

<script>
 if ({{DA. DL - ecommerce.transaction_id}}) {
	var transactionId = {{DA. DL - ecommerce.transaction_id}};
 	var transactions = localStorage.getItem('transactions');
	if (transactions) {
 		var trackedTransactions = transactions.split("|");
   		if (trackedTransactions.indexOf(transactionId)==-1) {         
          	 	    trackedTransactions.push(transactionId);
	                localStorage.setItem("transactions", trackedTransactions.join('|'));
        		}
	}else {
      		var trackedTransactions = [];
      		trackedTransactions.push(transactionId);
	            localStorage.setItem("transactions", trackedTransactions.join('|'));
		}
}
</script>

Para esta etiqueta no añadiremos un trigger porque se lanzará desde la etiqueta que lanza el ga4 event purchase.
Desde la sección “Tag sequencing” en “Advanced Settings” de la etiqueta de evento, indicaremos que queremos lanzar una etiqueta después del evento y seleccionaremos la etiqueta que acabamos de crear.

Esta excepción bloqueará el evento cuando exista la transacción en el LocalStorage.

Nota: Esta solución está basada en el post de Simo Ahava. para evitar transacciones duplicadas en Google Analytics Universal.

Suscríbete al blog de Datarmony.

Categorías
Uncategorized

Aprendizaje automático, qué es y cómo funciona

¿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.

Categorías
Uncategorized

Entrevista a ChatGPT, inteligencia artificial de OpenAI

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.

Imagen creada con IA y desde cero con las palabras “Datarmony entrevista a la Inteligencia artificial”, mediante https://www.craiyon.com/ 

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.

https://www.craiyon.com/ Datarmony entrevista a la Inteligencia artificial

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:

  1. ¿Cómo te definirías hoy?
  2. ChatGPT es un nombre bastante técnico ¿no te gustaría tener un nombre más humano como LaIA?
  3. ¿Cuáles son los logros más significativos que ha conseguido la inteligencia artificial en los últimos 12 meses?
  4. ¿Cuáles son los límites hoy de la inteligencia artificial y de ChatGPT?
  5. ¿Qué riesgos existen hoy con respecto a la inteligencia artificial?
  6. Si la inteligencia artificial va a ocuparse de muchos empleos ¿a qué se debería dedicar el ser humano?
  7. 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?
  8. ¿Cómo podemos controlar la IA si como humanos nos es difícil controlarnos?
  9. ¿Qué predicciones podrías hacer con respecto a la inteligencia artificial para los próximos 12 meses?
  10. ¿Me concederás otra entrevista de aquí a 12 meses?
  11. ¿Me puedes responder a la anterior pregunta con un tono humorístico?
  12. ¡¡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?

Categorías
Uncategorized

Métodos de clasificación | Predicción de la cancelación de reservas

Métodos de clasificación – Machine Learning

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

Jeremybeauchamp, CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0, via Wikimedia Commons

¿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 tiene dos 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.

Larhmam, CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0, via Wikimedia Commons

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.