En esta página se presentan los recorridos de datos tabulares con AutoML. Para conocer las principales diferencias entre AutoML y el entrenamiento personalizado, consulta Elegir un método de entrenamiento.
Casos prácticos de datos tabulares
Imagina que trabajas en el departamento de marketing de un comercio digital. Tú y tu equipo estáis creando un programa de correo personalizado basado en los buyer personas. Ya has creado las buyer personas y los correos de marketing están listos. Ahora tienes que crear un sistema que clasifique a los clientes en cada buyer persona en función de sus preferencias de compra y su comportamiento de gasto, incluso cuando sean clientes nuevos. Para maximizar la interacción con los clientes, también quieres predecir sus hábitos de gasto para optimizar el momento en el que les envías los correos.
Como eres un comercio digital, tienes datos sobre tus clientes y las compras que han hecho. ¿Y los clientes nuevos? Con los métodos tradicionales, se pueden calcular estos valores para los clientes actuales con historiales de compra largos, pero no se obtienen buenos resultados con los clientes que tienen pocos datos históricos. ¿Y si pudieras crear un sistema para predecir estos valores y aumentar la velocidad a la que ofreces programas de marketing personalizados a todos tus clientes?
Afortunadamente, el aprendizaje automático y Vertex AI están en una posición idónea para resolver estos problemas.
En esta guía se explica cómo funciona Vertex AI con los conjuntos de datos y los modelos de AutoML, y se muestran los tipos de problemas que Vertex AI puede resolver.
¿Cómo funciona Vertex AI?
Vertex AI aplica el aprendizaje automático supervisado para conseguir el resultado deseado. Los detalles del algoritmo y los métodos de entrenamiento cambian en función del tipo de datos y del caso práctico. Hay muchas subcategorías diferentes de aprendizaje automático que resuelven problemas distintos y funcionan con diferentes restricciones.
Entrenas un modelo de aprendizaje automático con datos de ejemplo. Vertex AI usa datos tabulares (estructurados) para entrenar un modelo de aprendizaje automático que haga inferencias sobre datos nuevos. Una columna de tu conjunto de datos, llamada objetivo, es lo que tu modelo aprenderá a predecir. Algunas de las otras columnas de datos son entradas (denominadas "características") de las que el modelo aprenderá patrones. Puedes usar las mismas características de entrada para crear varios tipos de modelos con solo cambiar la columna de destino y las opciones de entrenamiento. En el ejemplo de marketing por correo electrónico, esto significa que puedes crear modelos con las mismas funciones de entrada, pero con diferentes inferencias de destino. Un modelo podría predecir el perfil de un cliente (un objetivo categórico), otro podría predecir su gasto mensual (un objetivo numérico) y otro podría pronosticar la demanda diaria de tus productos durante los próximos tres meses (una serie de objetivos numéricos).
Flujo de trabajo de Vertex AI
Vertex AI usa un flujo de trabajo de aprendizaje automático estándar:
- Recopila tus datos: determina los datos que necesitas para entrenar y probar tu modelo en función del resultado que quieras conseguir.
- Prepara tus datos: asegúrate de que tengan el formato y las etiquetas adecuados.
- Entrenamiento: define los parámetros y crea tu modelo.
- Evaluar: revisa las métricas del modelo.
- Despliega y predice: haz que tu modelo esté disponible para usarlo.
Antes de empezar a recoger datos, piensa en el problema que quieres resolver. Esto determina los requisitos de datos.
Preparación de datos
Evaluar tu caso práctico
Empieza por el problema: ¿qué quieres conseguir?
¿Qué tipo de datos tiene la columna de destino? ¿A cuántos datos tienes acceso? En función de tus respuestas, Vertex AI crea el modelo necesario para resolver tu caso práctico:
- Los modelos de clasificación binaria predicen un resultado binario (una de las dos clases). Usa este tipo de modelo para preguntas que se responden con sí o no. Por ejemplo, puede crear un modelo de clasificación binaria para predecir si un cliente comprará una suscripción. Por lo general, un problema de clasificación binaria requiere menos datos que otros tipos de modelos.
- Los modelos de clasificación de varias clases predicen una clase entre tres o más clases discretas. Usa este tipo de modelo para la categorización. Por ejemplo, si eres un comercio, puedes crear un modelo de clasificación multiclase para segmentar a los clientes en diferentes perfiles.
- Los modelos de regresión predicen un valor continuo. Por ejemplo, si eres un comercio, puedes crear un modelo de regresión para predecir cuánto gastará un cliente el mes que viene.
- Los modelos de previsión predicen una secuencia de valores. Por ejemplo, como comerciante, puede que quiera predecir la demanda diaria de sus productos durante los próximos tres meses para poder almacenar las existencias de productos de forma adecuada con antelación.
La previsión de datos tabulares se diferencia de la clasificación y la regresión en dos aspectos clave:
En la clasificación y la regresión, el valor previsto del objetivo solo depende de los valores de las columnas de características de la misma fila. En la previsión, los valores predichos también dependen de los valores de contexto del objetivo y de las características.
En los problemas de regresión y clasificación, la salida es un valor. En los problemas de previsión, la salida es una secuencia de valores.
Recopila tus datos
Una vez que hayas definido tu caso práctico, recoge los datos que te permitan crear el modelo que quieras.
Una vez que hayas definido tu caso práctico, tendrás que recoger datos para entrenar tu modelo.
La obtención y la preparación de datos son pasos fundamentales para crear un modelo de aprendizaje automático.
Los datos que tengas disponibles determinarán el tipo de problemas que puedes resolver. ¿Cuántos datos tienes disponibles? ¿Los datos son relevantes para las preguntas que quieres responder? Cuando recoja sus datos, tenga en cuenta los siguientes aspectos clave.
Selecciona las funciones pertinentes
Una función es un atributo de entrada que se usa para entrenar un modelo. Las funciones son la forma en que tu modelo identifica patrones para hacer inferencias, por lo que deben ser relevantes para tu problema. Por ejemplo, para crear un modelo que prediga si una transacción con tarjeta de crédito es fraudulenta o no, tendrás que crear un conjunto de datos que contenga detalles de la transacción, como el comprador, el vendedor, el importe, la fecha y la hora, y los artículos comprados. Otras funciones útiles podrían ser la información histórica sobre el comprador y el vendedor, y la frecuencia con la que el artículo comprado ha estado implicado en fraudes. ¿Qué otras funciones pueden ser relevantes?
Consideremos el caso práctico de marketing por correo electrónico en el sector retail que hemos visto en la introducción. Estas son algunas de las columnas de características que puedes necesitar:
- Lista de artículos comprados (incluidas las marcas, las categorías, los precios y los descuentos)
- Número de artículos comprados (último día, semana, mes o año)
- Suma del dinero gastado (último día, semana, mes o año)
- Número total de unidades vendidas de cada artículo cada día
- De cada artículo, el total en stock cada día
- Si vas a lanzar una promoción para un día concreto
- Perfil demográfico conocido del comprador
Incluir suficientes datos
En general, cuantos más ejemplos de entrenamiento tengas, mejores serán los resultados. La cantidad de datos de ejemplo necesarios también aumenta en función de la complejidad del problema que quieras resolver. No necesitarás tantos datos para obtener un modelo de clasificación binaria preciso en comparación con un modelo de varias clases, ya que es menos complicado predecir una clase a partir de dos que a partir de muchas.
No hay una fórmula perfecta, pero sí unos mínimos recomendados de datos de ejemplo:
- Problema de clasificación: 50 filas x el número de funciones
- Problema de previsión:
- 5000 filas x el número de características
- 10 valores únicos en la columna del identificador de la serie temporal x el número de características
- Problema de regresión: 200 veces el número de funciones
Capturar variación
Tu conjunto de datos debe reflejar la diversidad del problema. Cuantos más ejemplos diversos vea un modelo durante el entrenamiento, más fácilmente podrá generalizar a ejemplos nuevos o menos comunes. Imagina que tu modelo de comercio se ha entrenado solo con datos de compra del invierno. ¿Podría predecir correctamente las preferencias de ropa de verano o los comportamientos de compra?
Preparar los datos
Una vez que hayas identificado los datos disponibles, debes asegurarte de que estén listos para el entrenamiento.
Si los datos están sesgados o contienen valores que faltan o son erróneos, esto afectará a la calidad del modelo. Antes de empezar a entrenar tu modelo, ten en cuenta lo siguiente.
Más información
Evitar las fugas de datos y la desviación entre el entrenamiento y el servicio
La fuga de datos se produce cuando usas funciones de entrada durante el entrenamiento que "filtran" información sobre el objetivo que intentas predecir, que no está disponible cuando se usa el modelo. Esto se puede detectar cuando se incluye como una de las funciones de entrada una función que está muy correlacionada con la columna de destino. Por ejemplo, si estás creando un modelo para predecir si un cliente se suscribirá en el próximo mes y una de las funciones de entrada es un pago de suscripción futuro de ese cliente. Esto puede dar lugar a un buen rendimiento del modelo durante las pruebas, pero no cuando se implementa en producción, ya que la información de pago de la suscripción futura no está disponible en el momento de la publicación.
La desviación entre el entrenamiento y el servicio se produce cuando las funciones de entrada que se usan durante el entrenamiento son diferentes de las que se proporcionan al modelo durante el servicio, lo que provoca que la calidad del modelo en producción sea deficiente. Por ejemplo, crear un modelo para predecir las temperaturas por horas, pero entrenarlo con datos que solo contengan temperaturas semanales. Otro ejemplo: siempre se proporcionan las calificaciones de un alumno en los datos de entrenamiento al predecir si abandonará los estudios, pero no se proporciona esta información en el momento de la publicación.
Es importante que conozcas tus datos de entrenamiento para evitar fugas de datos y sesgos entre el entrenamiento y el servicio:
- Antes de usar cualquier dato, asegúrate de saber qué significa y si debes usarlo como una función.
- Consulta la correlación en la pestaña Entrenar. Las correlaciones altas deben marcarse para su revisión.
- Desfase entre el entrenamiento y el servicio: asegúrate de proporcionar al modelo solo las funciones de entrada que estén disponibles en el mismo formato en el momento del servicio.
Limpiar los datos que faltan, que están incompletos o que son incoherentes
Es habitual que falten valores o que sean imprecisos en los datos de ejemplo. Dedica tiempo a revisar y, si es posible, mejorar la calidad de tus datos antes de usarlos para el entrenamiento. Cuantos más valores falten, menos útiles serán los datos para entrenar un modelo de aprendizaje automático.
- Compruebe si faltan valores en sus datos y corríjalos si es posible. Si la columna se ha configurado para aceptar valores nulos, deje el valor en blanco. Vertex AI puede gestionar los valores que faltan, pero es más probable que obtengas resultados óptimos si todos los valores están disponibles.
- Para las previsiones, comprueba que el intervalo entre las filas de entrenamiento sea constante. Vertex AI puede imputar los valores que faltan, pero es más probable que obtengas resultados óptimos si todas las filas están disponibles.
- Limpia tus datos corrigiendo o eliminando errores o ruido. Unifica tus datos: Revisa la ortografía, las abreviaturas y el formato.
Analizar los datos después de importarlos
Vertex AI ofrece una vista general de tu conjunto de datos después de importarlo. Revisa el conjunto de datos importado para asegurarte de que cada columna tiene el tipo de variable correcto. Vertex AI detectará automáticamente el tipo de variable en función de los valores de las columnas, pero es mejor que revises cada una. También debe revisar si se pueden incluir valores nulos en cada columna, lo que determina si una columna puede tener valores que faltan o valores nulos.
Entrenar
Una vez que hayas importado el conjunto de datos, el siguiente paso es entrenar un modelo. Vertex AI generará un modelo de aprendizaje automático fiable con los valores predeterminados de entrenamiento, pero es posible que quieras ajustar algunos de los parámetros en función de tu caso práctico.
Intenta seleccionar tantas columnas de características como sea posible para el entrenamiento, pero revisa cada una de ellas para asegurarte de que es adecuada para el entrenamiento. Ten en cuenta lo siguiente al seleccionar funciones:
- No seleccione columnas de características que generen ruido, como columnas de identificadores asignados aleatoriamente con un valor único para cada fila.
- Asegúrese de que entiende cada columna de características y sus valores.
- Si vas a crear varios modelos a partir de un conjunto de datos, elimina las columnas de destino que no formen parte del problema de inferencia actual.
- Recuerda los principios de equidad: ¿estás entrenando tu modelo con una función que podría dar lugar a toma de decisiones sesgada o injusta para grupos marginados?
Cómo usa Vertex AI tu conjunto de datos
Tu conjunto de datos se dividirá en conjuntos de entrenamiento, validación y prueba. La división predeterminada que aplica Vertex AI depende del tipo de modelo que estés entrenando. También puedes especificar las divisiones (divisiones manuales) si es necesario. Para obtener más información, consulta Acerca de las divisiones de datos para los modelos de AutoML.
Conjunto de entrenamiento
La gran mayoría de los datos deben estar en el conjunto de entrenamiento. Estos son los datos que "ve" tu modelo
durante el entrenamiento: se usan para aprender los parámetros del modelo, es decir, los pesos de las
conexiones entre los nodos de la red neuronal.
Conjunto de validación
El conjunto de validación, a veces también llamado conjunto de desarrollo, también se usa durante el proceso de entrenamiento.
Después de que el framework de aprendizaje del modelo incorpore los datos de entrenamiento durante cada iteración del proceso de entrenamiento, usa el rendimiento del modelo en el conjunto de datos de validación para ajustar los hiperparámetros del modelo, que son variables que especifican la estructura del modelo. Si has intentado usar el conjunto de entrenamiento para ajustar los hiperparámetros, es muy probable que el modelo se centre demasiado en los datos de entrenamiento y tenga dificultades para generalizar los ejemplos que no coincidan exactamente con ellos.
Si usas un conjunto de datos algo novedoso para ajustar la estructura del modelo, este se generalizará mejor.
Conjunto de prueba
El conjunto de pruebas no participa en el proceso de entrenamiento. Una vez que el modelo haya completado el entrenamiento, Vertex AI usará el conjunto de prueba como un reto completamente nuevo para el modelo.
El rendimiento de tu modelo en el conjunto de prueba te dará una idea bastante precisa de cómo se comportará tu modelo con datos reales.
Evalúa, prueba y despliega tu modelo
Evaluar modelo
Una vez que se haya entrenado el modelo, recibirás un resumen de su rendimiento. Las métricas de evaluación del modelo se basan en el rendimiento del modelo en una parte de su conjunto de datos (el conjunto de datos de prueba). Hay un par de métricas y conceptos clave que debes tener en cuenta para determinar si tu modelo está listo para usarse con datos reales.
Métricas de clasificación
Umbral de puntuación
Imagina un modelo de aprendizaje automático que predice si un cliente comprará una chaqueta el año que viene. ¿Con qué certeza debe contar el modelo para predecir que un cliente comprará una chaqueta? En los modelos de clasificación, a cada inferencia se le asigna una puntuación de fiabilidad, que es una evaluación numérica de la certeza del modelo de que la clase predicha es correcta. El umbral de puntuación es el número que determina cuándo se convierte una puntuación en una decisión afirmativa o negativa. Es decir, el valor en el que tu modelo dice "sí, esta puntuación de confianza es lo suficientemente alta como para concluir que este cliente comprará un abrigo el año que viene".
Si el umbral de puntuación es bajo, el modelo correrá el riesgo de clasificar erróneamente los datos. Por ese motivo, el umbral de puntuación debe basarse en un caso práctico concreto.
Resultados de inferencia
Después de aplicar el umbral de puntuación, las inferencias que haga tu modelo se incluirán en una de las cuatro categorías. Para entender estas categorías, volvamos a imaginar un modelo de clasificación binaria de chaquetas. En este ejemplo, la clase positiva (lo que el modelo intenta predecir) es que el cliente comprará una chaqueta el año que viene.
- Verdadero positivo: el modelo predice correctamente la clase positiva. El modelo ha predicho correctamente que un cliente ha comprado una chaqueta.
- Falso positivo: el modelo predice incorrectamente la clase positiva. El modelo ha predicho que un cliente ha comprado una chaqueta, pero no es así.
- Negativo verdadero: el modelo predice correctamente la clase negativa. El modelo ha predicho correctamente que un cliente no ha comprado una chaqueta.
- Falso negativo: el modelo predice incorrectamente una clase negativa. El modelo predijo que un cliente no compró una chaqueta, pero sí lo hizo.
Precisión y recuperación
Las métricas de precisión y recuerdo te ayudan a saber cómo de bien capta la información tu modelo y qué deja fuera. Consulta más información sobre la precisión y la recuperación.
- La precisión es la fracción de las inferencias positivas que han sido correctas. De todas las inferencias de compra de un cliente, ¿qué fracción fueron compras reales?
- Recall es la fracción de filas con esta etiqueta que el modelo predijo correctamente. De todas las compras de clientes que se podrían haber identificado, ¿qué fracción se identificó?
En función de tu caso práctico, puede que tengas que optimizar la precisión o la recuperación.
Otras métricas de clasificación
- AUC PR: el área por debajo de la curva de precisión-recuperación (PR). Este valor va de cero a uno; cuanto mayor es el valor, más calidad tiene el modelo.
- AUC ROC: el área por debajo de la curva de característica operativa del receptor (ROC). Va de cero a uno; cuanto mayor es el valor, más calidad tiene el modelo.
- Precisión: la fracción de las inferencias de clasificación correctas que produjo el modelo.
- Pérdida logarítmica: la entropía cruzada entre las inferencias del modelo y los valores objetivo. Va de cero a infinito; cuanto menor es el valor, más calidad tiene el modelo.
- Puntuación F1: media armónica de la precisión y la recuperación. La métrica F1 resulta útil si buscas un equilibrio entre la precisión y la recuperación, así como si las clases están distribuidas de manera desigual.
Métricas de previsión y regresión
Una vez que se ha creado el modelo, Vertex AI proporciona una serie de métricas estándar que puedes consultar. No hay una respuesta perfecta sobre cómo evaluar tu modelo. Ten en cuenta las métricas de evaluación en el contexto de tu tipo de problema y lo que quieres conseguir con tu modelo. En la siguiente lista se ofrece una descripción general de algunas métricas que puede proporcionar Vertex AI.
Error absoluto medio (MAE)
El MAE es la diferencia absoluta media entre los valores objetivo y los predichos. Mide la magnitud media de los errores, es decir, la diferencia entre un valor objetivo y un valor predicho, en un conjunto de inferencias. Además, como usa valores absolutos, el error absoluto medio no tiene en cuenta la dirección de la relación ni indica si el rendimiento es inferior o superior al esperado. Al evaluar el MAE, cuanto menor sea el valor, mayor será la calidad del modelo (un 0 representa un predictor perfecto).
Raíz cuadrada del error cuadrático medio (RMSE)
El RMSE es la raíz cuadrada de la diferencia cuadrática media entre los valores objetivo y los predichos. El RMSE es más sensible a los valores atípicos que el MAE, por lo que, si te preocupan los errores grandes, el RMSE puede ser una métrica más útil para evaluar. Al igual que el error absoluto medio, cuanto menor sea el valor, mayor será la calidad del modelo (un 0 representa un predictor perfecto).
Error logarítmico cuadrático medio de la raíz (RMSLE)
El RMSLE es el RMSE a escala logarítmica. RMSLE es más sensible a los errores relativos que a los absolutos y se centra más en el rendimiento inferior al esperado que en el superior.
Cuantil observado (solo para previsiones)
Para un cuantil objetivo determinado, el cuantil observado muestra la fracción real de valores observados por debajo de los valores de inferencia del cuantil especificado. El cuantil observado muestra lo lejos o cerca que está el modelo del cuantil objetivo. Cuanto menor sea la diferencia entre los dos valores, mayor será la calidad del modelo.
Pérdida de pinball escalada (solo para previsiones)
Mide la calidad de un modelo en un cuantil objetivo determinado. Cuanto menor sea el número, mayor será la calidad del modelo. Puedes comparar la métrica de pérdida de pinball escalada en diferentes cuantiles para determinar la precisión relativa de tu modelo entre esos cuantiles.
Prueba tu modelo
La evaluación de las métricas de tu modelo es la forma principal de determinar si está listo para implementarse, pero también puedes probarlo con datos nuevos. Sube datos nuevos para ver si las inferencias del modelo se ajustan a tus expectativas. En función de las métricas de evaluación o de las pruebas con datos nuevos, es posible que tengas que seguir mejorando el rendimiento de tu modelo.
Desplegar un modelo
Cuando estés satisfecho con el rendimiento del modelo, será el momento de usarlo. Quizá se trate de un uso a escala de producción o de una solicitud de inferencia única. En función de tu caso práctico, puedes usar tu modelo de diferentes formas.
Inferencia por lotes
La inferencia por lotes es útil para hacer muchas solicitudes de inferencia a la vez. La inferencia por lotes es asíncrona, lo que significa que el modelo esperará hasta que procese todas las solicitudes de inferencia antes de devolver un archivo CSV o una tabla de BigQuery con los valores de inferencia.
Inferencia online
Despliega tu modelo para que esté disponible para las solicitudes de inferencia mediante una API REST. La inferencia online es síncrona (en tiempo real), lo que significa que devolverá una inferencia rápidamente, pero solo acepta una solicitud de inferencia por llamada a la API. La inferencia online es útil si tu modelo forma parte de una aplicación y algunas partes de tu sistema dependen de que la inferencia se realice rápidamente.
Limpieza
Para evitar cargos no deseados, anula el despliegue de tu modelo cuando no lo estés usando.
Cuando termines de usar el modelo, elimina los recursos que hayas creado para evitar que se te cobren cargos innecesarios en tu cuenta.
- Datos de imagen de tipo "Hello": eliminar los recursos utilizados del proyecto
- Datos tabulares de tipo "Hello": eliminar los recursos utilizados del proyecto