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.