Resumiendo de forma muy práctica, el ciclo de vida de machine learning puede dividirse en tres grandes fases: preparación de los datos, entrenamiento del modelo e implementación (inferencia).
De estas tres, la preparación de los datos suele ser la más crítica, ya que define directamente la calidad de los resultados obtenidos.
La preparación de datos, a su vez, incluye varias subetapas: obtención de los datos, limpieza y transformación. Como ocurre en cualquier sistema, si los datos de entrada son deficientes, la calidad del modelo resultante será, como mínimo, cuestionable.
Por ello, y como lo prometido es deuda, en esta segunda parte del artículo nos enfocaremos exclusivamente en el proceso de preparación de datos. Desarrollaremos un pequeño laboratorio práctico en el que trabajaremos un conjunto de datos que, más adelante, podría servir como insumo para entrenar un modelo de machine learning.
Desde la perspectiva del examen AWS Machine Learning Associate, se espera que el candidato sea capaz de seleccionar las herramientas adecuadas para la preparación de datos, así como demostrar familiaridad con servicios como SageMaker Data Wrangler y AWS Glue. Con ese objetivo, el ejercicio que presento a continuación es de carácter meramente académico y busca recorrer este proceso de forma guiada y estructurada.
Antes de poner manos a la obra, revisemos brevemente qué nos dice la teoría sobre el proceso de preparación de datos en AWS y las decisiones que debemos tomar.
a. Obtención de los datos
La selección de los datos es fundamental, así como la elección del repositorio de almacenamiento. Podemos trabajar con datos públicos —como lo haré en este laboratorio— o con datos propios de la organización.
La elección del almacenamiento dependerá de factores como:
- El volumen de datos
- La frecuencia de actualización
- Los servicios que se planea utilizar posteriormente
b. Limpieza de los datos
Para mejorar el entrenamiento de los modelos, es indispensable revisar y limpiar los datos según sea necesario. Por ejemplo, es común encontrar filas donde variables clave contienen valores nulos; en estos casos, puede ser conveniente eliminarlas.
Es importante aclarar que la limpieza debe realizarse con criterio: no se trata de reducir la muestra, sino de mejorar su calidad. Si una columna no aporta información relevante o puede inducir al modelo a conclusiones erróneas, es preferible descartarla.
Otro aspecto clave es la cardinalidad de las columnas. Las columnas de alta cardinalidad —aquellas con muchos valores únicos— pueden introducir complejidad innecesaria y aumentar el riesgo de overfitting, es decir, que el modelo memorice patrones en lugar de aprender relaciones generalizables.
En el caso de las cartas de colección, el nombre de la carta es un buen ejemplo de este dilema. Aunque el nombre puede estar asociado a personajes populares, es un valor prácticamente único. El modelo podría inferir incorrectamente que un personaje principal siempre implica un alto precio, cuando en realidad muchas cartas de ese mismo personaje tienen un valor muy bajo.
Esto provoca que el modelo memorice en lugar de aprender variables verdaderamente relevantes como la rareza o si la carta es considerada un hit por los coleccionistas.
c. Transformación de los datos
Finalmente, para mejorar el rendimiento del modelo, suele ser necesario transformar los datos. Esto puede implicar dividir columnas, combinarlas o cambiar su representación.
Recuerdo un dataset de características de automóviles en el que toda la información relevante estaba concentrada en una sola columna. En ese caso, tenía mucho más sentido transformar esa columna en atributos separados como número de puertas, tipo de combustible o tipo de vehículo, facilitando así el aprendizaje del modelo.
SageMaker AI y las herramientas recomendadas para Machine Learning en AWS
Desde el 3 de diciembre de 2024, Amazon SageMaker pasó a denominarse Amazon SageMaker AI. Más allá del cambio de nombre, el servicio se consolida como una plataforma totalmente gestionada que permite construir, entrenar y desplegar modelos de machine learning de forma eficiente, integrándose de manera nativa con el resto de servicios de AWS.
SageMaker AI no es una herramienta aislada, sino el núcleo de un ecosistema de servicios diseñado para cubrir todo el ciclo de vida de machine learning: desde la preparación de los datos hasta la inferencia en producción.
Esta visión integral es precisamente la que se evalúa en el examen AWS Machine Learning Associate, donde no solo se espera conocer los modelos, sino también cuándo y por qué utilizar cada herramienta.
El proceso de preparación de datos algunas recomendaciones
La preparación de los datos abarca los procesos de recopilación, preprocesamiento y organización de los mismos, y su propósito es que cuando se utilicen para entrenar un modelo estos ayuden a que el modelo aprenda de forma eficaz y correcta.
Tal y como comentamos previamente, este proceso implica limpiar (eliminar, cambiar, completar) datos y transformaciones, analizar valores atípicos y verificar qué hacer con ellos (outliners). En mi caso, mi muestra de datos tiene muchos outliners, pero así son las tarjetas: unas valen para el mercado $0.1 y otras $300.
Dependiendo de nuestros datos y situación, tenemos disponibles toda una gama de opciones, las cuales analizaremos a continuación.
AWS ofrece distintas capacidades dentro de SageMaker AI para la preparación de datos, pensadas para perfiles y necesidades diferentes. De forma práctica, estos escenarios pueden agruparse en tres casos de uso principales:
Caso de uso 1: Preparación visual y de bajo código
SageMaker Canvas con Data Wrangler ofrece una opción donde es posible explorar, limpiar y transformar datos tabulares sin necesidad de programar, utilizando transformaciones integradas y, en algunos casos, instrucciones en lenguaje natural asistidas por IA generativa.
Cuándo usarlo
- Exploración y limpieza de datasets pequeños o medianos
- Creación rápida de pipelines de preparación de datos
- Equipos con poca experiencia en Python o Spark
Consideraciones
- Menor flexibilidad para lógica de negocio compleja
- No es ideal si el equipo ya trabaja cómodamente con código
Caso de uso 2: Preparación basada en SQL y Python
Studio está orientado a usuarios con experiencia técnica que desean mayor control y flexibilidad. Sin entrar en el ecosistema Spark, se pueden ejecutar consultas SQL sobre fuentes como Amazon Redshift, Athena, Snowflake o S3, y posteriormente manipular los resultados usando Python y Pandas en notebooks.
Cuándo usarlo
- Datos almacenados en sistemas analíticos o data lakes
- Combinación de SQL exploratorio con transformaciones en Python
- Preparación de datos tabulares para modelos de ML
Consideraciones
- Limitado por la memoria de la instancia de SageMaker
- Diseñado principalmente para datos estructurados
Caso de uso 3: Preparación de datos a gran escala y sin servidor
EMR Serverless integrado con SageMaker Studio está dirigido a la preparación de datos distribuida. Permite ejecutar transformaciones a gran escala sobre grandes volúmenes de datos mediante frameworks como Apache Spark y Apache Hive, sin necesidad de gestionar clústeres.
Cuándo usarlo
- Grandes volúmenes de datos
- Necesidad de procesamiento distribuido
- Cargas de trabajo interactivas o de corta duración basadas en Spark
Consideraciones
- Curva de aprendizaje más alta
- Requiere control de costos en cargas prolongadas
- No sustituye EMR tradicional para procesos complejos o de larga duración
Manos a la obra: dataset y exploración inicial
Ahora sí, manos a la obra. Para este laboratorio recurrí a mi hijo, mi coleccionista de tarjetas favorito, y descargué un archivo de tamaño relativamente pequeño que contiene información histórica y de mercado sobre tarjetas coleccionables.
El dataset incluye atributos como precio histórico, precio de mercado, rareza, nombre, código y otras características relevantes de cada carta.
Una vez identificado el conjunto de datos, mi coleccionista estrella me ayudó a destacar cuáles son las características clave que suelen definir las cartas más valiosas: niveles de rareza, cartas hits y otros atributos especialmente apreciados por la comunidad. Con esta información como contexto, procedí a realizar una primera exploración del dataset.
Cabe mencionar que la fuente de datos se encuentra en formato CSV. Como recordarán del artículo anterior, este formato es fácil de leer, compartir y generar, pero no es el más eficiente para el entrenamiento de modelos de machine learning.
Tras la revisión inicial, observé que el conjunto de datos cuenta con pocas columnas y un número reducido de filas, lo cual lo convierte en un candidato ideal para realizar tareas de limpieza, exploración y transformación utilizando SageMaker Data Wrangler como herramienta principal.
Configuración inicial y conceptos clave
Si no has trabajado previamente con SageMaker AI o SageMaker Canvas, será necesario realizar una configuración inicial rápida. Para este laboratorio, la configuración de un solo usuario es suficiente.
Esta opción utiliza valores predeterminados y permite comenzar a trabajar tanto en SageMaker Studio como en Canvas sin configuraciones avanzadas.
Durante este proceso deberás crear un SageMaker Domain, que actúa como el contenedor lógico donde se organizan los perfiles de usuario, las aplicaciones y los recursos asociados.
Un dominio está compuesto principalmente por:
- Un volumen asociado de Amazon Elastic File System (Amazon EFS)
- Una lista de usuarios autorizados
- Configuraciones de seguridad, aplicaciones, políticas y una Amazon VPC
Primer paso: datos crudos
El dataset ha sido cargado previamente en Amazon S3, donde se manejará la data cruda.
Es importante destacar que el rol de IAM asociado al dominio de SageMaker debe contar con permisos de acceso a S3. De lo contrario, no será posible cargar los datos ni exportar los resultados generados durante el laboratorio.
Segundo paso: exploración de los datos con SageMaker Data Wrangler
Dado que nuestro dataset es de tamaño reducido y el objetivo es obtener insights iniciales, la herramienta más adecuada en este escenario es SageMaker Data Wrangler, que proporciona una solución end-to-end para importar, preparar, transformar, caracterizar y analizar datos.
Conforme avancemos en nuestro laboratorio, exploraremos diversas funcionalidades de Data Wrangler.
Para este laboratorio hice uso de SageMaker Canvas. Una vez ahí, se selecciona Data Wrangler. Al iniciar, haremos uso de su primera funcionalidad: Importación, la cual nos permitirá traer nuestro set de datos desde una amplia variedad de fuentes, entre las que se incluyen:
- Amazon S3
- Amazon Redshift
- Amazon RDS
- DynamoDB
- Archivos locales
En este laboratorio, el dataset se carga directamente desde Amazon S3, aunque también es posible importar archivos desde el almacenamiento local de tu dispositivo si el escenario lo requiere.
Exploración visual y entendimiento de la muestra
La interfaz de Data Wrangler funciona bajo un esquema point and click, lo que facilita moverse entre distintas vistas:
- Vista de datos
- Flujo de procesamiento
- Reportes de insights
Al observar los datos, es posible identificar de forma inmediata la distribución de valores por columna, lo que permite evaluar rápidamente la calidad de la muestra sin mayor esfuerzo.
Este paso es clave para entender si el dataset es representativo y si presenta problemas evidentes antes de avanzar.
Análisis del set de datos: Data Quality and Insights Report
Antes de aplicar cualquier proceso de limpieza o transformación, me apoyé en el Data Quality and Insights Report de SageMaker Data Wrangler. Este reporte proporciona un resumen automático y muy útil del estado general del dataset.
Para generarlo, únicamente fue necesario indicar la columna objetivo (Market Price) y el tipo de problema, que en este caso corresponde a regresión.
¿Por qué regresión?
Porque el objetivo del modelo es inferir un valor numérico continuo, por ejemplo: 0.3, 10, 20 o 300 dólares. Es decir, se busca predecir un valor monetario.
Si el objetivo hubiese sido asignar una etiqueta discreta, como “Rara” o “Común”, entonces estaríamos ante un problema de clasificación.
Hallazgos del Data Quality and Insights Report
Con estos parámetros definidos, el reporte generado arrojó, entre otros, los siguientes hallazgos relevantes:
- 71.9% de los valores del target no pudieron convertirse a numérico
- 5.42% de filas duplicadas
- Skewness (asimetría): 4.81
- Kurtosis: 23.4, lo que indica la presencia de valores extremos (outliers)
A primera vista, el reporte sugiere una alta presencia de valores atípicos. Sin embargo, este comportamiento es esperable y realista en el contexto de tarjetas coleccionables: muchas cartas tienen un valor muy bajo, mientras que unas pocas pueden alcanzar precios significativamente altos o incluso aumentar su valor con el tiempo.
En términos generales, el dataset no se encuentra en mal estado y refleja adecuadamente la naturaleza del dominio.
Más adelante abordaremos el tratamiento de valores extremos y columnas de alta cardinalidad (como los nombres). Por ahora, el principal problema identificado es la presencia de valores no numéricos en la variable objetivo, por lo que el siguiente paso se enfocará en la limpieza de estos valores antes de continuar con el proceso de preparación de datos.
Tercerpaso: Transformaciones y limpieza de datos
En el panel lateral se encuentra un conjunto de herramientas que permiten realizar transformaciones y tareas de limpieza de forma intuitiva.
El primer ajuste realizado fue la corrección de los tipos de datos. Todas las columnas del dataset fueron inicialmente identificadas como string, por lo que procedí a:
- Cambiar las columnas relacionadas con precios a tipo float
- Ajustar otras características numéricas a tipo long
Manejo de valores faltantes
Tal y como se mencionó en secciones previas, si una columna o fila no aporta valor o genera ruido, lo más recomendable es eliminarla.
En este caso, el objetivo del modelo será inferir el precio de mercado de una nueva carta, por lo que la variable objetivo es la columna Market Price.
Las columnas sin valor no aportan al entrenamiento, por lo que el siguiente paso fue eliminar los registros con valores faltantes utilizando la transformación Drop Missing, especificando la columna correspondiente y aplicando la transformación.
💡 Pro Tip 1: antes de aplicar cualquier transformación, es posible previsualizar el resultado utilizando la opción Preview.
Alta cardinalidad y estrategias de imputación
El dataset contenía varias columnas string de alta cardinalidad que no aportaban valor al modelo, por ejemplo:
- Image URL
- Clean Name
- Name (esta se conservó solo con fines informativos, pero será eliminada antes del entrenamiento)
Finalmente, una columna clave relacionada con los hits presentaba valores únicamente para cartas especiales (poco frecuentes por colección), mientras que muchas cartas comunes tenían valores nulos.
Para este caso se aplicó la transformación Impute, asignando la media como estrategia de imputación.
En la interfaz visual de SageMaker Data Wrangler es posible visualizar el flujo completo de transformaciones aplicadas al dataset. Estas transformaciones pueden gestionarse directamente desde la vista del flujo o, si se prefiere un enfoque más exploratorio, desde la vista de datos, lo que facilita iterar y ajustar los cambios conforme se avanza en el proceso de preparación.
Una vez satisfecha con el resultado de la limpieza y transformación, el siguiente paso fue persistir el dataset curado. Aquí surge una pregunta clásica —y muy relevante para el examen—:
Si deseo entrenar un modelo posteriormente, ¿cuál es el formato de datos más adecuado?
👉 Pregunta de examen. Más adelante verás la elección.
Cuarto paso: Exportación del dataset curado
La conversión se realizó de forma muy sencilla utilizando la opción de exportación de Data Wrangler, tal y como se muestra en la interfaz.
Al tratarse ya de un dataset curado, le asigné el prefijo cu_, lo almacené en mi bucket de Amazon S3 y lo exporté en formato Parquet.
Adicionalmente:
- No apliqué compresión, ya que el tamaño del dataset era reducido.
- No definí particiones, dado que en este caso no existía una dimensión natural que justificara su uso.
Sin embargo, vale la pena aclarar el criterio detrás de las particiones. Por ejemplo:
- En un dataset de reservaciones hoteleras, una partición por fecha tendría sentido.
- En un dataset de expedientes clínicos, una partición por ID de paciente (identificador único) sería una opción razonable.
En este laboratorio, al tratarse de un conjunto de datos pequeño y con fines académicos, la partición no aportaba un beneficio claro, por lo que se decidió omitirla.
Quinto paso: Consultando los datos curados
Ahora que el dataset curado se encuentra almacenado en Amazon S3, el siguiente objetivo es consultar los datos utilizando Amazon Athena. Sin embargo, antes de llegar a ese punto, incorporaremos una herramienta clave dentro del ecosistema de datos en AWS y fundamental para el examen: AWS Glue.
Reconozco que, en este escenario particular, podría haberse omitido Glue y definido la tabla de Athena manualmente. No obstante, decidí incluir este paso porque permite introducir un concepto central en arquitecturas de datos modernas en AWS: los Crawlers y el Glue Data Catalog.
¿Qué es AWS Glue?
AWS Glue es un servicio de integración de datos totalmente gestionado que facilita la descubierta, preparación y catalogación de datos para análisis, machine learning y data engineering.
En este laboratorio utilizaremos Glue específicamente para descubrir el esquema del dataset y registrarlo de forma automática en el catálogo.
¿Qué es un Glue Crawler?
Un Glue Crawler es un componente que:
- Recorre (crawl) datos almacenados en fuentes como Amazon S3
- Inspecciona los archivos (CSV, Parquet, JSON, etc.)
- Infiere automáticamente el esquema (columnas, tipos de datos, particiones)
- Crea o actualiza tablas en el Glue Data Catalog
¿Qué es el Glue Data Catalog?
El Glue Data Catalog es un metastore centralizado que mantiene:
- Bases de datos
- Tablas
- Esquemas
- Ubicación de los datos en S3
- Metadatos asociados
Este catálogo no almacena los datos en sí, únicamente los metadatos, y es utilizado por múltiples servicios de análisis y machine learning en AWS.
Este paso es necesario porque Athena no “lee” directamente S3 sin contexto. Necesita saber:
- Dónde están los datos
- Cómo están estructurados
- Qué tipos de datos tienen las columnas
El Glue Data Catalog provee exactamente esa información. Al ejecutar un crawler:
- Glue analiza el dataset en S3
- Registra la tabla y su esquema en el Data Catalog
- Athena puede consultar la tabla inmediatamente usando SQL estándar
Este enfoque no solo reduce errores, sino que además es altamente escalable y reutilizable, especialmente cuando los esquemas evolucionan o se incorporan nuevas particiones.
Desde una perspectiva de examen, es importante recordar que:
- Glue Crawlers automatizan el llenado del catálogo
- Athena depende del Data Catalog
- El catálogo desacopla el almacenamiento (S3) del análisis
En el siguiente paso, con el crawler ejecutado y la tabla registrada, ya estaremos listos para consultar nuestro dataset curado directamente desde Athena.
Configuración del Glue Crawler
Antes de ejecutar el crawler, fue necesario completar una serie de pasos previos que permiten organizar y catalogar correctamente los datos que luego serán consumidos por Athena. A continuación, detallo el proceso que llevé a cabo.
1. Creación de la base de datos en el Glue Data Catalog
En primer lugar, creé una base de datos en el Glue Data Catalog. Esta base de datos actúa como un contenedor lógico de tablas, similar a un esquema en bases de datos relacionales.
Definí que esta base de datos estuviera asociada al bucket de Amazon S3 donde se almacenan los datasets. Es importante aclarar que esta asociación es meramente académica; en la práctica, el Data Catalog puede referenciar datos ubicados en múltiples buckets y prefijos.
2. Creación del Glue Crawler
Posteriormente, procedí a crear el crawler, configurando los siguientes parámetros clave:
- Nombre del crawler: identificador claro y descriptivo
- Fuente de datos (Data Source): Amazon S3, apuntando específicamente al prefijo donde se encuentra el dataset curado
- Prefijo para el nombre de la tabla: definido para mantener consistencia y evitar confusiones en el catálogo
- Frecuencia de ejecución: configurado para ejecutarse bajo demanda, con el objetivo de evitar ejecuciones innecesarias y posibles impactos en la facturación
- Rol de IAM: el rol asociado al crawler debe contar, como mínimo, con permisos de lectura sobre el bucket de S3 donde residen los datos, además de permisos para escribir metadatos en el Glue Data Catalog
3. Ejecución del crawler
Una vez completada la configuración, el crawler se ejecuta manualmente. Al finalizar:
- Glue analiza los archivos almacenados en S3
- Infiere el esquema (columnas, tipos de datos y, si aplica, particiones)
- Crea o actualiza la tabla correspondiente en el Glue Data Catalog
Con el catálogo poblado correctamente, ya contamos con toda la información necesaria para avanzar al siguiente paso: consultar el dataset curado desde Amazon Athena y empezar a responder preguntas interesantes sobre el mundo de las tarjetas coleccionables utilizando SQL.
Consulta del dataset curado con Amazon Athena
Finalmente, con el Glue Data Catalog poblado, podemos avanzar a Amazon Athena.
Al ingresar a Athena, únicamente es necesario seleccionar la base de datos creada previamente en el Data Catalog. A partir de ese momento, Athena descubre automáticamente las tablas generadas por el crawler y las deja disponibles para su consulta.
Desde Athena ya es posible ejecutar consultas SQL estándar sobre el dataset curado que construimos a lo largo del laboratorio, sin necesidad de mover o duplicar los datos.
Athena consulta directamente los archivos almacenados en Amazon S3, apoyándose en los metadatos definidos en el Data Catalog para interpretar correctamente el esquema.
💡 Pro Tip 2: Una vez finalizado el trabajo en SageMaker Canvas / Data Wrangler, es fundamental cerrar la aplicación y no dejarla abierta innecesariamente.
Al hacerlo, te aseguras de que no queden jobs activos en segundo plano, ya que los costos en este laboratorio están directamente asociados a la ejecución de Jobs.
Amazon Athena: costo por volumen de datos escaneados en las consultas (beneficiado por el uso de Parquet)
Conclusiones importantes
SageMaker Data Wrangler es una herramienta sumamente sencilla de utilizar, y en conjunto con SageMaker Canvas, contribuye de forma clara a democratizar el análisis y la preparación de datos.
Sin embargo, más allá de la facilidad de uso, es fundamental recordar que cuando se trabaja con datos crudos, estos deben analizarse, limpiarse y transformarse con criterio. No todo se debe eliminar, ni todo se debe conservar: el contexto del problema y el objetivo del modelo son determinantes.
La selección de la herramienta adecuada es un punto clave y siempre dependerá del caso de uso, del volumen de datos, del nivel de especialización del equipo y de los recursos disponibles.
Con este laboratorio práctico logramos recorrer un flujo completo y realista en AWS:
- Preparamos y limpiamos los datos con SageMaker Data Wrangler
- Catalogamos el dataset utilizando AWS Glue Crawlers
- Analizamos la información de forma interactiva con Amazon Athena
Este patrón es ampliamente utilizado en arquitecturas de analytics y machine learning en AWS, y resume de manera práctica cómo los servicios trabajan de forma integrada para convertir datos crudos en información lista para análisis y entrenamiento de modelos.
Como puedes observar, a lo largo del proceso también aparecen trade-offs importantes: facilidad de uso versus flexibilidad, automatización versus control, costo versus escalabilidad, que no solo se evalúan en los exámenes de certificación, sino también en escenarios reales de la vida profesional.









Top comments (0)