Datos categóricos
El preprocesamiento de datos es un paso crucial en cualquier proyecto de aprendizaje automático. Implica limpiar y transformar datos en bruto a un formato que pueda ser analizado fácilmente por algoritmos de aprendizaje automático. Python ofrece una amplia gama de técnicas de preprocesamiento que pueden ayudar a refinar la calidad de los datos y el rendimiento del modelo. Este capítulo cubre los pasos fundamentales de preprocesamiento, con un enfoque principal en preparar los datos para el manejo de variables categóricas.
Importación de datos
El primer paso en cualquier tarea de preprocesamiento de datos es la importación. La biblioteca pandas de Python proporciona una forma sencilla de leer datos desde varios formatos de archivo. La función read_csv() se puede utilizar para leer datos desde un archivo CSV.
import pandas as pd
df = pd.read_csv('data.csv')Limpieza de datos
La limpieza de datos es un aspecto esencial del preprocesamiento. Implica identificar y manejar datos faltantes, valores atípicos y anomalías. La biblioteca Pandas proporciona varios métodos para la limpieza de datos, como fillna(), dropna() y replace().
# Fill missing values with a default
df['column'] = df['column'].fillna(0)
# Drop rows with any missing values
df = df.dropna()
# Replace specific values
df['column'] = df['column'].replace('old_value', 'new_value')Transformación de datos
La transformación de datos es el proceso de convertir datos en bruto a un formato adecuado para el análisis. Algunas de las técnicas de transformación de datos más utilizadas son el escalado, la codificación y la normalización.
Escalado
El escalado se utiliza para llevar las características de un conjunto de datos a una escala similar. Esta técnica es útil cuando las características tienen diferentes rangos de valores. Las técnicas de escalado más utilizadas son StandardScaler y MinMaxScaler.
Codificación
La codificación es el proceso de convertir variables categóricas en valores numéricos. Las técnicas de codificación más utilizadas son la codificación ordinal y la codificación one-hot.
from sklearn.preprocessing import OrdinalEncoder, OneHotEncoder
import pandas as pd
# Ordinal Encoding (for ordered categories)
encoder = OrdinalEncoder()
df['category'] = encoder.fit_transform(df[['category']])
# One-Hot Encoding (for unordered categories)
ohe = OneHotEncoder(sparse_output=False, handle_unknown='ignore')
encoded_array = ohe.fit_transform(df[['category']])
# Convert the numpy array back to a DataFrame with proper column names
encoded_df = pd.DataFrame(encoded_array, columns=ohe.get_feature_names_out(['category']))Nota sobre la fuga de datos: Ajuste siempre los codificadores únicamente en los datos de entrenamiento, y luego transforme tanto los datos de entrenamiento como los de prueba. Esto evita que la información del conjunto de prueba influya en el modelo.
Manejo de categorías no vistas: Utilice handle_unknown='ignore' en OneHotEncoder para evitar errores cuando el conjunto de prueba contiene categorías no vistas durante el entrenamiento.
Normalización
La normalización es el proceso de escalar las características numéricas a un rango fijo, típicamente [0, 1]. La estandarización, por otro lado, transforma las características para tener una media de cero y una desviación estándar de uno. Esta técnica es útil cuando las características tienen diferentes unidades de medida o cuando los algoritmos asumen datos con distribución normal.
Selección de características
La selección de características es el proceso de elegir las características más relevantes para un modelo de aprendizaje automático. Implica identificar los predictores más significativos y eliminar los menos importantes. La técnica de selección de características más utilizada es SelectKBest.
# Prepare features (X) and target (y) from the dataframe
X = df.drop('target', axis=1)
y = df['target']
from sklearn.feature_selection import SelectKBest, f_classif
# Select the top 3 features based on ANOVA F-value
selector = SelectKBest(score_func=f_classif, k=3)
X_new = selector.fit_transform(X, y)Conclusión
Este capítulo ha descrito los pasos clave de preprocesamiento, incluyendo la limpieza de datos, la transformación y la selección de características. Al aplicar estas técnicas, puede mejorar la calidad de los datos y optimizar el rendimiento del modelo, especialmente al preparar conjuntos de datos para el análisis de variables categóricas. Manejar adecuadamente los datos categóricos con la codificación apropiada y evitar la fuga de datos garantiza pipelines de aprendizaje automático robustos y reproducibles.