Autor: Fernando

  • Forecasting Global Water Storage Challenge

    Forecasting Global Water Storage Challenge

    Este proyecto documenta el desarrollo de una solución para la competición A Step Ahead of Drought: Forecasting Global Water Storage Challenge, organizada en la plataforma Zindi como parte de la iniciativa AI for Good de la International Telecommunication Union (ITU). La competición comenzará el 7 de julio de 2026, por lo que actualmente el proyecto se encuentra en fase de planificación y preparación del entorno de trabajo. Esta página se actualizará periódicamente durante todo el desarrollo del proyecto.

    Estado del proyecto

    🚧 Proyecto en desarrollo

    Última actualización: 26 de junio de 2026

    Descripción

    La predicción temprana de las sequías representa uno de los mayores desafíos actuales en el ámbito de la hidrología, la climatología y la gestión sostenible de los recursos naturales. A diferencia de otros desastres naturales, las sequías evolucionan lentamente, lo que dificulta detectar con suficiente antelación el deterioro de las reservas de agua y adoptar medidas preventivas que reduzcan su impacto sobre la agricultura, los ecosistemas, el abastecimiento de agua y la economía.

    En esta competición se propone desarrollar un modelo de Machine Learning capaz de predecir el Total Water Storage (TWS) correspondiente al mes siguiente utilizando información obtenida mediante observación satelital y variables hidrológicas relacionadas con el estado del suelo y las condiciones climáticas.

    El Total Water Storage (TWS) representa la cantidad total de agua almacenada sobre y bajo la superficie terrestre, incluyendo aguas subterráneas, humedad del suelo, nieve y aguas superficiales. Estas mediciones son obtenidas por la misión satelital GRACE de la NASA. Sin embargo, los productos oficiales presentan un retraso aproximado de entre dos y tres meses respecto al momento de adquisición, limitando su utilización para la monitorización casi en tiempo real de las condiciones hidrológicas.

    El objetivo principal consiste en construir un modelo capaz de estimar el valor futuro de TWS con un horizonte de predicción de un mes, proporcionando una herramienta que pueda contribuir a una detección más temprana de condiciones de sequía.

    Este proyecto servirá como un caso práctico de aplicación de técnicas avanzadas de Ciencia de Datos sobre un problema real de observación de la Tierra, combinando análisis espacial, series temporales y aprendizaje automático.

    Objetivos del proyecto

    Los principales objetivos que se pretenden alcanzar durante el desarrollo son:

    • Comprender la estructura y características del conjunto de datos proporcionado por la competición.
    • Analizar datos geoespaciales almacenados en formato NetCDF utilizando Python y xarray.
    • Realizar un Análisis Exploratorio de Datos (EDA) específico para variables hidrológicas y climáticas.
    • Estudiar la evolución temporal del almacenamiento total de agua.
    • Desarrollar nuevas variables mediante técnicas de Ingeniería de Características.
    • Construir diferentes modelos de regresión para la predicción del TWS.
    • Comparar distintas estrategias de validación temporal.
    • Analizar la interpretabilidad del modelo mediante técnicas de Explainable AI.
    • Documentar todo el proceso siguiendo buenas prácticas reproducibles.

    Tecnologías previstas

    Durante el desarrollo del proyecto se utilizarán principalmente las siguientes herramientas:

    • Python
    • Pandas
    • NumPy
    • Xarray
    • Scikit-learn
    • LightGBM
    • CatBoost
    • XGBoost
    • Plotly
    • Matplotlib
    • GeoPandas
    • Jupyter Notebook

    Dependiendo de los resultados obtenidos, también se evaluará la utilización de técnicas más avanzadas para modelado espacial y aprendizaje profundo.

    Metodología prevista

    El desarrollo seguirá una metodología estructurada similar a la utilizada en otros proyectos de Ciencia de Datos documentados en este sitio web.

    Las principales fases serán:

    1. Comprensión del problema.
    2. Exploración del conjunto de datos.
    3. Limpieza y preparación de los datos.
    4. Ingeniería de características.
    5. Análisis espacial y temporal.
    6. Entrenamiento de modelos de Machine Learning.
    7. Optimización de hiperparámetros.
    8. Evaluación del rendimiento.
    9. Interpretabilidad del modelo.
    10. Elaboración de la solución final.

    Cada una de estas etapas contará con su propia documentación técnica, análisis y conclusiones.

    Contenido que se irá incorporando

    A medida que avance la competición esta página se actualizará con nuevas secciones, entre las que se incluyen:

    • Introducción al conjunto de datos.
    • Exploración de las variables.
    • Análisis de valores perdidos.
    • Visualizaciones geoespaciales.
    • Análisis temporal del Total Water Storage.
    • Ingeniería de características espaciales y temporales.
    • Desarrollo de modelos base.
    • Comparativa entre algoritmos.
    • Optimización mediante búsqueda de hiperparámetros.
    • Interpretabilidad mediante SHAP.
    • Resultados obtenidos.
    • Conclusiones y trabajo futuro.

    Sobre la competición

    La competición plantea un problema de regresión a gran escala con más de dos millones de observaciones de entrenamiento. Además del rendimiento predictivo, la evaluación final considera aspectos relacionados con la transparencia, la mitigación de sesgos, la reutilización del modelo, la sostenibilidad computacional y la aplicabilidad práctica de la solución desarrollada.

    Este enfoque convierte el reto en una excelente oportunidad para aplicar técnicas modernas de Ciencia de Datos sobre un problema de gran impacto social y medioambiental.

    Estado actual

    Actualmente el proyecto se encuentra en fase de preparación.

    Las primeras tareas previstas serán:

    • Configuración del entorno de trabajo.
    • Descarga y exploración inicial del conjunto de datos.
    • Estudio de la estructura de los archivos NetCDF.
    • Diseño del flujo de trabajo para el análisis exploratorio.
    • Definición de la estrategia de validación temporal.

    Las siguientes actualizaciones se publicarán conforme avance el desarrollo del proyecto y se disponga de nuevos resultados.

    Conclusión

    Este proyecto pretende documentar de forma completa el desarrollo de una solución de Machine Learning para la predicción del almacenamiento total de agua utilizando datos de observación terrestre. Además de buscar un buen rendimiento en la competición, el objetivo es construir una solución reproducible, interpretable y bien documentada que sirva como caso práctico de aplicación de técnicas de Ciencia de Datos, análisis geoespacial y aprendizaje automático sobre un problema real con impacto ambiental.

    Esta página permanecerá en constante actualización hasta la finalización del proyecto, incorporando tanto los avances técnicos como las decisiones de diseño, experimentos y resultados obtenidos durante el desarrollo.

  • Predict H1N1 and Seasonal Flu Vaccines

    Predict H1N1 and Seasonal Flu Vaccines

    El proyecto Predict H1N1 and Seasonal Flu Vaccines tiene como objetivo desarrollar modelos de Machine Learning capaces de predecir si una persona recibirá la vacuna contra la gripe H1N1 y la vacuna contra la gripe estacional a partir de información demográfica, socioeconómica, médica y conductual.

    Este proyecto, basado en la competición de DrivenData, documenta de forma completa todas las etapas de un proyecto de Ciencia de Datos, desde el análisis exploratorio y el tratamiento de datos faltantes hasta la ingeniería de características, la construcción de modelos, la optimización de hiperparámetros y la evaluación del rendimiento mediante la métrica ROC-AUC.

    A lo largo del desarrollo se analizan en detalle los patrones de ausencia de datos, la importancia de las variables, la selección de características y las decisiones tomadas para construir un modelo robusto y reproducible, mostrando un flujo de trabajo completo aplicable a problemas reales de clasificación.

    Articulos relacionados

  • Diferencias, Porcentajes y Márgenes

    Dentro de la Ingeniería de Características (Feature Engineering), las variables derivadas permiten transformar los datos originales en nuevas características que representan mejor el fenómeno que se desea modelar. Entre las transformaciones más utilizadas se encuentran las diferencias, los porcentajes y los márgenes, tres técnicas sencillas pero muy eficaces para enriquecer un conjunto de datos.

    Aunque comparten el objetivo de generar información adicional a partir de variables existentes, cada una responde a necesidades distintas:

    • Las diferencias permiten medir cambios absolutos
    • Los porcentajes expresan relaciones proporcionales
    • Los márgenes cuantifican la ganancia o la diferencia entre ingresos y costes.

    Estas transformaciones aparecen con frecuencia en problemas relacionados con finanzas, marketing, comercio electrónico, industria y analítica empresarial.

    ¿Qué son las diferencias, los porcentajes y los márgenes?

    Las tres son variables derivadas construidas mediante operaciones matemáticas sencillas sobre una o varias variables originales.

    • Diferencias: miden el cambio absoluto entre dos valores.
    • Porcentajes: expresan una relación proporcional respecto a un valor de referencia.
    • Márgenes: representan la diferencia entre ingresos y costes, ya sea en valores absolutos o relativos.

    Aunque sus cálculos son simples, suelen aportar información mucho más útil que las variables originales.

    ¿Por qué son importantes?

    Los modelos de Machine Learning suelen obtener mejores resultados cuando trabajan con variables que representan relaciones significativas en lugar de valores aislados.

    Por ejemplo:

    • El beneficio aporta más información que conocer únicamente las ventas.
    • El porcentaje de conversión es más representativo que el número absoluto de clientes.
    • La diferencia entre temperaturas máxima y mínima puede describir mejor un fenómeno meteorológico que ambas variables por separado.

    Estas transformaciones permiten incorporar conocimiento del dominio directamente al conjunto de datos.

    ¿Cómo funcionan?

    Las tres técnicas parten de variables ya existentes.

    El proceso habitual consiste en:

    1. Identificar variables relacionadas.
    2. Aplicar la operación matemática correspondiente.
    3. Crear una nueva característica.
    4. Validar que la nueva variable aporte información útil.
    5. Incorporarla al modelo de Machine Learning.

    Aunque el procedimiento es sencillo, la selección de variables debe responder a una lógica de negocio o del problema analizado.

    Diferencias

    Las diferencias representan el cambio absoluto entre dos valores. Su fórmula general es:

    $$\text{Diferencia}=Valor_1-Valor_2$$

    Otro ejemplo habitual es la diferencia entre dos momentos temporales.

    Temperatura MáximaTemperatura Mínima
    28 °C18 °C

    Resultado:

    Amplitud Térmica
    10 °C

    Porcentajes

    Los porcentajes representan la proporción de una variable respecto a otra. Su fórmula es:

    $$
    \text{Porcentaje}=
    \frac{Parte}{Total}\times100
    $$

    Permiten comparar observaciones independientemente de su tamaño.

    Ejemplo

    Clientes TotalesClientes Nuevos
    50075

    Resultado:

    Porcentaje Nuevos
    15 %

    Este tipo de variables aparece constantemente en análisis de negocio.

    Márgenes

    Los márgenes representan la diferencia entre ingresos y costes. Pueden expresarse de dos formas.

    Margen absoluto

    $$
    Margen=
    Ingresos-Costes
    $$

    Ejemplo:

    VentasCostes
    50.000 €32.000 €

    Resultado:

    18.000 €

    Margen porcentual

    $$
    Margen=
    \frac{Beneficio}{Ventas}\times100
    $$

    Resultado:

    36 %

    Este indicador resulta especialmente útil para comparar empresas o productos con diferentes niveles de ventas.

    Comparación entre las tres técnicas

    TécnicaQué mideUnidad
    DiferenciasCambio absolutoMisma unidad de la variable
    PorcentajesProporción respecto al totalPorcentaje (%)
    MárgenesGanancia o rentabilidadValor absoluto o porcentaje

    Cada técnica responde a necesidades distintas y puede utilizarse de forma complementaria.

    Ejemplos de aplicación

    Análisis financiero

    Variables originales:

    VentasCostes
    120.000 €90.000 €

    Variables derivadas:

    • Diferencia: 30.000 €
    • Margen: 25 %

    Marketing digital

    Variables originales:

    ImpresionesClics
    50.0002.500

    Variable derivada:

    • Porcentaje de clics (CTR): 5 %

    Recursos humanos

    Variables originales:

    Salario ActualSalario Anterior
    2.300 €2.100 €

    Variable derivada:

    • Diferencia salarial: 200 €

    Beneficios

    La utilización de estas variables derivadas aporta numerosas ventajas.

    • Resumen información relevante.
    • Facilitan la interpretación.
    • Mejoran la representación de los datos.
    • Eliminan parte del efecto del tamaño absoluto.
    • Capturan relaciones entre variables.
    • Incorporan conocimiento del dominio.
    • Pueden mejorar el rendimiento de modelos predictivos.

    En muchos casos, estas nuevas características resultan más informativas que las variables originales.

    ¿Cuándo utilizar estas técnicas?

    Su utilización es recomendable cuando:

    • Existen relaciones claras entre variables.
    • Se desea comparar entidades de distinto tamaño.
    • Se trabaja con indicadores financieros.
    • Se analizan cambios temporales.
    • Se necesita medir productividad o eficiencia.
    • Se desarrollan indicadores de negocio.

    Son especialmente útiles cuando el comportamiento relativo tiene más importancia que los valores absolutos.

    Ventajas y desventajas

    VentajasDesventajas
    Muy fáciles de calcularNo siempre aportan información adicional
    Fácil interpretaciónPueden generar redundancia con otras variables
    Mejoran algunos modelos predictivosLos porcentajes requieren controlar divisiones por cero
    Incorporan conocimiento del negocioLos márgenes dependen del contexto empresarial
    Reducen la dependencia de los valores absolutosAlgunas diferencias pueden ser poco representativas

    Limitaciones

    Aunque son transformaciones muy utilizadas, presentan algunas limitaciones.

    • No todas las diferencias tienen significado práctico.
    • Los porcentajes pueden producir valores indefinidos cuando el denominador es cero.
    • Los márgenes solo son aplicables cuando existe una relación entre ingresos y costes.
    • Algunas variables derivadas pueden estar altamente correlacionadas.
    • En determinados problemas pueden resultar insuficientes para representar relaciones complejas.

    Por ello, suelen combinarse con otras técnicas de Ingeniería de Características.

    Comparación con otras variables derivadas

    TécnicaComplejidadAplicaciones
    DiferenciasBajaCambios absolutos
    PorcentajesBajaProporciones
    MárgenesBajaRentabilidad
    RatiosMediaRelaciones entre variables
    Tasas de crecimientoMediaEvolución temporal
    Índices compuestosAltaVariables sintéticas

    Estas técnicas representan un primer nivel de Ingeniería de Características y suelen utilizarse como base para transformaciones más avanzadas.

    Aplicaciones en Data Science y Machine Learning

    Las diferencias, porcentajes y márgenes aparecen en numerosos dominios.

    Algunas aplicaciones incluyen:

    • Predicción de ventas.
    • Scoring crediticio.
    • Detección de fraude.
    • Marketing digital.
    • Comercio electrónico.
    • Análisis financiero.
    • Recursos humanos.
    • Analítica deportiva.
    • Salud.
    • Industria.
    • Turismo y hotelería.
    • Business Intelligence.

    En todos estos ámbitos permiten construir variables con un elevado significado práctico.

    Implementación en Python

    Crear una diferencia

    import pandas as pd
    
    df = pd.DataFrame({
        'ventas': [120000, 95000],
        'costes': [90000, 70000]
    })
    
    df['beneficio'] = (
        df['ventas'] -
        df['costes']
    )
    
    print(df)
    

    Resultado:

       ventas  costes  beneficio
    0  120000   90000      30000
    1   95000   70000      25000

    Calcular diferencias temporales

    df = pd.DataFrame({
        'ventas': [100, 120, 135, 150]
    })
    
    df['diferencia'] = (
        df['ventas']
          .diff()
    )
    
    print(df)
    

    Resultado:

       ventas  diferencia
    0     100         NaN
    1     120        20.0
    2     135        15.0
    3     150        15.0

    Crear un porcentaje

    df = pd.DataFrame({
        'clientes': [500, 800],
        'clientes_nuevos': [75, 120]
    })
    
    df['porcentaje_nuevos'] = (
        df['clientes_nuevos'] /
        df['clientes']
    ) * 100
    
    print(df)
    

    Evitar divisiones por cero

    import numpy as np
    
    df['porcentaje'] = np.where(
        df['clientes'] != 0,
        (
            df['clientes_nuevos'] /
            df['clientes']
        ) * 100,
        np.nan
    )
    

    Calcular un margen absoluto

    df = pd.DataFrame({
        'ventas': [80000, 120000],
        'costes': [50000, 90000]
    })
    
    df['margen'] = (
        df['ventas'] -
        df['costes']
    )
    

    Calcular un margen porcentual

    df['margen_pct'] = (
        df['margen'] /
        df['ventas']
    ) * 100
    

    Crear varias variables derivadas simultáneamente

    df = pd.DataFrame({
        'ventas': [100000],
        'costes': [70000],
        'clientes': [500],
        'clientes_nuevos': [60]
    })
    
    df['beneficio'] = df['ventas'] - df['costes']
    
    df['margen_pct'] = (
        df['beneficio'] /
        df['ventas']
    ) * 100
    
    df['porcentaje_nuevos'] = (
        df['clientes_nuevos'] /
        df['clientes']
    ) * 100
    

    Buenas prácticas

    Para utilizar correctamente estas variables derivadas se recomienda:

    • Seleccionar variables con una relación lógica clara.
    • Controlar las divisiones por cero antes de calcular porcentajes o márgenes relativos.
    • Analizar la distribución de las nuevas variables.
    • Validar su contribución al rendimiento del modelo.
    • Documentar las fórmulas utilizadas.
    • Evitar crear variables redundantes.
    • Incorporar estas transformaciones dentro de pipelines reproducibles.
    • Complementarlas con otras técnicas de Ingeniería de Características cuando el problema lo requiera.

    Conclusión

    Las diferencias, los porcentajes y los márgenes constituyen algunas de las transformaciones más sencillas y, al mismo tiempo, más útiles dentro de la Ingeniería de Características. A partir de operaciones matemáticas básicas es posible generar variables que describen cambios absolutos, relaciones proporcionales o indicadores de rentabilidad, aportando una representación más rica y significativa de los datos.

    Aunque su implementación es relativamente simple, estas variables suelen desempeñar un papel importante en modelos de Machine Learning orientados a problemas de negocio, análisis financiero, marketing o series temporales. Utilizadas de forma adecuada y combinadas con otras técnicas de Ingeniería de Características, permiten enriquecer los conjuntos de datos y mejorar tanto la capacidad predictiva como la interpretabilidad de los modelos.

  • Índices Compuestos

    En numerosos proyectos de Data Science, una única variable no es suficiente para describir un fenómeno complejo. Conceptos como el riesgo financiero, la satisfacción de un cliente, el rendimiento académico o el estado de salud dependen de múltiples factores que interactúan entre sí. Analizar estas variables de forma individual puede dificultar la interpretación y limitar la capacidad predictiva de los modelos.

    Los índices compuestos son una técnica de Ingeniería de Características que permite combinar varias variables en una única característica sintética capaz de representar un concepto complejo de forma más compacta y significativa. Estos índices facilitan el análisis, reducen la dimensionalidad y, en muchos casos, mejoran el rendimiento de los modelos de Machine Learning.

    Su utilización es habitual en áreas como la economía, las finanzas, la medicina, el marketing, la industria y las ciencias sociales, donde es necesario resumir información procedente de múltiples indicadores.

    ¿Qué son los índices compuestos?

    Un índice compuesto es una variable derivada creada mediante la combinación de dos o más variables relacionadas con el objetivo de representar un concepto o dimensión que no puede medirse directamente mediante una única característica.

    A diferencia de un ratio, que relaciona dos variables mediante una división, un índice compuesto integra múltiples indicadores en una sola medida.

    Por ejemplo, para medir el riesgo de un cliente podrían combinarse las siguientes variables:

    EdadIngresosEndeudamientoHistorial de Pagos
    4545.000 €35 %Bueno

    Estas variables podrían utilizarse para construir un Índice de Riesgo Crediticio, que resuma el perfil del cliente en una única puntuación.

    ¿Por qué son importantes?

    Muchos fenómenos del mundo real son multidimensionales y no pueden describirse adecuadamente mediante una sola variable.

    Por ejemplo:

    • La calidad de vida depende de ingresos, educación, salud y seguridad.
    • El rendimiento de un empleado depende de productividad, puntualidad, calidad del trabajo y satisfacción del cliente.
    • El riesgo financiero depende de ingresos, deudas, patrimonio y comportamiento de pago.

    Los índices compuestos permiten sintetizar toda esta información en una única variable con mayor capacidad explicativa.

    ¿Cómo funcionan los índices compuestos?

    El proceso consiste en combinar varias variables mediante una regla matemática previamente definida. Generalmente incluye los siguientes pasos:

    1. Seleccionar las variables relevantes.
    2. Normalizar o estandarizar las variables si poseen escalas diferentes.
    3. Definir la importancia o peso de cada variable.
    4. Combinar las variables mediante una fórmula.
    5. Validar que el índice represente adecuadamente el fenómeno estudiado.

    El resultado es una nueva característica que resume la información contenida en varias variables originales.

    Componentes de un índice compuesto

    La mayoría de los índices compuestos incluyen tres elementos fundamentales.

    • Variables de entrada: Son las características originales utilizadas para construir el índice. Ejemplo: ingresos, endeudamiento, historial crediticio.
    • Normalización: Permite llevar todas las variables a una escala comparable. Algunas técnicas habituales son:
      • Min-Max Scaling.
      • Estandarización (Standard Scaling).
      • Escalado robusto.
      • Normalización por percentiles.
    • Método de agregación: Consiste en combinar las variables mediante una regla matemática. Puede utilizarse:
      • Suma.
      • Promedio.
      • Promedio ponderado.
      • Funciones matemáticas específicas.
      • Métodos estadísticos.

    Tipos de índices compuestos

    Existen diferentes formas de construir un índice compuesto.

    • Promedio simple: Todas las variables tienen la misma importancia.

    $$
    Índice=
    \frac{X_1+X_2+X_3}{3}
    $$

    • Promedio ponderado: Cada variable recibe un peso diferente. Es el método más utilizado en aplicaciones reales.

    $$
    Índice=
    0.5X_1+
    0.3X_2+
    0.2X_3
    $$

    • Índices basados en puntuaciones: Cada variable se transforma previamente en una puntuación común. Ejemplo:
    VariablePuntuación
    Ingresos80
    Endeudamiento60
    Historial95

    Índice final: 78.3

    • Índices basados en componentes principales: Se construyen utilizando técnicas como el Análisis de Componentes Principales (PCA) para resumir múltiples variables en una o varias componentes sintéticas. Este enfoque es especialmente útil cuando existe una fuerte correlación entre las variables.

    Ejemplos de índices compuestos

    Índice de salud

    PresiónIMCGlucosa
    1202490

    El índice resume el estado general de salud del paciente.

    Índice de satisfacción

    AtenciónCalidadTiempo de Espera
    987

    Se obtiene una puntuación global de satisfacción.

    Índice financiero

    LiquidezRentabilidadSolvencia
    1.812 %2.5

    El índice representa la salud financiera de la empresa.

    Beneficios de los índices compuestos

    La utilización de índices compuestos aporta numerosas ventajas.

    • Resumen múltiples variables en una sola.
    • Facilitan la interpretación.
    • Reducen la dimensionalidad.
    • Incorporan conocimiento del dominio.
    • Mejoran la representación de fenómenos complejos.
    • Pueden incrementar la capacidad predictiva.
    • Simplifican el análisis exploratorio.

    En muchos modelos, un índice compuesto puede aportar más información que las variables individuales por separado.

    ¿Cuándo utilizar índices compuestos?

    Es recomendable utilizarlos cuando:

    • Existen múltiples variables relacionadas.
    • Se desea representar un concepto abstracto.
    • Hay variables altamente correlacionadas.
    • Se busca simplificar el modelo.
    • Se requiere construir indicadores de negocio.
    • Se pretende mejorar la interpretabilidad.

    Son especialmente útiles cuando varias variables describen distintas dimensiones del mismo fenómeno.

    Ventajas y desventajas

    VentajasDesventajas
    Reducen la dimensionalidadRequieren definir una fórmula adecuada
    Facilitan la interpretaciónUna mala ponderación puede introducir sesgos
    Integran múltiples indicadoresPueden ocultar información individual
    Incorporan conocimiento del negocioLa construcción puede ser subjetiva
    Mejoran algunos modelos predictivosRequieren validación continua

    Limitaciones

    Aunque son una herramienta muy potente, presentan algunas limitaciones.

    • La elección de los pesos puede ser subjetiva.
    • Un índice mal diseñado puede perder información importante.
    • Es posible introducir correlaciones artificiales.
    • Algunas variables requieren normalización previa.
    • No existe una fórmula universal válida para todos los problemas.
    • Los índices deben actualizarse cuando cambian las condiciones del negocio.

    Por ello, su construcción debe apoyarse en criterios estadísticos y conocimiento del dominio.

    Índices compuestos vs ratios

    Índices CompuestosRatios
    Combinan múltiples variablesRelacionan dos variables
    Representan conceptos complejosRepresentan proporciones
    Suelen requerir normalizaciónNormalmente no requieren normalización
    Pueden utilizar ponderacionesGeneralmente utilizan una única división
    Reducen la dimensionalidadMantienen una relación directa entre dos variables

    Ambas técnicas son complementarias y pueden utilizarse conjuntamente en un mismo proyecto.

    Índices compuestos y Machine Learning

    El impacto depende del algoritmo utilizado.

    AlgoritmoBeneficio Potencial
    Regresión LinealAlto
    Regresión LogísticaAlto
    K-Nearest Neighbors (KNN)Moderado
    Support Vector Machine (SVM)Alto
    Árboles de DecisiónModerado
    Random ForestModerado
    XGBoostModerado
    LightGBMModerado
    Redes NeuronalesVariable

    Los índices compuestos suelen ser especialmente útiles cuando condensan información relevante procedente de múltiples variables correlacionadas.

    Aplicaciones en Data Science y Machine Learning

    Los índices compuestos tienen aplicaciones en numerosos sectores.

    Algunas de las más habituales son:

    • Scoring crediticio.
    • Evaluación del riesgo financiero.
    • Diagnóstico médico.
    • Segmentación de clientes.
    • Predicción de abandono de clientes (Churn).
    • Marketing digital.
    • Recursos humanos.
    • Educación.
    • Industria manufacturera.
    • Turismo y hotelería.
    • Economía.
    • Ciencias sociales.

    En todos estos ámbitos permiten representar conceptos complejos mediante una única variable fácilmente interpretable.

    Implementación en Python

    Crear un índice mediante promedio simple

    import pandas as pd
    
    df = pd.DataFrame({
        'calidad': [8, 7, 9],
        'servicio': [9, 8, 8],
        'precio': [7, 6, 9]
    })
    
    df['indice_satisfaccion'] = (
        df[['calidad', 'servicio', 'precio']]
        .mean(axis=1)
    )
    
    print(df)
    

    Crear un índice ponderado

    import pandas as pd
    
    df = pd.DataFrame({
        'ingresos': [80, 60, 90],
        'historial': [95, 70, 98],
        'endeudamiento': [40, 80, 35]
    })
    
    df['indice_riesgo'] = (
        0.4 * df['ingresos'] +
        0.4 * df['historial'] +
        0.2 * (100 - df['endeudamiento'])
    )
    
    print(df)
    

    En este ejemplo, el endeudamiento se invierte porque un valor menor representa un menor riesgo.

    Normalizar variables antes de construir el índice

    from sklearn.preprocessing import MinMaxScaler
    
    scaler = MinMaxScaler()
    
    variables = ['ingresos', 'historial', 'endeudamiento']
    
    df[variables] = scaler.fit_transform(df[variables])
    

    La normalización evita que las variables con escalas mayores dominen el índice.

    Crear un índice mediante PCA

    from sklearn.decomposition import PCA
    
    pca = PCA(n_components=1)
    
    df['indice_pca'] = pca.fit_transform(
        df[['ingresos', 'historial', 'endeudamiento']]
    )
    

    En este caso, el índice se obtiene automáticamente a partir de la primera componente principal.

    Buenas prácticas

    Para construir índices compuestos de calidad se recomienda:

    • Seleccionar variables que representen el mismo concepto.
    • Normalizar las variables cuando utilicen escalas distintas.
    • Justificar los pesos asignados mediante criterios estadísticos o conocimiento del dominio.
    • Evitar incluir variables redundantes.
    • Validar el comportamiento del índice mediante análisis exploratorio.
    • Evaluar su impacto sobre el modelo mediante validación cruzada.
    • Documentar claramente la fórmula utilizada.
    • Revisar periódicamente el índice para garantizar que continúa representando adecuadamente el fenómeno analizado.

    Conclusión

    Los índices compuestos constituyen una técnica de Ingeniería de Características que permite sintetizar múltiples variables en una única característica representativa de un concepto complejo. Mediante la combinación de indicadores relacionados, es posible reducir la dimensionalidad, facilitar la interpretación de los datos y enriquecer la información disponible para los modelos de Machine Learning.

    Su utilización es especialmente frecuente en problemas donde intervienen múltiples dimensiones, como el riesgo financiero, la satisfacción del cliente, la salud o el rendimiento organizacional. Aunque su construcción requiere una cuidadosa selección de variables, una adecuada normalización y una definición justificada de los pesos, los índices compuestos pueden convertirse en variables altamente informativas y contribuir de forma significativa a mejorar la capacidad predictiva y la interpretabilidad de los modelos analíticos.

  • Tasas de Crecimiento

    Las variables temporales contienen una gran cantidad de información sobre la evolución de un fenómeno a lo largo del tiempo. Sin embargo, en muchos casos los valores absolutos no reflejan adecuadamente la dinámica de cambio de una variable. Dos empresas pueden registrar el mismo volumen de ventas, pero una puede estar creciendo rápidamente mientras la otra experimenta una disminución constante.

    Las tasas de crecimiento son una técnica de Ingeniería de Características que permite medir la variación relativa de una variable entre dos o más periodos. Estas nuevas características proporcionan información sobre la velocidad y dirección del cambio, convirtiéndose en variables altamente predictivas en numerosos problemas de Data Science y Machine Learning.

    Su utilización es especialmente frecuente en análisis financieros, predicción de ventas, economía, marketing, analítica web y modelos basados en series temporales.

    ¿Qué son las tasas de crecimiento?

    Una tasa de crecimiento es una variable derivada que expresa el cambio relativo de una magnitud respecto a un periodo anterior. A diferencia de una diferencia absoluta, que mide únicamente cuánto ha aumentado o disminuido un valor, la tasa de crecimiento indica qué porcentaje representa dicho cambio respecto al valor inicial.

    La fórmula más utilizada es:

    $$\text{Tasa de Crecimiento} = \frac{Valor_{actual}-Valor_{anterior}} {Valor_{anterior}} $$

    Generalmente se expresa como porcentaje:

    $$
    \text{Tasa de Crecimiento (%)} =
    \frac{Valor_{actual}-Valor_{anterior}}
    {Valor_{anterior}}
    \times100
    $$

    ¿Por qué son importantes?

    Las tasas de crecimiento permiten comparar la evolución de entidades con tamaños muy diferentes.

    Por ejemplo:

    EmpresaVentas Año 1Ventas Año 2
    A1.000.000 €1.100.000 €
    B100.000 €150.000 €

    En términos absolutos:

    • Empresa A aumenta 100.000 €.
    • Empresa B aumenta 50.000 €.

    Sin embargo:

    EmpresaCrecimiento
    A10 %
    B50 %

    Ahora resulta evidente que la empresa B presenta un crecimiento mucho mayor.

    ¿Cómo funcionan las tasas de crecimiento?

    El proceso consiste en comparar una observación con otra correspondiente a un periodo anterior. Generalmente se siguen estos pasos:

    1. Ordenar los datos cronológicamente.
    2. Seleccionar el periodo de referencia.
    3. Calcular la diferencia relativa.
    4. Crear una nueva variable con la tasa de crecimiento.
    5. Incorporar la característica al conjunto de datos.

    Tipos de tasas de crecimiento

    • Crecimiento absoluto: Representa únicamente la diferencia entre dos periodos. \( Valor_{actual}-Valor_{anterior}\)
    • Crecimiento porcentual: Expresa el cambio relativo respecto al periodo anterior. Ejemplo: de 200 a 260 creció un 30%.
    • Crecimiento interanual (Year over Year – YoY): Compara un periodo con el mismo periodo del año anterior. Ejemplo: enero de 2024 vs enero de 2025. Permite eliminar efectos estacionales.
    • Crecimiento mensual (Month over Month – MoM): Compara un mes respecto al inmediatamente anterior. Ejemplo: marzo respecto a febrero. Es muy utilizado para seguimiento operativo.
    • Variación acumulada: representa el crecimiento total experimentado durante varios periodos consecutivos. Este indicador permite evaluar la evolución global de una serie temporal sin limitarse únicamente a las variaciones entre periodos consecutivos.
    • Crecimiento compuesto anual (CAGR): El Compound Annual Growth Rate (CAGR) representa la tasa media anual de crecimiento durante varios años. Su fórmula es:

    $$
    CAGR=
    \left(
    \frac{Valor_{final}}
    {Valor_{inicial}}
    \right)^{\frac{1}{n}}-1
    $$

    donde:

    • (n) representa el número de años.

    Es ampliamente utilizado en finanzas y planificación estratégica.

    Beneficios de utilizar tasas de crecimiento

    • Capturan tendencias temporales.
    • Normalizan cambios entre entidades de distinto tamaño.
    • Mejoran la capacidad predictiva.
    • Detectan aceleraciones y desaceleraciones.
    • Facilitan comparaciones históricas.
    • Reflejan la evolución del negocio.
    • Incorporan información dinámica al modelo.

    En muchos casos, la tendencia resulta más relevante que el valor absoluto.

    ¿Cuándo utilizar tasas de crecimiento?

    • Existen datos temporales.
    • Se analizan series cronológicas.
    • Se desea estudiar tendencias.
    • Se trabaja con ventas o ingresos.
    • Se monitorizan indicadores empresariales.
    • Se desarrollan modelos de forecasting.
    • Se buscan variables derivadas temporales.

    Son especialmente útiles cuando el comportamiento a lo largo del tiempo influye en la variable objetivo.

    Ventajas y desventajas

    VentajasDesventajas
    Reflejan la evolución temporalNo pueden calcularse para la primera observación
    Eliminan el efecto del tamaño absolutoSensibles a valores iniciales pequeños
    Mejoran la interpretaciónPueden producir valores extremos
    Capturan tendenciasRequieren datos ordenados cronológicamente
    Muy útiles en forecastingSon sensibles a valores atípicos

    Limitaciones

    Aunque son ampliamente utilizadas, presentan algunas limitaciones.

    • Requieren información histórica.
    • No pueden calcularse cuando el valor anterior es cero.
    • Son sensibles a pequeñas variaciones en denominadores reducidos.
    • Pueden amplificar el efecto de valores atípicos.
    • No representan adecuadamente cambios altamente irregulares.
    • En series muy volátiles pueden generar ruido.

    Por ello, en ocasiones se combinan con medias móviles u otras técnicas de suavizado.

    Tasas de crecimiento vs diferencias absolutas

    Diferencias AbsolutasTasas de Crecimiento
    Miden cambios en unidadesMiden cambios relativos
    Dependen de la escalaIndependientes del tamaño
    Dificultan comparacionesFacilitan comparaciones
    Más fáciles de interpretarMás útiles para analizar tendencias
    No reflejan proporcionalidadExpresan variación porcentual

    Ambas medidas son complementarias y pueden utilizarse conjuntamente.

    Tasas de crecimiento y Machine Learning

    Su impacto depende del algoritmo empleado.

    AlgoritmoBeneficio Potencial
    Regresión LinealMuy alto
    Regresión LogísticaAlto
    Árboles de DecisiónAlto
    Random ForestAlto
    XGBoostMuy alto
    LightGBMMuy alto
    Redes NeuronalesAlto
    Modelos de Series TemporalesMuy alto

    Las tasas de crecimiento suelen aportar información muy valiosa porque representan la evolución temporal de las variables.

    Aplicaciones en Data Science y Machine Learning

    Las tasas de crecimiento aparecen en numerosos sectores. Algunas aplicaciones incluyen:

    • Predicción de ventas.
    • Forecasting financiero.
    • Comercio electrónico.
    • Marketing digital.
    • Analítica web.
    • Predicción de demanda.
    • Detección de abandono de clientes.
    • Economía.
    • Energía.
    • Industria manufacturera.
    • Recursos humanos.
    • Turismo y hotelería.

    En cualquier problema donde exista una dimensión temporal, las tasas de crecimiento pueden convertirse en variables altamente predictivas.

    Implementación en Python

    Calcular crecimiento porcentual

    Pandas incorpora el método pct_change(), diseñado específicamente para calcular la variación porcentual entre observaciones consecutivas.

    import pandas as pd
    
    df = pd.DataFrame({
        'ventas': [100, 120, 150, 180]
    })
    
    df['crecimiento'] = (
        df['ventas']
        .pct_change()
    )
    
    print(df)
    
       ventas  crecimiento
    0     100          NaN
    1     120     0.200000
    2     150     0.250000
    3     180     0.200000
    

    Expresar el crecimiento como porcentaje

    df['crecimiento_pct'] = (
        df['ventas']
        .pct_change() * 100
    )
    0     NaN
    1    20.0
    2    25.0
    3    20.0
    

    Calcular crecimiento respecto a varios periodos

    El parámetro periods permite comparar con observaciones anteriores distintas de la inmediatamente anterior.

    df['crecimiento_2_periodos'] = (
        df['ventas']
        .pct_change(periods=2)
    )

    Esto resulta útil para analizar tendencias de mayor plazo.

    Calcular crecimiento manualmente

    df['crecimiento_manual'] = (
        (df['ventas'] - df['ventas'].shift(1))
        / df['ventas'].shift(1)
    )

    Esta implementación muestra explícitamente la fórmula matemática utilizada.

    Calcular CAGR

    import numpy as np
    
    valor_inicial = 100
    valor_final = 180
    años = 3
    
    cagr = (
        (valor_final / valor_inicial) ** (1 / años)
    ) - 1
    
    print(f"CAGR: {cagr:.2%}")
    
    CAGR: 21.64%

    Evitar divisiones por cero

    import numpy as np
    
    df['crecimiento'] = np.where(
        df['ventas'].shift(1) != 0,
        (
            (df['ventas'] - df['ventas'].shift(1))
            / df['ventas'].shift(1)
        ),
        np.nan
    )

    Esta práctica evita errores cuando el valor del periodo anterior es igual a cero.

    Buenas prácticas

    • Ordenar siempre los datos cronológicamente antes de realizar el cálculo.
    • Verificar la calidad de las fechas y periodos.
    • Controlar divisiones por cero.
    • Analizar la presencia de valores extremos.
    • Utilizar ventanas temporales coherentes con el problema.
    • Complementar las tasas de crecimiento con variables de nivel absoluto.
    • Validar su impacto mediante validación cruzada.
    • Documentar claramente el periodo utilizado para el cálculo.

    Conclusión

    Las tasas de crecimiento constituyen una de las variables derivadas más útiles dentro de la Ingeniería de Características cuando se trabaja con datos temporales. Al medir la variación relativa entre distintos periodos, permiten capturar tendencias, aceleraciones y cambios en el comportamiento de una variable que no son evidentes a partir de los valores absolutos.

    Su aplicación es habitual en áreas como las finanzas, el marketing, el comercio electrónico, la economía y la predicción de demanda, donde la evolución temporal desempeña un papel fundamental. Aunque requieren un tratamiento cuidadoso de aspectos como el orden cronológico, los valores iniciales iguales a cero y la presencia de datos atípicos, las tasas de crecimiento pueden aportar un elevado valor predictivo y mejorar significativamente el rendimiento de los modelos de Machine Learning cuando se diseñan y validan correctamente.

  • Ratios

    En numerosos problemas de Data Science, las variables originales no siempre representan adecuadamente la información necesaria para construir modelos predictivos precisos. En muchas ocasiones, la relación entre dos variables aporta mucho más valor que sus valores individuales. Una de las formas más habituales de capturar estas relaciones consiste en crear ratios, una de las técnicas más utilizadas dentro de la Ingeniería de Características (Feature Engineering).

    Los ratios permiten expresar la proporción entre dos variables y describir comportamientos relativos en lugar de valores absolutos. Esta característica los convierte en una herramienta especialmente útil en ámbitos como las finanzas, el marketing, la salud, la industria, el comercio electrónico y la analítica empresarial.

    ¿Qué son los ratios?

    Un ratio es una variable derivada obtenida mediante la división de una variable entre otra para expresar una relación proporcional entre ambas. Su objetivo es proporcionar una medida relativa que permita comparar observaciones independientemente de su tamaño o magnitud. Matemáticamente, un ratio se expresa como:

    $$\text{Ratio}=\frac{\text{Variable A}}{\text{Variable B}}$$

    ¿Por qué son importantes?

    Los valores absolutos pueden resultar engañosos cuando se comparan entidades de distinto tamaño.

    Por ejemplo:

    EmpresaVentas
    A1.000.000 €
    B500.000 €

    A primera vista parece que la empresa A obtiene mejores resultados.

    Sin embargo:

    EmpresaVentasEmpleadosVentas por Empleado
    A1.000.000 €10010.000 €
    B500.000 €2025.000 €

    Ahora observamos que la empresa B es considerablemente más eficiente. Los ratios eliminan el efecto del tamaño y facilitan comparaciones más justas.

    ¿Cómo funcionan los ratios?

    Los ratios se construyen dividiendo dos variables relacionadas entre sí. El proceso habitual consiste en:

    1. Identificar dos variables con relación lógica.
    2. Definir cuál será el numerador y cuál el denominador.
    3. Calcular el cociente entre ambas.
    4. Incorporar el nuevo ratio al conjunto de datos.
    5. Evaluar si mejora el rendimiento del modelo.

    Es importante que exista una relación conceptual entre ambas variables para que el ratio tenga significado.

    Tipos de ratios

    • Ratios de productividad: miden el rendimiento respecto a un recurso utilizado.
    • Ratios financieros: relacionan magnitudes económicas.
    • Ratios comerciales: relacionan indicadores de ventas y marketing.
    • Ratios demográficos: relacionan poblaciones o grupos.
    • Ratios temporales: relacionan una magnitud con el tiempo.

    Beneficios de utilizar ratios

    La creación de ratios aporta numerosas ventajas.

    • Normaliza variables de distinta escala.
    • Facilita comparaciones entre entidades.
    • Reduce el efecto del tamaño absoluto.
    • Incrementa el poder predictivo de algunos modelos.
    • Resume información compleja en una única variable.
    • Facilita la interpretación de resultados.
    • Incorpora conocimiento del negocio.

    En muchos casos, un ratio resulta más informativo que las variables originales por separado.

    ¿Cuándo utilizar ratios?

    Su utilización es recomendable cuando:

    • Existen variables relacionadas entre sí.
    • Se desea eliminar el efecto del tamaño.
    • Se comparan entidades de distinta dimensión.
    • Se trabaja con indicadores de rendimiento.
    • Se buscan medidas relativas.
    • Se pretende mejorar la capacidad predictiva del modelo.

    Los ratios son especialmente útiles cuando las variables representan cantidades acumuladas o totales.

    Ventajas y desventajas

    VentajasDesventajas
    Eliminan el efecto del tamañoPueden ser inestables cuando el denominador es pequeño
    Mejoran la comparabilidadRequieren una relación lógica entre variables
    Incrementan la interpretabilidadPueden generar valores extremos
    Suelen mejorar modelos linealesNo siempre aportan información adicional
    Fácil implementaciónEs necesario controlar divisiones por cero

    Limitaciones

    Aunque los ratios son muy útiles, presentan ciertas limitaciones.

    • El denominador puede tomar valores cercanos a cero.
    • Pueden producir valores extremadamente grandes.
    • Algunas relaciones carecen de significado práctico.
    • Es posible introducir ruido si las variables no están relacionadas.
    • Algunos ratios pueden estar altamente correlacionados.
    • En ocasiones requieren transformaciones adicionales para reducir la asimetría.

    Por ello, es recomendable analizar su distribución antes de utilizarlos en un modelo.

    Ratios vs valores absolutos

    Valores absolutosRatios
    Representan cantidades totalesRepresentan relaciones entre cantidades
    Dependen del tamañoSon independientes de la escala
    Dificultan comparacionesFacilitan comparaciones
    Suelen presentar mayor variabilidadNormalizan parte de la variabilidad
    Pueden ocultar eficienciaReflejan productividad o rendimiento

    Los ratios complementan a los valores absolutos y, en muchos casos, aportan una visión más útil del fenómeno analizado.

    Ratios y Machine Learning

    El impacto de los ratios depende del algoritmo utilizado.

    AlgoritmoBeneficio Potencial
    Regresión LinealMuy alto
    Regresión LogísticaMuy alto
    K-Nearest Neighbors (KNN)Alto
    Support Vector Machine (SVM)Alto
    Árboles de DecisiónModerado
    Random ForestModerado
    XGBoostModerado
    LightGBMModerado
    Redes NeuronalesVariable

    Los modelos lineales suelen beneficiarse especialmente de los ratios, ya que estos permiten representar relaciones que el algoritmo no puede aprender automáticamente.

    Aplicaciones en Data Science y Machine Learning

    Los ratios aparecen en prácticamente todos los sectores.

    Algunas aplicaciones incluyen:

    • Scoring crediticio.
    • Detección de fraude.
    • Marketing digital.
    • Analítica web.
    • Predicción de ventas.
    • Comercio electrónico.
    • Recursos humanos.
    • Diagnóstico médico.
    • Predicción energética.
    • Analítica financiera.
    • Industria manufacturera.
    • Turismo y hotelería.

    En todos estos ámbitos, los ratios ayudan a describir el comportamiento relativo de las observaciones y suelen incrementar la capacidad predictiva de los modelos.

    Implementación en Python

    Crear un ratio simple

    import pandas as pd
    
    df = pd.DataFrame({
        'ventas': [500000, 750000, 600000],
        'empleados': [10, 15, 12]
    })
    
    df['ventas_por_empleado'] = (
        df['ventas'] / df['empleados']
    )
    
    print(df)
    
       ventas  empleados  ventas_por_empleado
    0  500000         10               50000.0
    1  750000         15               50000.0
    2  600000         12               50000.0
    

    Evitar divisiones por cero

    import numpy as np
    import pandas as pd
    
    df = pd.DataFrame({
        'ventas': [500000, 750000, 600000],
        'empleados': [10, 0, 12]
    })
    
    df['ventas_por_empleado'] = np.where(
        df['empleados'] != 0,
        df['ventas'] / df['empleados'],
        np.nan
    )
    
    print(df)
    

    Crear varios ratios simultáneamente

    df = pd.DataFrame({
        'ventas': [200000, 350000],
        'beneficio': [40000, 70000],
        'clientes': [5000, 7000]
    })
    
    df['beneficio_por_cliente'] = (
        df['beneficio'] / df['clientes']
    )
    
    df['ventas_por_cliente'] = (
        df['ventas'] / df['clientes']
    )
    
    df['margen'] = (
        df['beneficio'] / df['ventas']
    )
    
    print(df)
    

    Aplicar una transformación logarítmica

    Cuando los ratios presentan distribuciones muy asimétricas, puede ser útil aplicar una transformación logarítmica.

    import numpy as np
    
    df['log_ventas_por_empleado'] = np.log1p(
        df['ventas_por_empleado']
    )
    

    La función log1p() calcula:

    $$\log(1+x)$$

    y es adecuada para variables con valores iguales o cercanos a cero.

    Buenas prácticas

    Para utilizar ratios de forma efectiva se recomienda:

    • Crear únicamente ratios con significado de negocio.
    • Analizar la distribución de los valores generados.
    • Evitar divisiones por cero.
    • Revisar la presencia de valores extremos.
    • Comprobar la correlación con otras variables.
    • Validar su impacto mediante validación cruzada.
    • Documentar la fórmula utilizada para cada ratio.
    • Considerar transformaciones adicionales cuando exista una fuerte asimetría.

    Conclusión

    Los ratios constituyen una de las técnicas más utilizadas dentro de la Ingeniería de Características debido a su capacidad para representar relaciones proporcionales entre variables. Al expresar medidas relativas en lugar de valores absolutos, permiten comparar observaciones de distinta escala, capturar indicadores de eficiencia y enriquecer la información disponible para los modelos de Machine Learning.

    Su aplicación es especialmente relevante en ámbitos como las finanzas, el marketing, la salud o la analítica empresarial, donde los indicadores relativos suelen ser más representativos que las magnitudes absolutas. No obstante, su construcción debe realizarse con criterio, asegurando que exista una relación lógica entre las variables utilizadas y controlando aspectos como las divisiones por cero o la presencia de valores extremos. Cuando se diseñan adecuadamente, los ratios pueden convertirse en algunas de las características más valiosas de un conjunto de datos y contribuir de forma significativa a mejorar el rendimiento y la interpretabilidad de los modelos predictivos.

  • Introducción a las Variables Derivadas

    En la mayoría de los proyectos de Data Science, los datos originales rara vez contienen toda la información necesaria para construir modelos predictivos de alto rendimiento. Aunque las variables disponibles pueden describir correctamente un fenómeno, muchas veces es necesario transformarlas o combinarlas para extraer información más útil. Este proceso da lugar a las variables derivadas, una de las técnicas más importantes dentro de la Ingeniería de Características (Feature Engineering).

    Las variables derivadas permiten crear nuevas características a partir de una o varias variables existentes con el objetivo de representar mejor el problema que se desea modelar. En muchos casos, estas nuevas variables son más informativas que las originales y pueden mejorar significativamente el rendimiento de un modelo de Machine Learning.

    Este artículo introduce el concepto de variables derivadas y presenta los principales tipos de transformaciones que se utilizan en la práctica. En artículos posteriores se profundizará en cada técnica de forma individual.

    ¿Qué son las variables derivadas?

    Una variable derivada es una nueva característica creada mediante operaciones matemáticas, estadísticas, temporales o lógicas sobre una o varias variables existentes.

    A diferencia de las variables originales, que provienen directamente de la fuente de datos, las variables derivadas representan información adicional construida para facilitar el aprendizaje de los algoritmos. Por ejemplo, supongamos un conjunto de datos con las siguientes variables:

    price = [20.35, 10.15, 13.99]
    cuantity = [5, 8, 15]
    amount = price * cuantity

    En este caso, el importe total es una variable derivada obtenida multiplicando el precio por la cantidad.

    ¿Por qué son importantes?

    Los algoritmos de Machine Learning aprenden a partir de las características disponibles. Si estas no representan adecuadamente el fenómeno estudiado, el modelo tendrá dificultades para identificar patrones útiles. Las variables derivadas permiten incorporar conocimiento del dominio directamente en los datos, facilitando el aprendizaje del modelo.

    Por ejemplo:

    • La edad suele ser más útil que la fecha de nacimiento.
    • El margen de beneficio aporta más información que el precio de venta y el coste por separado.
    • La tasa de crecimiento de las ventas puede ser más relevante que el volumen absoluto de ventas.

    En muchos proyectos, una única variable derivada puede aportar más capacidad predictiva que varias variables originales.

    ¿Cómo funcionan las variables derivadas?

    El proceso consiste en transformar una o varias variables existentes para generar nuevas características que describan mejor la información disponible.

    Generalmente, el flujo de trabajo incluye:

    1. Analizar las variables originales.
    2. Identificar relaciones relevantes entre ellas.
    3. Diseñar nuevas características basadas en conocimiento del dominio.
    4. Incorporar las nuevas variables al conjunto de datos.
    5. Evaluar su impacto sobre el modelo.
    6. Conservar únicamente aquellas que aporten valor predictivo.

    Este proceso suele ser iterativo y requiere combinar conocimientos de estadística, programación y comprensión del problema de negocio.

    Principales tipos de variables derivadas

    Existen numerosas formas de generar variables derivadas. Algunas de las más utilizadas son:

    • Ratios.
    • Diferencias.
    • Porcentajes.
    • Márgenes.
    • Tasas de crecimiento.
    • Índices compuestos.
    • Variables temporales.
    • Variables agregadas.
    • Interacciones entre variables.
    • Variables polinomiales.
    • Variables binarias derivadas.
    • Variables basadas en reglas de negocio.

    Cada una de estas técnicas responde a necesidades diferentes y será desarrollada en artículos específicos.

    Tipos de operaciones utilizadas

    Las variables derivadas pueden construirse mediante diferentes operaciones.

    OperaciónEjemplo
    SumaVentas nacionales + internacionales
    RestaPrecio − Coste
    MultiplicaciónPrecio × Cantidad
    DivisiónVentas / Empleados
    PotenciasEdad²
    Logaritmoslog(Ingresos)
    Funciones temporalesMes, trimestre, día de la semana
    Condiciones lógicasCliente Premium = Sí/No

    La elección de la operación depende del problema que se desea resolver.

    Beneficios de las variables derivadas

    La creación de variables derivadas ofrece numerosas ventajas.

    • Incrementa la capacidad predictiva de los modelos.
    • Facilita la detección de patrones complejos.
    • Reduce la necesidad de algoritmos más sofisticados.
    • Incorpora conocimiento del negocio.
    • Mejora la interpretabilidad de los resultados.
    • Permite resumir información relevante.
    • Enriquece la representación de los datos.

    En muchos casos, las variables derivadas tienen un mayor poder explicativo que las variables originales.

    ¿Cuándo utilizar variables derivadas?

    Su utilización es recomendable cuando:

    • Los datos originales son poco informativos.
    • Existen relaciones conocidas entre variables.
    • Se desea incorporar conocimiento del dominio.
    • El modelo presenta bajo rendimiento.
    • Se trabaja con variables temporales.
    • Se requieren indicadores sintéticos.
    • Se busca mejorar la interpretación de los resultados.

    Las variables derivadas forman parte habitual de cualquier proceso de Ingeniería de Características.

    Ventajas y desventajas

    VentajasDesventajas
    Mejoran la representación de los datosRequieren conocimiento del dominio
    Incrementan el rendimiento predictivoPueden aumentar la dimensionalidad
    Facilitan el aprendizaje del modeloAlgunas variables pueden ser redundantes
    Permiten capturar relaciones complejasExiste riesgo de sobreajuste
    Mejoran la interpretabilidadRequieren validación continua

    Limitaciones

    Aunque son una herramienta muy potente, presentan ciertas limitaciones.

    • No todas las variables derivadas aportan información útil.
    • Un número excesivo de características puede dificultar el entrenamiento.
    • Algunas transformaciones pueden introducir ruido.
    • Es posible generar variables altamente correlacionadas.
    • Requieren evaluar continuamente su impacto sobre el modelo.
    • Un diseño inadecuado puede provocar fuga de información (Data Leakage).

    Por ello, la creación de variables derivadas debe ir acompañada de un proceso de validación y selección de características.

    Variables derivadas vs variables originales

    Variables originalesVariables derivadas
    Proceden directamente de la fuente de datosSe generan a partir de otras variables
    Representan información básicaRepresentan información enriquecida
    No requieren transformaciónRequieren operaciones matemáticas o lógicas
    Suelen ser más generalesSuelen estar orientadas al problema
    Constituyen el punto de partidaAmplían la capacidad descriptiva del conjunto de datos

    Las variables derivadas complementan, pero no sustituyen, a las variables originales.

    Variables derivadas y Machine Learning

    El impacto de las variables derivadas depende del algoritmo utilizado.

    AlgoritmoBeneficio Potencial
    Regresión LinealMuy alto
    Regresión LogísticaMuy alto
    SVMAlto
    K-Nearest Neighbors (KNN)Alto
    Árboles de DecisiónModerado
    Random ForestModerado
    XGBoostModerado
    LightGBMModerado
    Redes NeuronalesVariable

    Los modelos lineales suelen beneficiarse especialmente de una buena ingeniería de variables derivadas, ya que estas permiten capturar relaciones que el algoritmo no puede aprender por sí solo.

    Buenas prácticas

    Para crear variables derivadas de forma efectiva se recomienda:

    • Comprender el problema de negocio antes de diseñar nuevas variables.
    • Priorizar características con significado práctico.
    • Evitar generar variables redundantes.
    • Validar el impacto de cada característica mediante experimentación.
    • Controlar la multicolinealidad entre variables.
    • Automatizar el proceso mediante pipelines cuando sea posible.
    • Documentar todas las transformaciones realizadas.
    • Evitar el Data Leakage utilizando únicamente información disponible en el momento de la predicción.

    Conclusión

    Las variables derivadas constituyen uno de los pilares fundamentales de la Ingeniería de Características. Su objetivo es transformar la información disponible en representaciones más útiles para los algoritmos de Machine Learning, permitiendo capturar relaciones, patrones y comportamientos que las variables originales no reflejan de forma explícita.

    A través de operaciones matemáticas, estadísticas, temporales o lógicas, es posible generar características con un mayor poder explicativo y mejorar significativamente el rendimiento de los modelos predictivos. Sin embargo, su creación debe realizarse de forma planificada, apoyándose en el conocimiento del dominio y validando continuamente su contribución. En los siguientes artículos se abordarán en detalle las principales categorías de variables derivadas, como los ratios, las tasas de crecimiento, los márgenes y los índices compuestos, proporcionando una visión práctica de cómo utilizarlas para construir modelos más precisos y robustos.

  • Interacciones Polinomiales

    Uno de los principales desafíos en Machine Learning es representar adecuadamente las relaciones existentes entre las variables de un conjunto de datos. En muchos problemas reales, las relaciones entre las características y la variable objetivo no son lineales. Cuando esto ocurre, los modelos lineales pueden tener dificultades para capturar patrones complejos utilizando únicamente las variables originales.

    Las Interacciones Polinomiales son una técnica de Ingeniería de Características que permite generar nuevas variables a partir de combinaciones y potencias de las características existentes. Su objetivo es enriquecer la representación de los datos para que los modelos puedan aprender relaciones más complejas sin necesidad de recurrir a algoritmos más sofisticados.

    Esta técnica es especialmente útil en modelos lineales, ya que les permite aproximar comportamientos no lineales mediante una transformación adecuada del espacio de características.

    ¿Qué son las interacciones polinomiales?

    Las Interacciones Polinomiales consisten en crear nuevas características derivadas mediante:

    • Potencias de una variable.
    • Productos entre variables.
    • Combinaciones de ambas.

    Por ejemplo, si disponemos de dos variables:

    X1X2
    23

    Una transformación polinomial de grado 2 podría generar:

    X1X2X1²X2²X1·X2
    23496

    Estas nuevas características permiten representar relaciones más complejas entre las variables.

    ¿Por qué son importantes?

    Muchos fenómenos del mundo real presentan comportamientos no lineales. Por ejemplo:

    • El consumo energético no siempre crece linealmente con la temperatura.
    • El rendimiento académico puede aumentar con las horas de estudio hasta cierto punto y luego estabilizarse.
    • El precio de una vivienda puede crecer de forma no proporcional respecto a su tamaño.

    En estos casos, las variables originales pueden no ser suficientes para capturar el comportamiento real de los datos. Las interacciones polinomiales permiten modelar estas relaciones sin abandonar algoritmos lineales relativamente simples.

    ¿Cómo funcionan las interacciones polinomiales?

    La técnica consiste en transformar las variables originales generando nuevas características basadas en potencias e interacciones.

    Si tenemos una variable:

    $$X$$

    Una expansión polinomial de grado 3 produciría:

    $$X,; X^2,; X^3$$

    Si existen dos variables:

    $$X_1,; X_2$$

    Una expansión de grado 2 genera:

    $$X_1,; X_2,; X_1^2,; X_2^2,; X_1X_2$$

    A medida que aumenta el grado, también aumenta el número de características generadas.

    Componentes principales de una expansión polinomial

    Las transformaciones polinomiales suelen incluir tres tipos de términos.

    • Términos lineales: son las variables originales.
    • Términos de potencia: representan elevaciones al cuadrado, al cubo u otros exponentes.
    • Términos de interacción: representan productos entre variables.

    Grados polinomiales

    El grado define la complejidad de las nuevas características generadas.

    GradoCaracterísticas Generadas
    1Solo variables originales
    2Cuadrados e interacciones
    3Cubos e interacciones más complejas
    4 o superiorRelaciones altamente complejas

    En la práctica, los grados 2 y 3 suelen ser los más utilizados.

    Beneficios de las Interacciones Polinomiales

    Esta técnica ofrece numerosas ventajas.

    • Permite modelar relaciones no lineales.
    • Mejora el rendimiento de modelos lineales.
    • Captura interacciones entre variables.
    • Facilita la detección de patrones complejos.
    • Puede incrementar significativamente la precisión predictiva.
    • Permite construir modelos más expresivos.
    • Aprovecha mejor la información contenida en los datos.

    En muchos problemas, una simple expansión polinomial puede generar mejoras importantes sin cambiar el algoritmo utilizado.

    ¿Cuándo utilizar Interacciones Polinomiales?

    Su uso es recomendable cuando:

    • Existen relaciones no lineales.
    • Se utilizan modelos lineales.
    • El modelo presenta bajo rendimiento.
    • Se observan patrones curvos en los datos.
    • Existen dependencias entre variables.
    • Se desea aumentar la capacidad predictiva sin utilizar algoritmos más complejos.

    Son especialmente útiles en regresión y clasificación cuando los datos presentan comportamientos complejos.

    Ventajas y desventajas

    VentajasDesventajas
    Captura relaciones no linealesIncrementa la dimensionalidad
    Mejora modelos linealesPuede provocar sobreajuste
    Fácil de implementarAumenta el coste computacional
    Permite modelar interaccionesPuede generar muchas variables irrelevantes
    Compatible con numerosos algoritmosReduce la interpretabilidad en grados altos

    Limitaciones

    Las interacciones polinomiales presentan algunas limitaciones importantes.

    • El número de variables crece rápidamente.
    • Pueden generar multicolinealidad.
    • Incrementan el riesgo de sobreajuste.
    • Requieren más memoria y tiempo de entrenamiento.
    • No todas las relaciones son adecuadamente representadas mediante polinomios.
    • Los grados elevados pueden producir modelos difíciles de interpretar.

    Por estas razones, suelen combinarse con técnicas de regularización y selección de características.

    Interacciones Polinomiales vs Feature Crossing

    Aunque ambos conceptos generan nuevas características, existen diferencias importantes.

    CaracterísticaInteracciones PolinomialesFeature Crossing
    Tipo de variablesPrincipalmente numéricasPrincipalmente categóricas
    OperaciónPotencias y multiplicacionesCombinación de categorías
    ResultadoVariables numéricas nuevasCategorías combinadas
    Aplicación habitualRegresión y clasificaciónRecomendadores y publicidad
    Complejidad matemáticaMayorMenor

    Ambas técnicas buscan capturar relaciones entre variables, pero desde enfoques diferentes.

    Interacciones Polinomiales y Machine Learning

    El impacto depende del algoritmo utilizado.

    AlgoritmoBeneficio Potencial
    Regresión LinealMuy alto
    Regresión LogísticaMuy alto
    SVM LinealAlto
    KNNModerado
    Árboles de DecisiónBajo
    Random ForestBajo
    XGBoostBajo
    LightGBMBajo
    Redes NeuronalesLimitado

    Los modelos lineales suelen obtener las mayores mejoras porque no pueden capturar relaciones no lineales por sí mismos.

    Aplicaciones en Data Science y Machine Learning

    Las interacciones polinomiales se utilizan en numerosos sectores. Algunas aplicaciones incluyen:

    • Predicción de precios inmobiliarios.
    • Modelado financiero.
    • Predicción de demanda.
    • Marketing digital.
    • Diagnóstico médico.
    • Ingeniería industrial.
    • Mantenimiento predictivo.
    • Predicción energética.
    • Análisis de riesgos.
    • Sistemas de recomendación.
    • Ciencia ambiental.
    • Analítica turística.

    Su utilización es especialmente frecuente cuando las relaciones entre variables son complejas pero se desea mantener modelos relativamente simples.

    Implementación en Python

    Crear características polinomiales

    from sklearn.preprocessing import PolynomialFeatures
    import pandas as pd
    
    X = pd.DataFrame({
        'x1': [1, 2, 3],
        'x2': [4, 5, 6]
    })
    
    poly = PolynomialFeatures(
        degree=2,
        include_bias=False
    )
    
    X_poly = poly.fit_transform(X)
    
    print(X_poly)
    
    [[ 1.  4.  1.  4. 16.]
     [ 2.  5.  4. 10. 25.]
     [ 3.  6.  9. 18. 36.]]

    Obtener nombres de las características generadas

    feature_names = poly.get_feature_names_out()
    
    print(feature_names)
    
    ['x1' 'x2' 'x1^2' 'x1 x2' 'x2^2']

    Crear interacciones únicamente

    Si se desean solo los términos de interacción:

    poly = PolynomialFeatures(
        degree=2,
        interaction_only=True,
        include_bias=False
    )
    
    X_inter = poly.fit_transform(X)
    
    print(X_inter)
    
    ['x1', 'x2', 'x1 x2']

    Integrar en un Pipeline

    from sklearn.pipeline import Pipeline
    from sklearn.preprocessing import PolynomialFeatures
    from sklearn.linear_model import LinearRegression
    
    pipeline = Pipeline([
        ('poly', PolynomialFeatures(degree=2)),
        ('model', LinearRegression())
    ])
    
    pipeline.fit(X, y)
    

    Esta es la forma recomendada para utilizar transformaciones polinomiales dentro de un flujo de Machine Learning.

    Buenas prácticas

    Para utilizar correctamente las interacciones polinomiales se recomienda:

    • Comenzar con grados bajos (2 o 3).
    • Evaluar el impacto mediante validación cruzada.
    • Controlar el crecimiento de la dimensionalidad.
    • Aplicar regularización cuando sea necesario.
    • Analizar la importancia de las características generadas.
    • Evitar grados excesivamente altos.
    • Combinar la técnica con selección de características.
    • Escalar las variables cuando el algoritmo lo requiera.

    Conclusión

    Las Interacciones Polinomiales son una de las técnicas más potentes de Ingeniería de Características para capturar relaciones no lineales e interacciones entre variables. Mediante la generación de potencias y productos entre características, permiten enriquecer significativamente la representación de los datos y mejorar el rendimiento de modelos que, de otra forma, solo podrían aprender relaciones lineales.

    Aunque presentan desafíos relacionados con la dimensionalidad, la multicolinealidad y el sobreajuste, su correcta aplicación puede transformar modelos simples en soluciones altamente competitivas. Por esta razón, constituyen una herramienta fundamental dentro del arsenal de técnicas de Feature Engineering utilizadas en proyectos modernos de Data Science y Machine Learning.

  • Feature Crossing

    En muchos problemas de Machine Learning, las variables individuales no contienen toda la información necesaria para describir el comportamiento de los datos. Con frecuencia, la combinación de dos o más características revela patrones que no son visibles cuando se analizan por separado. Una de las técnicas más utilizadas para capturar estas relaciones es el Feature Crossing o cruce de características.

    El Feature Crossing es especialmente popular en sistemas de recomendación, publicidad digital, comercio electrónico y modelos predictivos donde las relaciones entre variables categóricas tienen un impacto significativo sobre el resultado.

    Aunque conceptualmente está relacionado con las interacciones entre variables, el Feature Crossing suele enfocarse en la combinación explícita de características categóricas o discretas para generar nuevas variables que representen relaciones específicas entre ellas.

    ¿Qué es el Feature Crossing?

    El Feature Crossing es una técnica de ingeniería de características que consiste en combinar dos o más variables para crear una nueva característica que represente su interacción conjunta. La nueva variable resultante contiene información sobre la combinación específica de valores presentes en las variables originales. Por ejemplo, supongamos las siguientes variables:

    CiudadDispositivo
    MadridMóvil
    MadridPC
    BarcelonaMóvil

    Mediante Feature Crossing se puede crear una nueva característica:

    Ciudad_Dispositivo
    Madrid_Móvil
    Madrid_PC
    Barcelona_Móvil

    Esta nueva variable permite al modelo aprender patrones específicos asociados a cada combinación.

    ¿Por qué es importante?

    Muchas veces el efecto combinado de varias variables es más relevante que cada variable individual. Por ejemplo, en publicidad digital:

    • El dispositivo utilizado puede influir en la conversión.
    • La ubicación geográfica también puede influir.
    • Sin embargo, la combinación de ambos factores puede ser mucho más predictiva.

    Las variables individuales no explican completamente el comportamiento observado, pero la combinación sí lo hace.

    ¿Cómo funciona el Feature Crossing?

    La técnica consiste en combinar los valores de dos o más variables para generar una nueva categoría. El proceso general es:

    1. Seleccionar variables relevantes.
    2. Generar combinaciones entre sus valores.
    3. Crear una nueva característica representando dichas combinaciones.
    4. Codificar la nueva variable para que pueda ser utilizada por el modelo.
    5. Evaluar su impacto en el rendimiento.

    La nueva característica actúa como una representación explícita de la interacción entre variables.

    Diferencia entre Feature Crossing e Interacción entre Variables

    Aunque ambos conceptos están relacionados, no son exactamente lo mismo.

    CaracterísticaFeature CrossingInteracción entre Variables
    Uso principalVariables categóricasVariables numéricas o categóricas
    ResultadoNueva categoría combinadaNueva variable matemática
    EjemploMadrid_MóvilPrecio × Cantidad
    InterpretaciónCombinación de categoríasRelación matemática
    Aplicación frecuenteRecomendadores y publicidadModelos predictivos generales

    El Feature Crossing puede considerarse una forma específica de interacción enfocada principalmente en variables categóricas.

    Tipos de Feature Crossing

    Existen diferentes formas de generar cruces de características.

    • Cruce de dos variables categóricas: es el caso más común.
    • Cruce de múltiples variables: Pueden combinarse más de dos características.
    • Cruce entre variables discretizadas: Variables numéricas transformadas en categorías.

    Beneficios del Feature Crossing

    La utilización de Feature Crossing ofrece numerosas ventajas.

    • Captura relaciones complejas entre variables.
    • Incrementa el poder predictivo.
    • Facilita el aprendizaje en modelos lineales.
    • Descubre patrones ocultos.
    • Mejora la personalización de recomendaciones.
    • Permite representar conocimiento de negocio.
    • Incrementa la capacidad de segmentación.

    En muchos casos, un único cruce bien diseñado puede mejorar significativamente el rendimiento del modelo.

    ¿Cuándo utilizar Feature Crossing?

    Es recomendable utilizar esta técnica cuando:

    • Existen variables categóricas importantes.
    • Se sospecha que las variables interactúan entre sí.
    • Se utilizan modelos lineales.
    • Se trabaja con sistemas de recomendación.
    • Se desarrollan modelos de publicidad digital.
    • Se busca mejorar la segmentación de clientes.
    • Se desea incorporar conocimiento del dominio.

    También es muy utilizada cuando el modelo no es capaz de capturar automáticamente relaciones complejas.

    Ventajas y desventajas

    VentajasDesventajas
    Mejora la representación de los datosIncrementa la dimensionalidad
    Captura relaciones ocultasPuede generar miles de categorías
    Incrementa la precisión de modelos simplesAumenta el consumo de memoria
    Facilita la personalizaciónRiesgo de sobreajuste
    Fácil de interpretarAlgunas combinaciones son poco frecuentes

    Limitaciones

    El Feature Crossing presenta varias limitaciones importantes.

    • Puede generar una explosión combinatoria de categorías.
    • Aumenta significativamente la dimensionalidad.
    • Produce categorías poco frecuentes o únicas.
    • Incrementa el riesgo de sobreajuste.
    • Requiere más recursos computacionales.
    • No todas las combinaciones aportan información útil.
    • Puede dificultar la interpretación cuando existen muchos cruces.

    Por ello suele combinarse con técnicas de selección de características o regularización.

    Feature Crossing y Machine Learning

    Su impacto depende del algoritmo utilizado.

    AlgoritmoBeneficio Potencial
    Regresión LogísticaMuy alto
    Regresión LinealAlto
    SVM LinealAlto
    KNNModerado
    Árboles de DecisiónMenor
    Random ForestMenor
    XGBoostModerado
    LightGBMModerado
    Redes NeuronalesPuede aprender algunas interacciones automáticamente

    Los modelos lineales suelen ser los principales beneficiarios del Feature Crossing porque no pueden capturar interacciones complejas de forma natural.

    Aplicaciones en Data Science y Machine Learning

    El Feature Crossing se utiliza ampliamente en:

    • Sistemas de recomendación.
    • Publicidad digital.
    • Predicción de clics (CTR).
    • Comercio electrónico.
    • Segmentación de clientes.
    • Motores de búsqueda.
    • Detección de fraude.
    • Marketing personalizado.
    • Analítica turística.
    • Predicción de comportamiento del consumidor.
    • Plataformas de streaming.
    • Redes sociales.

    Empresas como Google popularizaron esta técnica en sistemas de predicción de clics y recomendación.

    Implementación básica en Python

    Crear un Feature Crossing manualmente

    import pandas as pd
    
    df = pd.DataFrame({
        'ciudad': ['Madrid', 'Barcelona', 'Sevilla'],
        'dispositivo': ['Movil', 'PC', 'Movil']
    })
    
    df['ciudad_dispositivo'] = (
        df['ciudad'] + '_' + df['dispositivo']
    )
    
    print(df)
    
          ciudad dispositivo ciudad_dispositivo
    0     Madrid       Movil      Madrid_Movil
    1  Barcelona          PC      Barcelona_PC
    2    Sevilla       Movil     Sevilla_Movil
    

    Codificar el Feature Crossing

    df_encoded = pd.get_dummies(
        df['ciudad_dispositivo']
    )
    
    print(df_encoded)
    
       Barcelona_PC  Madrid_Movil  Sevilla_Movil
    0             0             1              0
    1             1             0              0
    2             0             0              1

    Generar cruces automáticamente

    import pandas as pd
    from sklearn.preprocessing import OneHotEncoder
    
    df = pd.DataFrame({
        'ciudad': ['Madrid', 'Barcelona'],
        'dispositivo': ['Movil', 'PC']
    })
    
    df['cross'] = (
        df['ciudad'] + '_' +
        df['dispositivo']
    )
    
    encoder = OneHotEncoder(
        sparse_output=False
    )
    
    X = encoder.fit_transform(
        df[['cross']]
    )
    
    print(X)
    

    Crear cruces múltiples

    df['cross_multiple'] = (
        df['ciudad'] + '_' +
        df['dispositivo'] + '_' +
        df['genero']
    )

    Esta técnica permite capturar interacciones más complejas entre características.

    Buenas prácticas

    Para aplicar correctamente Feature Crossing se recomienda:

    • Seleccionar variables con significado de negocio.
    • Evitar cruces indiscriminados.
    • Controlar el crecimiento de la dimensionalidad.
    • Validar el impacto sobre el modelo.
    • Eliminar categorías extremadamente raras.
    • Utilizar regularización cuando sea necesario.
    • Aplicar selección de características.
    • Documentar todas las combinaciones generadas.

    Conclusión

    El Feature Crossing es una técnica fundamental de Ingeniería de Características que permite capturar relaciones entre variables mediante la creación de nuevas características basadas en combinaciones de valores. Su principal objetivo es representar explícitamente interacciones que podrían pasar desapercibidas para ciertos algoritmos de Machine Learning.

    Aunque es especialmente útil en variables categóricas y modelos lineales, también tiene aplicaciones relevantes en sistemas de recomendación, publicidad digital, comercio electrónico y segmentación de clientes. Cuando se utiliza correctamente, puede mejorar notablemente la capacidad predictiva de los modelos y revelar patrones complejos que no serían detectables mediante el análisis individual de las variables. Sin embargo, debe aplicarse con criterio para evitar problemas de dimensionalidad, sobreajuste y complejidad innecesaria en los modelos.

  • Interacción entre Variables

    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.