Interacción entre Variables

Escrito por

en

En muchos problemas de Machine Learning, el efecto de una variable sobre la variable objetivo no depende únicamente de sus valores individuales, sino también de cómo se relaciona con otras variables del conjunto de datos. Existen situaciones en las que dos o más características, analizadas por separado, aportan poca información, pero al combinarse revelan patrones altamente predictivos.

La interacción entre variables es una de las técnicas más importantes dentro de la Ingeniería de Características porque permite capturar relaciones complejas que muchos algoritmos no son capaces de identificar automáticamente. Su correcta aplicación puede incrementar significativamente la capacidad predictiva de un modelo sin necesidad de utilizar algoritmos más complejos.

¿Qué es la interacción entre variables?

La interacción entre variables consiste en crear nuevas características que representan la combinación de dos o más variables originales con el objetivo de capturar relaciones conjuntas que no son evidentes cuando las variables se analizan de manera independiente. La idea fundamental es que el impacto de una variable puede depender del valor de otra.

Por ejemplo, en un problema de ventas:

PrecioPublicidadVentas
BajoAltaMuy altas
BajoBajaMedias
AltoAltaAltas
AltoBajaMuy bajas

Observamos que el efecto del precio depende del nivel de publicidad y viceversa. Analizar ambas variables por separado podría ocultar parte de esta relación.

¿Por qué son importantes las interacciones?

Muchos fenómenos reales están gobernados por relaciones combinadas entre variables. Algunos ejemplos:

  • La edad y el nivel de ingresos pueden influir conjuntamente en la capacidad de compra.
  • La temperatura y la humedad afectan simultáneamente la sensación térmica.
  • El precio y los descuentos determinan el comportamiento de compra.
  • La experiencia laboral y la formación académica pueden influir conjuntamente en el salario.

Las interacciones permiten representar estas relaciones dentro de los datos para que el modelo pueda aprenderlas.

¿Cómo funciona la interacción entre variables?

La técnica consiste en generar nuevas características derivadas a partir de combinaciones matemáticas o lógicas entre variables existentes.

Generalmente el proceso sigue estos pasos:

  1. Analizar las variables disponibles.
  2. Identificar relaciones potenciales entre ellas.
  3. Crear nuevas características combinadas.
  4. Evaluar si mejoran el rendimiento del modelo.
  5. Seleccionar las interacciones más relevantes.

Las nuevas variables generadas se incorporan al conjunto de datos y son utilizadas durante el entrenamiento del modelo.

Tipos de interacciones entre variables

Existen múltiples formas de generar interacciones.

  • Producto entre variables: Es la interacción más utilizada.
  • Cociente entre variables: permite representar proporciones o ratios. Por ejemplo en ingresos/gastos para representar el coste
  • Diferencia entre variables: permite capturar brechas o variaciones. Por ejemplo la amplitud entre una variable mínima y otra máxima
  • Suma de variables: En algunos casos la combinación aditiva tiene significado práctico. Ejemplo: calcular las ventas totales.
  • Interacciones categóricas: También pueden combinarse variables categóricas.

Beneficios de la interacción entre variables

La generación de interacciones ofrece numerosas ventajas.

  • Permite capturar relaciones complejas.
  • Incrementa la capacidad predictiva.
  • Facilita el aprendizaje de modelos lineales.
  • Mejora la representación de los datos.
  • Puede descubrir patrones ocultos.
  • Aumenta el poder explicativo de ciertas variables.
  • Reduce la necesidad de algoritmos más complejos.

En muchos casos, una buena interacción puede aportar más valor que añadir nuevas variables.

¿Cuándo utilizar interacciones entre variables?

Es recomendable considerar esta técnica cuando:

  • Existen relaciones conocidas entre variables.
  • Se trabaja con modelos lineales.
  • El rendimiento del modelo es limitado.
  • Se dispone de conocimiento del dominio.
  • Se buscan patrones complejos.
  • El dataset tiene un número moderado de variables.

Resulta especialmente útil cuando las variables tienen significado conjunto desde el punto de vista del negocio.

Ventajas y desventajas

VentajasDesventajas
Captura relaciones complejasPuede aumentar la dimensionalidad
Mejora la precisión del modeloIncrementa el riesgo de sobreajuste
Facilita el aprendizaje en modelos linealesAlgunas interacciones carecen de significado
Puede descubrir patrones ocultosAumenta el tiempo de entrenamiento
Aprovecha mejor la información disponibleRequiere validación adicional

