La transformación de datos es una etapa crucial en el flujo de trabajo de aprendizaje automático. En este módulo, aprenderás cómo utilizar TensorFlow Extended (TFX) para transformar datos de manera eficiente y preparar tus conjuntos de datos para el entrenamiento de modelos. La transformación de datos puede incluir operaciones como normalización, codificación de variables categóricas, y creación de características derivadas.
Objetivos del Módulo
- Comprender la importancia de la transformación de datos.
- Aprender a utilizar
tf.Transform
para transformar datos. - Implementar transformaciones comunes como normalización y codificación.
- Crear y aplicar funciones de preprocesamiento personalizadas.
Contenido
¿Qué es tf.Transform?
tf.Transform
es una biblioteca de TensorFlow que permite definir y ejecutar transformaciones de datos de manera escalable y eficiente. Es especialmente útil para preprocesar datos antes de entrenar modelos de aprendizaje automático.
Características Clave de tf.Transform
- Escalabilidad: Puede manejar grandes volúmenes de datos.
- Consistencia: Asegura que las transformaciones aplicadas durante el entrenamiento se apliquen de manera idéntica durante la inferencia.
- Integración: Se integra fácilmente con otros componentes de TFX.
Configuración del Entorno
Antes de comenzar, asegúrate de tener instalado TensorFlow y TFX. Puedes instalar TFX utilizando pip:
Transformaciones Comunes
Normalización
La normalización es una técnica para escalar los valores de las características a un rango específico, generalmente [0, 1] o [-1, 1].
import tensorflow_transform as tft def preprocessing_fn(inputs): outputs = inputs.copy() outputs['normalized_feature'] = tft.scale_to_0_1(inputs['feature']) return outputs
Codificación de Variables Categóricas
La codificación de variables categóricas convierte categorías en valores numéricos.
def preprocessing_fn(inputs): outputs = inputs.copy() outputs['encoded_feature'] = tft.compute_and_apply_vocabulary(inputs['categorical_feature']) return outputs
Funciones de Preprocesamiento Personalizadas
Puedes definir funciones de preprocesamiento personalizadas para realizar transformaciones específicas.
Ejemplo: Creación de una Característica Derivada
Supongamos que tienes dos características, feature1
y feature2
, y deseas crear una nueva característica que sea el producto de ambas.
def preprocessing_fn(inputs): outputs = inputs.copy() outputs['derived_feature'] = inputs['feature1'] * inputs['feature2'] return outputs
Ejercicio Práctico
Objetivo
Transformar un conjunto de datos de ejemplo aplicando normalización y codificación de variables categóricas.
Paso 1: Definir el Conjunto de Datos
import pandas as pd data = { 'feature': [1.0, 2.0, 3.0, 4.0, 5.0], 'categorical_feature': ['A', 'B', 'A', 'B', 'C'] } df = pd.DataFrame(data)
Paso 2: Definir la Función de Preprocesamiento
def preprocessing_fn(inputs): outputs = inputs.copy() outputs['normalized_feature'] = tft.scale_to_0_1(inputs['feature']) outputs['encoded_feature'] = tft.compute_and_apply_vocabulary(inputs['categorical_feature']) return outputs
Paso 3: Aplicar la Transformación
import tensorflow as tf import tensorflow_transform as tft raw_data_metadata = tft.tf_metadata.dataset_metadata.DatasetMetadata( tft.tf_metadata.schema_utils.schema_from_feature_spec({ 'feature': tf.io.FixedLenFeature([], tf.float32), 'categorical_feature': tf.io.FixedLenFeature([], tf.string) }) ) with tft_beam.Context(temp_dir=tempfile.mkdtemp()): transformed_dataset, transform_fn = ( (df, raw_data_metadata) | tft_beam.AnalyzeAndTransformDataset(preprocessing_fn) ) transformed_data, transformed_metadata = transformed_dataset print(transformed_data)
Conclusión
En este módulo, has aprendido cómo utilizar tf.Transform
para realizar transformaciones de datos esenciales en el flujo de trabajo de aprendizaje automático. Estas transformaciones aseguran que tus datos estén en el formato adecuado para el entrenamiento de modelos, mejorando así la eficiencia y la precisión de tus modelos.
Resumen
tf.Transform
es una herramienta poderosa para la transformación de datos.- Las transformaciones comunes incluyen normalización y codificación de variables categóricas.
- Puedes definir funciones de preprocesamiento personalizadas para realizar transformaciones específicas.
Próximos Pasos
En el siguiente módulo, exploraremos el análisis de modelos utilizando TFX, donde aprenderás a evaluar y mejorar tus modelos de manera sistemática.
Curso de TensorFlow
Módulo 1: Introducción a TensorFlow
- ¿Qué es TensorFlow?
- Configuración de TensorFlow
- Conceptos Básicos de TensorFlow
- Hola Mundo en TensorFlow
Módulo 2: Fundamentos de TensorFlow
Módulo 3: Manejo de Datos en TensorFlow
Módulo 4: Construcción de Redes Neuronales
- Introducción a Redes Neuronales
- Creando una Red Neuronal Simple
- Funciones de Activación
- Funciones de Pérdida y Optimizadores
Módulo 5: Redes Neuronales Convolucionales (CNNs)
Módulo 6: Redes Neuronales Recurrentes (RNNs)
- Introducción a RNNs
- Construyendo una RNN
- Memoria a Largo Plazo (LSTM)
- Unidades Recurrentes Gated (GRUs)
Módulo 7: Técnicas Avanzadas de TensorFlow
- Capas y Modelos Personalizados
- TensorFlow Hub
- Aprendizaje por Transferencia
- Ajuste de Hiperparámetros