Feature Engineering para Machine Learning
Santiago Llaberia
Universidad de Buenos Aires
Facultad de Ciencias Económicas
Computación Cientı́fica Actuarial
Curso Del Rosso
2026
Agenda
1 Introducción y Metodologı́a
2 Data Leakage y la Regla de Oro del Split
3 Ingenierı́a de Variables Numéricas
4 Ingenierı́a de Variables Categóricas
5 Selección de Features y Cierre
Universidad de Buenos Aires Feature Engineering en ML 2 / 46
¿Qué es Feature Engineering?
Definición: Proceso de transformar datos crudos en variables numéricas que expongan la
estructura del problema subyacente de manera directa al modelo predictivo.
El Núcleo del Aprendizaje: Un algoritmo sofisticado no puede compensar la falta de variables
representativas.
“Coming up with features is difficult, time-consuming, requires expert knowledge. ‘Applied ma-
chine learning’ is basically feature engineering.”
— Andrew Ng
La Regla de Oro Pedagógica
Garbage In, Garbage Out (GIGO): Si la representación es ruidosa o inadecuada, el mejor estimador
matemático memorizará ruido o fallará en generalizar.
Universidad de Buenos Aires Feature Engineering en ML 3 / 46
El Ciclo de Modelado en Machine Learning
1. Análisis Exploratorio (EDA) 2. Feature Engineering
4. Análisis de Errores 3. Entrenamiento / Validación
El desarrollo de modelos es altamente iterativo. El análisis de errores en el paso 4 es lo que nos
indica qué nuevas transformaciones son necesarias en el paso 2.
Universidad de Buenos Aires Feature Engineering en ML 4 / 46
El Peligro del Data Leakage (Fuga de Información)
¿Qué es el Data Leakage?
Ocurre cuando la información del conjunto de testeo o del target futuro “se filtra” silenciosamente en el
conjunto de entrenamiento durante la etapa de ingenierı́a de variables.
Consecuencias en el mundo real
Métricas de validación/test artificialmente perfectas (R 2 ≈ 1,0, AUC ≈ 1,0).
Colapso absoluto al enviar el modelo a producción con datos reales fuera de la muestra.
Ejemplo clásico: Calcular el promedio de una columna del dataset global (incluyendo test) para
imputar nulos en el conjunto de entrenamiento.
Universidad de Buenos Aires Feature Engineering en ML 5 / 46
El Flujo Metodológico Correcto
Dataset Completo
Train Set Test Set (Inmaculado)
fit(Train) → Parámetros (µ, σ)
transform(Train) transform(Test)
Regla de Oro: Los parámetros de transformación se calculan únicamente con los datos de entrenamiento y se
aplican de forma idéntica en el test.
Universidad de Buenos Aires Feature Engineering en ML 6 / 46
Implementación con Scikit-Learn
Listing 1: Forma manual libre de Leakage
from sklearn . model_selectio n import t r a i n _ t e s t _ sp l i t
from sklearn . preprocessing import Standar dScaler
# 1. Separar los datos i n m e d i a t a m e n t e despues de c a r g a r l o s
X_train , X_test , y_train , y_test = tr a i n _ t e s t _ s p l i t (X , y , test_size =0.2 , random_state =42)
# 2. I n s t a n c i a r el t r a n s f o r m a d o r
scaler = StandardScaler ()
# 3. Fit solo en e n t r e n a m i e n t o : Calcula la media y d e s v i a c i o n e s t a n d a r reales del Train
scaler . fit ( X_train )
# 4. T r a n s f o r m a r de manera i n d e p e n d i e n t e ambos c o n j u n t o s usando los mismos p a r a m e t r o s
X_train_sca led = scaler . transform ( X_train )
X_test_scaled = scaler . transform ( X_test )
Tip: Utilizar Pipeline de Scikit-Learn encapsula este flujo automáticamente, previniendo errores de
programación.
Universidad de Buenos Aires Feature Engineering en ML 7 / 46
CASO 1: Estandarización (Z-Score Scaling) - Teorı́a
Concepto
Transformación lineal que centra los datos restando la media (µ) y escala dividiendo por la desviación
estándar (σ). Deja la variable con µ = 0 y σ = 1.
x −µ
z=
σ
¿Cuándo usar?: Algoritmos basados en distancias (KNN, SVM), modelos lineales con
regularización (Lasso, Ridge) y optimización mediante descenso de gradiente (Redes Neuronales).
Ventaja: No acota rı́gidamente los datos extremos (conserva la forma de outliers en términos de
desviaciones estándar).
Universidad de Buenos Aires Feature Engineering en ML 8 / 46
CASO 1: Estandarización (Z-Score Scaling) - Ejemplo Numérico
Caso Práctico: Alturas en cm
Consideremos un subconjunto de entrenamiento de tres personas: X = [150, 170, 190].
Paso 1: Calcular parámetros muestrales en Train
150+170+190
Media (µ): 3= 170 cm
q q
2 2 +(190−170)2
Desviación Estándar (σ): (150−170) +(170−170)
3 = 400+0+400
3 ≈ 16,33 cm
Paso 2: Transformar
Valor Original (x) Proceso (x − µ) Dividido por σ Valor Estandarizado (z)
150 150 − 170 = −20 −20/16,33 -1.22
170 170 − 170 = 0 0/16,33 0.00
190 190 − 170 = 20 20/16,33 1.22
Universidad de Buenos Aires Feature Engineering en ML 9 / 46
CASO 2: Escalado Min-Max (Normalización) - Teorı́a
Concepto
Transformación lineal que acota los datos dentro de un intervalo cerrado predefinido, tı́picamente [0, 1].
x − xmin
xscaled =
xmax − xmin
¿Cuándo usar?: Indispensable cuando los algoritmos requieren cotas estrictas (Procesamiento de
Imágenes con valores de pı́xeles [0, 255], Algoritmos que no admiten valores negativos).
Desventaja: Extremadamente sensible a outliers. Un solo valor anómalo gigante comprimirá la
varianza del resto de los datos válidos a un rango imperceptible.
Universidad de Buenos Aires Feature Engineering en ML 10 / 46
CASO 2: Escalado Min-Max (Normalización) - Ejemplo Numérico
Caso Práctico: Edades de usuarios
Edades registradas en entrenamiento: X = [20, 40, 60].
Paso 1: Identificar extremos en Train
Valor Mı́nimo (xmin ): 20
Valor Máximo (xmax ): 60
Rango (xmax − xmin ): 60 − 20 = 40
Paso 2: Aplicar la transformación lineal
Edad Original (x) Restar Mı́nimo (x − 20) Dividir por Rango (40) Escala [0, 1]
20 20 − 20 = 0 0/40 0.0
40 40 − 20 = 20 20/40 0.5
60 60 − 20 = 40 40/40 1.0
Universidad de Buenos Aires Feature Engineering en ML 11 / 46
CASO 3: Transformación Logarı́tmica - Teorı́a
Concepto
Aplicación de la función logarı́tmica para comprimir la magnitud de valores grandes y expandir la escala
de valores pequeños. Reduce la asimetrı́a a la derecha (heavy tails).
y = log(x + 1)
El término +1 es crucial para evitar el error matemático indefinido del log(0) en variables no negativas.
¿Cuándo usar?: En variables financieras o de población (Ingresos, Precios de viviendas, cantidad de clics)
que siguen leyes de potencia o distribuciones sumamente sesgadas.
Impacto: Ayuda a estabilizar la varianza (homocedasticidad) y aproxima la variable a una distribución
normal.
Universidad de Buenos Aires Feature Engineering en ML 12 / 46
CASO 3: Transformación Logarı́tmica - Ejemplo Numérico
Caso Práctico: Ingresos anuales extremadamente dispersos
Datos: X = [1000, 10000, 1000000] (Pesos o Dólares).
Nota metodológica pedagógica: Usamos log10 para una visualización conceptual simple.
Aplicando la transformación directamente:
Ingreso Original (x) Expresión en Potencia de 10 Transformación log10 (x)
3
1.000 10 3.0
10.000 104 4.0
1.000.000 106 6.0
Análisis del resultado
La distancia lineal original entre el primer y tercer caso era de 999,000 unidades. En la escala
logarı́tmica, la distancia se contrajo a solo 3,0 unidades, eliminando la asimetrı́a extrema y la
dominancia matemática de los valores atı́picos.
Universidad de Buenos Aires Feature Engineering en ML 13 / 46
CASO 4: Imputación por Tendencia Central - Teorı́a
Concepto
Consiste en reemplazar los valores faltantes (NaN) utilizando medidas de resumen estadı́stico calculadas
sobre las muestras válidas existentes.
Media (µ): Recomendable únicamente si la variable sigue una distribución simétrica y carece de
outliers severos.
Mediana (x̃): Preferible ante distribuciones sesgadas o presencia de outliers, por su alta robustez
estadı́stica.
Peligros metodológicos de esta técnica
1 Contrae artificialmente la varianza de la variable (creamos un pico de datos artificiales idénticos en
el centro).
2 Altera de forma irreversible las correlaciones reales con el resto de las columnas predictoras.
Universidad de Buenos Aires Feature Engineering en ML 14 / 46
CASO 4: Imputación por Tendencia Central - Ejemplo Numérico
Caso Práctico: Vector de mediciones fı́sicas
Registros de entrenamiento: X = [10, 12, NaN, 14, 14].
Paso 1: Calcular métricas usando valores observados
Valores observados válidos: {10, 12, 14, 14}
Media (µ): 10+12+14+14
4 = 12,5
12+14
Mediana (x̃): Ordenando {10, 12, 14, 14} → Promedio de posiciones centrales: 2 = 13
Paso 2: Imputar usando la Mediana (por robustez ante el doble 14)
Posición Valor Original ¿Faltante? Tratamiento Vector Imputado
1 10 No Mantener 10.0
2 12 No Mantener 12.0
3 NaN Sı́ Reemplazar por x̃ = 13 13.0
4 14 No Mantener 14.0
5 14 No Mantener 14.0
Universidad de Buenos Aires Feature Engineering en ML 15 / 46
CASO 5: Imputación por Valor Fijo (Constante) - Teorı́a
Concepto
Reemplazo de los valores nulos mediante una constante preestablecida por diseño o por lógica del
negocio (comúnmente 0, −1, o −999).
¿Cuándo usar?: Cuando la ausencia del dato tiene un significado semántico especı́fico por sı́
misma. No es una falla del sistema, sino un valor descriptivo implı́cito.
Ejemplos de lógica empresarial:
Historial de Deudas sin registrar → La deuda real es de $0.
Cantidad de dı́as desde la última compra vacı́a → Nunca compró en el sitio.
Atención con los árboles de decisión
Asignar un extremo como −999 permite a los estimadores basados en árboles agrupar y ramificar todos
los casos nulos en un nodo especı́fico de manera muy eficiente.
Universidad de Buenos Aires Feature Engineering en ML 16 / 46
CASO 5: Imputación por Valor Fijo (Constante) - Ejemplo Numérico
Caso Práctico: Depósitos extraordinarios de clientes
Datos financieros mensuales: X = [150,0, NaN, 320,5, NaN] (pesos).
Asunción del negocio: Si no hay registro de depósito extraordinario, el monto ejecutado es nulo ($0.0).
Proceso de sustitución con constante K = 0,0:
ID Cliente Transacción Registrada ¿Faltante? Vector Resultante Imputado
1 150.0 No 150.0
2 NaN Sı́ (Asumir $0) 0.0
3 320.5 No 320.5
4 NaN Sı́ (Asumir $0) 0.0
Universidad de Buenos Aires Feature Engineering en ML 17 / 46
CASO 6: Imputación por Muestreo Aleatorio - Teorı́a
Concepto
Relleno de valores nulos tomando de forma aleatoria valores observados reales del mismo dataset de
entrenamiento.
¿Por qué se prefiere?: Preserva de forma casi exacta la distribución marginal original de la
variable y la varianza total histórica.
Comparativa clave: Mientras que la media aplana el histograma y genera un pico artificial, esta
técnica conserva la dispersión natural del ruido.
Desventaja: Añade aleatoriedad en el pipeline del modelo, requiriendo fijar estrictamente la semilla
aleatoria (random seed) para reproducibilidad en test.
Universidad de Buenos Aires Feature Engineering en ML 18 / 46
CASO 6: Imputación por Muestreo Aleatorio - Ejemplo Numérico
Caso Práctico: Calificaciones de un curso
Calificaciones registradas: X = [1,5, 2,3, NaN, 4,1, NaN].
Contamos con un pool de valores reales observados: Spool = {1,5, 2,3, 4,1}.
Paso 1: Extracción probabilı́stica de valores válidos
Para el primer NaN: Se muestrea aleatoriamente de Spool → Seleccionamos 4,1.
Para el segundo NaN: Se muestrea aleatoriamente de Spool → Seleccionamos 1,5.
Comparación del resultado imputado:
Índice Original (X ) Imputación por Media (µ = 2,63) Imputación Aleatoria (Xrand )
1 1.5 1.50 1.5
2 2.3 2.30 2.3
3 NaN 2.63 4.1
4 4.1 4.10 4.1
5 NaN 2.63 1.5
Universidad de Buenos Aires Feature Engineering en ML 19 / 46
CASO 7: Discretización (Binning) por Cuantiles - Teorı́a
Concepto
Conversión de una variable numérica continua en un conjunto finito de intervalos discretos (bins)
basados en los percentiles del dataset.
¿Por qué cuantiles?: Asegura una distribución uniforme de observaciones. Cada intervalo
contendrá aproximadamente la misma cantidad de registros (1/k).
Propósito pedagógico: Suprime el ruido microscópico y mejora la estabilidad de estimadores ante
fluctuaciones locales no generalizables.
Interpretación: Convierte una variable ordinal numérica cruda en categorı́as semánticas claras (ej:
Nivel Bajo, Medio, Alto).
Universidad de Buenos Aires Feature Engineering en ML 20 / 46
CASO 7: Discretización (Binning) por Cuantiles - Ejemplo Numérico
Caso Práctico: Edades de 6 clientes
Vector continuo de edades en entrenamiento: X = [18, 21, 35, 42, 58, 70].
Objetivo: Generar 3 intervalos de igual frecuencia (Terciles → k = 3).
Paso 1: Calcular lı́mites de intervalos (Percentiles 33.3 % y 66.6 %)
Intervalo 1 (Jóvenes): De 18 a 21 años. (Contiene 2 registros)
Intervalo 2 (Adultos): De 35 a 42 años. (Contiene 2 registros)
Intervalo 3 (Seniors): De 58 a 70 años. (Contiene 2 registros)
Paso 2: Mapear a códigos numéricos codificados [1, 2, 3]
Edad Original (x) Clasificación de Intervalo Código de Bin Asignado
18 [18, 21] 1
21 [18, 21] 1
35 [35, 42] 2
42 [35, 42] 2
58 [58, 70] 3
70 [58, 70] 3
Universidad de Buenos Aires Feature Engineering en ML 21 / 46
CASO 8: Tratamiento de Outliers por Truncamiento (Clipping) - Teorı́a
Concepto
Consiste en limitar los valores extremos más allá de ciertos lı́mites inferior y superior definidos mediante
criterios estadı́sticos robustos (como el rango intercuartı́lico, percentiles 1/99 o reglas del negocio).
xclipped = máx(mı́n, mı́n(x, máx))
Cálculo estándar (Rango Intercuartı́lico - IQR):
Lı́mite Inferior = Q1 − 1,5 × IQR
Lı́mite Superior = Q3 + 1,5 × IQR
Beneficio: Neutraliza el impacto nocivo de valores extremos sin eliminar las filas del dataset,
preservando toda la información complementaria.
Universidad de Buenos Aires Feature Engineering en ML 22 / 46
CASO 8: Tratamiento de Outliers por Truncamiento (Clipping) - Ejemplo
Caso Práctico: Montos de transferencias bancarias
Registros de montos: X = [−50, 10, 20, 30, 150].
Establecemos lı́mites del negocio: Mı́nimo admisible = 0, Máximo admisible = 100.
Aplicando la fórmula de truncamiento iterativa:
Valor Original ¿Menor que Mı́nimo (0)? ¿Mayor que Máximo (100)? Valor Clipped (xclipped )
-50 Sı́ (x < 0 → 0) No 0
10 No No 10
20 No No 20
30 No No 30
150 No Sı́ (x > 100 → 100) 100
Universidad de Buenos Aires Feature Engineering en ML 23 / 46
CASO 9: Caracterı́sticas de Interacción - Teorı́a
Concepto
Creación de nuevas columnas mediante operaciones algebraicas entre dos o más variables
independientes existentes, exponiendo dinámicas no lineales directas al modelo.
Interacción Simple (Ratio / Relación):
Ingresos Totales
Ratio =
Miembros de la Familia
Interacción Compleja (Diferenciales sobre Grupos / Delta): Calcula el desvı́o de una
observación individual respecto al promedio del grupo al que pertenece (por ejemplo, zona
geográfica o categorı́a comercial).
Deltai = Xi − µGrupo
Universidad de Buenos Aires Feature Engineering en ML 24 / 46
CASO 9: Caracterı́sticas de Interacción - Ejemplo Numérico
Caso Práctico: Gastos en Sucursales
Un cliente gasta $450 en una sucursal cuyo gasto promedio histórico del mes fue µsucursal = $200.
Evaluemos la interacción del comportamiento.
Cálculo del Delta Individual sobre la Media Local:
ID Cliente Gasto Individual (Xg ) Promedio Sucursal (µs ) Delta Generado (Xg − µs )
1 $100 $200 -$100 (Gasto bajo promedio)
2 $450 $200 +$250 (Supercomprador local)
3 $50 $200 -$150 (Gasto mı́nimo local)
Este delta le permite al algoritmo lineal capturar inmediatamente si el comportamiento de compra es atı́pico o
normal según el contexto, sin requerir algoritmos no lineales complejos.
Universidad de Buenos Aires Feature Engineering en ML 25 / 46
CASO 10: Reducción de Dimensionalidad (PCA) - Teorı́a
Concepto
Técnica matemática no supervisada de proyección ortogonal lineal que encuentra direcciones de máxima
varianza (Componentes Principales) en espacios de datos altamente correlacionados.
¿Por qué es útil?: Combina y compacta múltiples variables redundantes que generan
multicolinealidad, proyectándolas a una dimensión mucho menor.
Requisito Fundamental: Es absolutamente mandatorio estandarizar los datos con Z-score antes
de ejecutar PCA, ya que la técnica es sumamente sensible a las diferencias de escalas originales de
los datos.
Universidad de Buenos Aires Feature Engineering en ML 26 / 46
CASO 10: Reducción de Dimensionalidad (PCA) - Ejemplo Numérico
Caso Práctico: Valuación inmobiliaria redundante
Analizamos dos variables altamente correlacionadas: X1 = Tamaño del Living (M 2 ) y
X2 = Tamaño Total de la Casa (M 2 ).
Espacio Original (2 Dims) Proceso de Proyección Espacio PCA Reducido (1 Comp)
X1 = [40, 50, 60] Rotación de ejes ortogonales PC1 = [-1.41, 0.00, 1.41]
X2 = [100, 120, 140] Varianza Explicada de PC1: 98,5 % PC2 = [0.00, 0.00, 0.00] (Se elimina)
Hemos comprimido exitosamente un problema bidimensional a una sola variable descriptora (PC1) sin perder
información sustancial de los datos.
Universidad de Buenos Aires Feature Engineering en ML 27 / 46
CASO 1: One-Hot Encoding (Dummies) - Teorı́a
Concepto
Conversión de variables cualitativas nominales (sin jerarquı́a) en múltiples columnas binarias indicadoras
[0, 1], una por cada categorı́a única.
La trampa de la colinealidad lineal
Si tenemos k categorı́as únicas en la variable, crear k columnas binarias introduce dependencia lineal
perfecta (la suma de las columnas da exactamente 1 en todas las filas). Para evitar esto, se configura
drop=’first’ que descarta la primera columna creando únicamente k − 1 variables.
Desventaja: Genera alta dispersión (sparsity) y aumenta drásticamente la dimensión si la variable
categórica original tiene alta cardinalidad (ej. Códigos Postales).
Universidad de Buenos Aires Feature Engineering en ML 28 / 46
CASO 1: One-Hot Encoding (Dummies) - Ejemplo Numérico
Caso Práctico: Clubes de Fútbol de Socios
Datos categóricos crudos: X = [Boca, River, Boca, San Lorenzo].
Categorı́as totales: k = 3. Al aplicar drop=’first’ con Boca como referencia, creamos k − 1 = 2
columnas.
Matriz de salida resultante en One-Hot Encoding:
Categorı́a Original Nueva Columna Is River Nueva Columna Is SanLorenzo
Boca 0 0
River 1 0
Boca 0 0
San Lorenzo 0 1
Nota: Si el socio es de Boca se infiere automáticamente porque ambas columnas indicadoras valen 0.
Universidad de Buenos Aires Feature Engineering en ML 29 / 46
CASO 2: Ordinal Encoding - Teorı́a
Concepto
Conversión de categorı́as que poseen una relación de orden o jerarquı́a inherente y evidente en una
escala numérica correlativa ordenada.
¿Por qué es crucial?: Preserva de forma directa la magnitud y la ordenación secuencial implı́cita
en la variable original sin crear múltiples columnas dummies ruidosas.
Peligro Pedagógico: No utilizar nunca en variables puramente nominales (por ejemplo, colores:
Rojo, Azul). Asignar números arbitrarios a categorı́as nominales confunde a los modelos basados en
distancias (como KNN o SVM) asumiendo falsas cercanı́as o distancias métricas inexistentes.
Universidad de Buenos Aires Feature Engineering en ML 30 / 46
CASO 2: Ordinal Encoding - Ejemplo Numérico
Caso Práctico: Niveles Educativos Alcanzados
Nivel Educativo de postulantes: X = [Secundario, Primario, Universitario, Secundario].
Paso 1: Definir diccionario de mapeo lógico ordenado
1 → Primario
2 → Secundario
3 → Universitario
Aplicando la transformación ordinal:
Postulante Valor Categórico Original Mapeo Numérico Generado
1 Secundario 2
2 Primario 1
3 Universitario 3
4 Secundario 2
Universidad de Buenos Aires Feature Engineering en ML 31 / 46
CASO 3: Target Encoding (con Regularización) - Teorı́a
Concepto
Reemplaza cada categorı́a única por la media de la variable objetivo (y ) correspondiente a ese grupo de
registros.
Si = λ(ni )µi + (1 − λ(ni ))µglobal
µi : Media del target para la categorı́a especı́fica.
µglobal : Media global del target en todo el Train set.
λ(ni ): Factor de suavizado (smoothing ) ponderado por el conteo de muestras (ni ). Previene que
categorı́as raras con pocos datos adquieran valores extremos (regularización contra Overfitting).
Universidad de Buenos Aires Feature Engineering en ML 32 / 46
CASO 3: Target Encoding (con Regularización) - Ejemplo Numérico
Caso Práctico: Predicción de precios de viviendas
Dataset de entrenamiento:
Barrio (X ): [Palermo, Palermo, Pompeya]
Precio real de venta (y ): [300k, 200k, 100k] dólares.
Paso 1: Calcular métricas del target en Train
Media Global (µglobal ): 300k+200k+100k
3 = 200k dólares.
Media del grupo Palermo (µPalermo ): 300k+200k
2 = 250k dólares.
100k
Media del grupo Pompeya (µPompeya ): 1 = 100k dólares.
Salida de Target Encoding:
ID Vivienda Categorı́a Barrio Original Valor Reemplazado (Target Encoded)
1 Palermo 250.000
2 Palermo 250.000
3 Pompeya 100.000
Universidad de Buenos Aires Feature Engineering en ML 33 / 46
CASO 4: Frequency Encoding & Rare Label Grouping - Teorı́a
Concepto de Dos Etapas
Etapa 1 (Rare Label Grouping): Identificar categorı́as con frecuencias menores a un umbral mı́nimo
(ej. < 5 %) y agruparlas bajo la etiqueta unificada Otros.
Etapa 2 (Frequency Encoding): Reemplazar cada categorı́a por su frecuencia de aparición relativa en
el conjunto de entrenamiento total.
Ventajas:
1 Estructura una representación compacta de una sola columna sin aumentar dimensiones.
2 Proporciona información valiosa sobre la popularidad o escasez del dato a modelos basados en árboles
de decisión.
Universidad de Buenos Aires Feature Engineering en ML 34 / 46
CASO 4: Frequency Encoding & Rare Label Grouping - Ejemplo
Caso Práctico: Paı́ses de origen de Clientes
Datos crudos: X = [AR, AR, AR, UY, UY, NZ] (Total = 6 registros).
Paso 1: Agrupar etiquetas raras (< 20 % de frecuencia)
Frecuencias iniciales: AR (50 %), UY (33.3 %), NZ (16.7 %).
Como NZ representa menos del 20 %, se agrupa y se renombra a Otros.
Paso 2: Calcular frecuencias relativas del nuevo grupo transformado
Fila Categorı́a Original Grupo Corregido Valor Transformado
1 AR AR 0.50
2 AR AR 0.50
3 AR AR 0.50
4 UY UY 0.33
5 UY UY 0.33
6 NZ Otros 0.17
Universidad de Buenos Aires Feature Engineering en ML 35 / 46
CASO 5: Imputación Categórica Probabilı́stica - Teorı́a
Concepto
Relleno de valores nulos categóricos realizando un muestreo aleatorio ponderado basado de forma
exacta en las proporciones y frecuencias observadas en esa variable.
¿Por qué no usar la Moda?: Imputar siempre por la categorı́a más frecuente (Moda) altera
severamente la distribución natural del dataset, sobrerrepresentando artificialmente la clase
dominante.
Beneficio: Respeta la diversidad real y las proporciones de la población de datos observados válidos.
Universidad de Buenos Aires Feature Engineering en ML 36 / 46
CASO 5: Imputación Categórica Probabilı́stica - Ejemplo
Caso Práctico: Métodos de Pago en E-commerce
Medios de pago observados: X = [Efectivo, Efectivo, Efectivo, Efectivo, Tarjeta, NaN, NaN].
Paso 1: Extraer pesos probabilı́sticos de los datos válidos
Total de observados válidos = 5 casos.
Probabilidad de Efectivo: 4/5 = 80 %.
Probabilidad de Tarjeta: 1/5 = 20 %.
Paso 2: Muestreo probabilı́stico ponderado para los dos NaN
Ejecutando el muestreo aleatorio sistemático:
Muestreo 1 (NaN 1) → Sale elegido Efectivo (con 80 % de chance).
Muestreo 2 (NaN 2) → Sale elegido Tarjeta (con 20 % de chance).
Vector Final Resultante: [Efectivo, Efectivo, Efectivo, Efectivo, Tarjeta, Efectivo, Tarjeta].
Universidad de Buenos Aires Feature Engineering en ML 37 / 46
La Maldición de la Dimensionalidad
El Peligro de Crear Variables sin Control
Agregar excesiva cantidad de variables (features) al azar sin un riguroso análisis genera un crecimiento
exponencial del volumen de espacio necesario para hallar patrones estadı́sticos válidos.
Consecuencias Técnicas directas
El modelo “memoriza” ruido circunstancial perdiendo capacidad de generalización (Overfitting).
El costo computacional de cálculo matemático del algoritmo escala de manera prohibitiva.
Universidad de Buenos Aires Feature Engineering en ML 38 / 46
Estrategias Prácticas de Selección de Features
¿Por qué seleccionar variables?
Eliminar redundancia, acelerar el tiempo de entrenamiento, mitigar la maldición de la dimensionalidad y
facilitar la interpretabilidad del modelo por el negocio.
Filtros (Filter Methods): Evaluación estadı́stica univariada de la relación Variable-Target (ej.
Correlación de Pearson, Chi-Cuadrado, Mutual Information).
Pro: Extremadamente rápidos computacionalmente.
Contra: Ignoran interacciones complejas de variables combinadas.
Envolventes (Wrapper Methods): Algoritmos iterativos que evalúan subconjuntos de variables
entrenando el modelo (ej. RFE - Recursive Feature Elimination).
Pro: Captura interacciones óptimas para ese estimador especı́fico.
Contra: Muy lentos y con alto riesgo de sobreajuste (overfitting).
Integrados (Embedded Methods): La selección ocurre de forma nativa durante el entrenamiento
del modelo (ej. Regularización Lasso L1).
Universidad de Buenos Aires Feature Engineering en ML 39 / 46
Selección de Features Integrada: El Caso de Lasso (L1)
¿Cómo funciona la penalización L1?
Suma el valor absoluto de los pesos (coeficientes) a la función de costo. Esto fuerza matemáticamente a
que los coeficientes de las variables menos relevantes se reduzcan exactamente a cero (wj = 0).
d
X
LLasso = MSE + α |wj |
j=1
Ejemplo de Coeficientes Obtenidos aplicando penalidad (α = 0,5)
Variable Predictora Coeficiente Lineal Original (wOLS ) Coeficiente Lasso (wL1 )
Monto Transaccionado 12,4 8,1 (Se reduce la magnitud)
Edad del Cliente −3,2 0,0 (¡Variable Eliminada!)
Historial de Deudas −25,1 −21,3 (Conserva su fuerza)
Universidad de Buenos Aires Feature Engineering en ML 40 / 46
La Técnica del “Canarito” (Canary / Shadow Features)
¿Qué es un Canarito?
Es una variable sintética artificial que contiene únicamente ruido aleatorio puro. Se inyecta
deliberadamente en la matriz de diseño original antes de entrenar un modelo basado en árboles
(Random Forest, XGBoost, LightGBM).
¿Por qué se llama ası́?
Evoca a los canarios que los antiguos mineros de
carbón llevaban bajo tierra. Como el ave es
extremadamente sensible a los gases tóxicos, si el Canarito
Ruido ∼ U(0, 1)
canario morı́a, los mineros sabı́an que la atmósfera
era inhabitable y debı́an evacuar de inmediato.
El Principio de Selección de Variables
Si una variable real aporta menos importancia al modelo predictivo que un “canarito” (que es ruido
puro y no tiene relación alguna con el target), esa variable real es inservible y debe ser descartada.
Universidad de Buenos Aires Feature Engineering en ML 41 / 46
El “Canarito” en Acción: Filtrado de Variables
Caso Práctico: Importancia de Variables en LightGBM
Supongamos que inyectamos en nuestro dataset una variable aleatoria uniforme llamada
canarito ruido y entrenamos un clasificador.
Variable de Entrada Importancia Relativa (Gain) Decisión Metodológica
Saldo en Cuenta Corriente 100 % CONSERVAR (Señal robusta)
Cantidad de Transacciones 78 % CONSERVAR (Señal robusta)
canarito ruido (Sintético) 12 % Umbral de Ruido (Lı́nea de Muerte)
Edad del Cliente 9% ELIMINAR (Peor que el ruido puro)
Cantidad de Hijos 2% ELIMINAR (Peor que el ruido puro)
Universidad de Buenos Aires Feature Engineering en ML 42 / 46
La Interfaz de los Transformadores en Scikit-Learn
Los tres pilares de la API
Cualquier preprocesamiento en Scikit-Learn hereda de la clase base TransformerMixin. Su
funcionamiento se reduce a tres métodos fundamentales:
fit(X train): Calcula y almacena internamente los parámetros estadı́sticos sobre el conjunto de
entrenamiento (ej. el mı́nimo y máximo de cada columna, o la media µ).
transform(X): Aplica la fórmula matemática calculada sobre el set de entrada utilizando los
parámetros guardados. Se usa tanto para X train como para X test.
fit transform(X train): Atajo computacionalmente optimizado que calcula los parámetros y
devuelve la matriz transformada en un solo paso. Solo aplicable en Train.
Parámetros Aprendidos (Atributos con Guion Bajo)
Scikit-Learn guarda los parámetros calculados en variables que terminan con un guion bajo (ej:
[Link] min ). Esto nos permite inspeccionar exactamente qué aprendió el modelo de los datos
de entrenamiento.
Universidad de Buenos Aires Feature Engineering en ML 43 / 46
Implementación Práctica: MinMaxScaler Paso a Paso
Listing 2: Pipeline sin Leakage usando MinMaxScaler
from sklearn . model_selectio n import t r a i n _ t e s t _ sp l i t
from sklearn . preprocessing import MinMaxScaler
import pandas as pd
# 1. Creamos datos de juguete ( Edad de u s u a r i o s )
df = pd . DataFrame ({ ’ Edad ’: [20.0 , 30.0 , 40.0 , 50.0]})
X = df [[ ’ Edad ’ ]] # D a t a F r a m e b i d i m e n s i o n a l r e q u e r i d o
# 2. Hacemos el split i n m e d i a t o
X_train , X_test = train_tes t _ s p l i t (X , test_size =0.5 , random_state =42)
# X_train c o ntiene : [30.0 , 40.0] --> min : 30 , max : 40
# X_test c o n ti ene : [20.0 , 50.0]
# 3. A j u s t a m o s el scaler SOLO con datos de Train
scaler = MinMaxScaler ()
scaler . fit ( X_train ) # Aprende min =30 y max =40 de Train
# 4. T r a n s f o r m a m o s ambos c o n j u n t o s por s e p a r a d o usando los limites de Train
X_train_sca led = scaler . transform ( X_train ) # Output : [0.0 , 1.0]
X_test_scaled = scaler . transform ( X_test ) # Output : [ -1.0 , 2.0] !! ( C o r r e c t o )
Observá cómo en el test set el valor 50,0 escalado da 2,0 (mayor a 1). Es correcto y natural, ya que fue
transformado utilizando los lı́mites de entrenamiento (máximo 40,0).
Universidad de Buenos Aires Feature Engineering en ML 44 / 46
Cierre y Bibliografı́a Recomendada
Conclusiones
1 Primero el split, luego entrenar el transformador y transformarlo.
2 El Feature Engineering se define por la lógica comercial y de negocio.
3 Menos variables limpias valen más que cientos de variables ruidosas correlacionadas.
Bibliografı́a
Feature Engineering for Machine Learning - Alice Zheng & Amanda Casari (O’Reilly).
Feature Engineering and Selection - Max Kuhn & Kjell Johnson (CRC Press).
Universidad de Buenos Aires Feature Engineering en ML 45 / 46
¿Preguntas?
¡Gracias!
Universidad de Buenos Aires Feature Engineering en ML 46 / 46