Limitaciones

Aunque es una técnica muy poderosa, presenta ciertas limitaciones.

  • El número de posibles interacciones crece rápidamente.
  • Puede generar miles de nuevas variables.
  • No todas las combinaciones son útiles.
  • Algunas interacciones introducen ruido.
  • Puede aumentar el consumo de memoria.
  • Incrementa la complejidad del modelo.
  • Requiere validación para evitar sobreajuste.

Por ello, es importante combinar esta técnica con métodos de selección de características.

Interacciones y modelos de Machine Learning

No todos los algoritmos manejan las interacciones de la misma manera.

AlgoritmoNecesita Interacciones Explícitas
Regresión Lineal
Regresión Logística
KNNPuede beneficiarse
SVM Lineal
Árboles de DecisiónNo necesariamente
Random ForestGeneralmente no
XGBoostGeneralmente no
LightGBMGeneralmente no
Redes NeuronalesPuede aprenderlas automáticamente

Los modelos lineales suelen beneficiarse enormemente de la creación manual de interacciones. Los algoritmos basados en árboles y redes neuronales suelen aprender muchas de estas relaciones de forma automática.

Aplicaciones en Data Science y Machine Learning

Las interacciones entre variables aparecen en prácticamente todos los sectores. Algunas aplicaciones incluyen:

  • Predicción de precios inmobiliarios.
  • Scoring crediticio.
  • Detección de fraude.
  • Marketing digital.
  • Predicción de ventas.
  • Sistemas de recomendación.
  • Analítica turística.
  • Diagnóstico médico.
  • Mantenimiento predictivo.
  • Recursos humanos.
  • Análisis financiero.
  • Comercio electrónico.

Son especialmente útiles cuando las decisiones dependen de múltiples factores simultáneamente.

Implementación básica en Python

Crear una interacción mediante multiplicación

import pandas as pd

df = pd.DataFrame({
    'edad': [25, 35, 45],
    'ingresos': [20000, 40000, 60000]
})

df['edad_ingresos'] = (
    df['edad'] * df['ingresos']
)

print(df)

Crear una interacción mediante división

import pandas as pd

df = pd.DataFrame({
    'ingresos': [3000, 5000, 7000],
    'gastos': [1500, 2500, 3500]
})

df['ratio_ingresos_gastos'] = (
    df['ingresos'] / df['gastos']
)

print(df)

Generar interacciones automáticamente

Scikit-Learn incluye una herramienta específica para este propósito.

from sklearn.preprocessing import PolynomialFeatures
import pandas as pd

X = pd.DataFrame({
    'x1': [1, 2, 3],
    'x2': [4, 5, 6]
})

poly = PolynomialFeatures(
    degree=2,
    interaction_only=True,
    include_bias=False
)

X_interacciones = poly.fit_transform(X)

print(X_interacciones)
[[ 1.  4.  4.]
 [ 2.  5. 10.]
 [ 3.  6. 18.]]

La tercera columna corresponde a la interacción:

x1 * x2

Obtener nombres de las variables generadas

feature_names = poly.get_feature_names_out()

print(feature_names)

Resultado:

['x1' 'x2' 'x1 x2']

Buenas prácticas

Para utilizar correctamente las interacciones entre variables se recomienda:

  • Priorizar interacciones con significado de negocio.
  • Evitar generar combinaciones indiscriminadas.
  • Evaluar el impacto mediante validación cruzada.
  • Controlar el crecimiento de la dimensionalidad.
  • Aplicar selección de características cuando sea necesario.
  • Revisar problemas de multicolinealidad.
  • Documentar las variables creadas.
  • Analizar la interpretabilidad de las nuevas características.

Conclusión

La interacción entre variables es una de las técnicas más valiosas dentro de la Ingeniería de Características. Su objetivo es representar relaciones conjuntas entre variables que pueden resultar invisibles cuando cada característica se analiza de forma independiente.

Al generar variables derivadas mediante productos, ratios, diferencias, sumas u otras combinaciones, es posible capturar patrones más complejos y mejorar significativamente el rendimiento de los modelos de Machine Learning. Aunque algunos algoritmos modernos pueden aprender estas relaciones automáticamente, la creación consciente de interacciones sigue siendo una herramienta fundamental para construir modelos más precisos, interpretables y alineados con la realidad del problema de negocio.