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:

pip install tfx

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.

© Copyright 2024. Todos los derechos reservados