Autor: Fernando

  • 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.

  • Introducción a la Ingeniería de Características

    En cualquier proyecto de Data Science o Machine Learning, la calidad de los datos suele tener un impacto mayor sobre el rendimiento del modelo que el propio algoritmo utilizado. Es frecuente encontrar situaciones en las que un modelo complejo obtiene resultados mediocres debido a una mala representación de los datos, mientras que un algoritmo sencillo logra excelentes resultados gracias a una adecuada preparación de las variables.

    La Ingeniería de Características (Feature Engineering) es el proceso de crear, transformar, seleccionar y optimizar variables para mejorar la capacidad de los modelos de Machine Learning para identificar patrones y realizar predicciones precisas.

    Se considera una de las etapas más importantes del ciclo de vida de un proyecto de ciencia de datos y, en muchos casos, es el factor que más contribuye al éxito de una solución predictiva.

    ¿Qué es la Ingeniería de Características?

    La Ingeniería de Características es el conjunto de técnicas utilizadas para transformar datos brutos en variables más útiles para los algoritmos de Machine Learning.

    Su objetivo es proporcionar al modelo una representación más adecuada de la realidad que permita descubrir relaciones, tendencias y patrones ocultos.

    Por ejemplo, supongamos que tenemos la siguiente información:

    fecha_compra = [2025-01-15, 2025-07-20, 2025-12-05]

    Un algoritmo difícilmente podrá extraer información útil directamente de estas fechas. Sin embargo, mediante ingeniería de características podríamos crear nuevas variables:

    FechaMesTrimestreDía Semana
    2025-01-1511Miércoles
    2025-07-2073Domingo
    2025-12-05124Viernes

    Estas nuevas características pueden contener información mucho más relevante para el modelo.

    ¿Por qué es importante?

    Los algoritmos de Machine Learning no comprenden el significado de los datos como lo haría un ser humano. Para un modelo, una columna con fechas, texto o categorías es simplemente información que debe ser convertida a una representación matemática adecuada.

    La ingeniería de características permite:

    • Resaltar patrones importantes.
    • Reducir ruido.
    • Mejorar la capacidad predictiva.
    • Facilitar el aprendizaje del algoritmo.
    • Reducir la complejidad del problema.
    • Incrementar la interpretabilidad.

    Por esta razón suele afirmarse que “mejores características producen mejores modelos”.

    ¿Cómo funciona la Ingeniería de Características?

    El proceso consiste en transformar los datos originales para generar variables más informativas.

    Generalmente incluye:

    1. Comprender el problema de negocio.
    2. Analizar las variables disponibles.
    3. Crear nuevas características.
    4. Transformar variables existentes.
    5. Eliminar características irrelevantes.
    6. Seleccionar las variables más importantes.
    7. Evaluar el impacto sobre el modelo.

    La ingeniería de características es un proceso iterativo que combina conocimiento del negocio, estadística y aprendizaje automático.

    Principales técnicas de Ingeniería de Características

    La ingeniería de características engloba múltiples técnicas que suelen estudiarse de forma independiente.

    Entre las más importantes se encuentran:

    • Tratamiento de valores faltantes.
    • Tratamiento de valores atípicos.
    • Escalado y normalización.
    • Codificación de variables categóricas.
    • Transformaciones matemáticas.
    • Discretización o binning.
    • Creación de variables derivadas.
    • Extracción de características temporales.
    • Extracción de características de texto.
    • Extracción de características de imágenes.
    • Selección de características.
    • Reducción de dimensionalidad.
    • Generación automática de características.

    Cada una de estas técnicas será abordada posteriormente de manera individual.

    Beneficios de la Ingeniería de Características

    La correcta construcción de características aporta numerosas ventajas:

    • Incrementa la precisión de los modelos.
    • Mejora la capacidad de generalización.
    • Reduce el ruido de los datos.
    • Facilita la detección de patrones.
    • Puede disminuir el tiempo de entrenamiento.
    • Mejora la interpretabilidad.
    • Permite utilizar algoritmos más simples con mejores resultados.

    En muchos proyectos, una buena ingeniería de características aporta más mejoras que cambiar de algoritmo.

    ¿Cuándo utilizar Ingeniería de Características?

    Su aplicación es recomendable prácticamente en cualquier proyecto de Machine Learning. Resulta especialmente útil cuando:

    • Los datos están en formato bruto.
    • Existen variables categóricas.
    • Se trabaja con fechas y horas.
    • Hay variables con distribuciones sesgadas.
    • Existen demasiadas variables.
    • El rendimiento del modelo es bajo.
    • Se busca mejorar la interpretabilidad.

    En entornos reales, la ingeniería de características suele formar parte obligatoria de cualquier pipeline de modelado.

    Ventajas y desventajas

    VentajasDesventajas
    Mejora el rendimiento predictivoRequiere conocimiento del dominio
    Facilita el aprendizaje del modeloPuede consumir mucho tiempo
    Reduce ruido e información irrelevanteExiste riesgo de introducir sesgos
    Puede mejorar la interpretabilidadAlgunas transformaciones aumentan la complejidad
    Permite aprovechar mejor los datos disponiblesNo garantiza mejoras en todos los casos

    Limitaciones

    Aunque es una técnica extremadamente poderosa, presenta algunas limitaciones.

    • Depende del conocimiento del problema.
    • Puede requerir múltiples iteraciones.
    • Algunas transformaciones son difíciles de automatizar.
    • Existe riesgo de sobreajuste.
    • Puede aumentar la dimensionalidad.
    • Algunas variables creadas pueden carecer de significado práctico.

    Por ello, es importante validar continuamente el impacto de las nuevas características sobre el rendimiento del modelo.

    Ingeniería de Características vs Selección de Características

    Aunque suelen confundirse, ambos conceptos son diferentes.

    Ingeniería de CaracterísticasSelección de Características
    Crea o transforma variablesElige variables existentes
    Busca generar nueva informaciónBusca eliminar información redundante
    Puede aumentar dimensionalidadReduce dimensionalidad
    Requiere creatividad y conocimiento del dominioSe basa en criterios estadísticos o algorítmicos
    Ocurre antes o durante el modeladoNormalmente después de generar características

    Ambas técnicas suelen utilizarse conjuntamente.

    Impacto en Machine Learning

    La ingeniería de características afecta directamente al rendimiento de los modelos.

    Modelos lineales

    • Regresión Lineal.
    • Regresión Logística.
    • Elastic Net.

    Suelen beneficiarse enormemente de transformaciones adecuadas.

    Modelos basados en distancia

    • K-Nearest Neighbors (KNN).
    • Support Vector Machines (SVM).

    Requieren especialmente variables escaladas y bien representadas.

    Redes neuronales

    • Deep Learning.
    • Redes multicapa.

    Aunque pueden aprender representaciones complejas automáticamente, siguen beneficiándose de características de calidad.

    Modelos basados en árboles

    • Decision Trees.
    • Random Forest.
    • XGBoost.
    • LightGBM.

    Son más robustos, pero también pueden mejorar significativamente mediante una adecuada ingeniería de características.

    Aplicaciones en Data Science y Machine Learning

    La ingeniería de características se utiliza en prácticamente todos los dominios de análisis de datos.

    Algunas aplicaciones incluyen:

    • Predicción de ventas.
    • Detección de fraude.
    • Scoring crediticio.
    • Diagnóstico médico.
    • Sistemas de recomendación.
    • Predicción de abandono de clientes.
    • Marketing digital.
    • Mantenimiento predictivo.
    • Visión por computador.
    • Procesamiento de lenguaje natural.
    • Análisis financiero.
    • Analítica turística.

    Es considerada una habilidad fundamental para cualquier científico de datos.

    Implementación básica en Python

    Crear nuevas características a partir de fechas

    import pandas as pd
    
    df = pd.DataFrame({
        'fecha_compra': ['2025-01-15', '2025-07-20']
    })
    
    df['fecha_compra'] = pd.to_datetime(df['fecha_compra'])
    
    df['mes'] = df['fecha_compra'].dt.month
    df['trimestre'] = df['fecha_compra'].dt.quarter
    df['dia_semana'] = df['fecha_compra'].dt.dayofweek
    
    print(df)
    

    Crear una variable derivada

    import pandas as pd
    
    df = pd.DataFrame({
        'precio': [10, 15, 20],
        'cantidad': [2, 5, 3]
    })
    
    df['ingreso'] = df['precio'] * df['cantidad']
    
    print(df)
    

    Transformar variables categóricas

    import pandas as pd
    
    df = pd.DataFrame({
        'ciudad': ['Madrid', 'Barcelona', 'Sevilla']
    })
    
    df_encoded = pd.get_dummies(
        df,
        columns=['ciudad']
    )
    
    print(df_encoded)
    

    Escalar variables numéricas

    from sklearn.preprocessing import StandardScaler
    import pandas as pd
    
    df = pd.DataFrame({
        'edad': [20, 35, 50, 65]
    })
    
    scaler = StandardScaler()
    
    df['edad_escalada'] = scaler.fit_transform(
        df[['edad']]
    )
    
    print(df)
    

    Buenas prácticas

    Para realizar una ingeniería de características efectiva se recomienda:

    • Comprender profundamente el problema de negocio.
    • Analizar las distribuciones de las variables.
    • Evitar generar características sin significado.
    • Validar cada transformación mediante métricas.
    • Utilizar pipelines reproducibles.
    • Evitar fugas de información (Data Leakage).
    • Documentar todas las transformaciones realizadas.
    • Combinar conocimiento del dominio con análisis estadístico.

    Conclusión

    La Ingeniería de Características es una de las disciplinas más importantes dentro de Data Science y Machine Learning. Consiste en transformar, crear y optimizar variables para que los algoritmos puedan aprender de forma más eficiente y generar predicciones más precisas.

    Aunque los avances en algoritmos han sido enormes durante los últimos años, la calidad de las características sigue siendo uno de los factores más determinantes en el éxito de un proyecto analítico. Por ello, dominar las distintas técnicas de ingeniería de características es una competencia esencial para cualquier profesional que trabaje con datos, ya que permite convertir datos brutos en conocimiento útil y maximizar el rendimiento de los modelos predictivos.

  • ROC-AUC

    La evaluación de modelos de clasificación es una etapa fundamental en cualquier proyecto de Machine Learning. Aunque métricas como la exactitud (Accuracy) son ampliamente utilizadas, en muchos escenarios no proporcionan una visión completa del rendimiento del modelo, especialmente cuando las clases están desbalanceadas.

    La métrica ROC-AUC es una de las herramientas más utilizadas para evaluar clasificadores binarios porque permite medir la capacidad de un modelo para distinguir correctamente entre clases positivas y negativas independientemente del umbral de clasificación seleccionado.

    ¿Qué es ROC-AUC?

    ROC-AUC es una métrica compuesta por dos elementos:

    • ROC (Receiver Operating Characteristic): una curva que muestra el comportamiento del modelo para distintos umbrales de clasificación.
    • AUC (Area Under the Curve): el área bajo la curva ROC.

    La curva ROC representa la relación entre:

    • Tasa de Verdaderos Positivos (True Positive Rate o TPR).
    • Tasa de Falsos Positivos (False Positive Rate o FPR).

    Mientras que el AUC resume toda la curva en un único valor numérico. Un valor de AUC cercano a 1 indica una excelente capacidad de discriminación, mientras que un valor cercano a 0.5 indica un comportamiento similar al azar.

    ¿Por qué se llama ROC?

    ROC significa Receiver Operating Characteristic. El término proviene de la teoría de detección de señales desarrollada durante la Segunda Guerra Mundial para evaluar sistemas de radar capaces de distinguir entre señales reales y ruido. Posteriormente fue adoptado en estadística, medicina, minería de datos y Machine Learning.

    Conceptos fundamentales

    Para comprender ROC-AUC es necesario conocer algunos conceptos básicos de clasificación.

    Matriz de confusión

    RealPredicciónResultado
    PositivoPositivoVerdadero Positivo (TP)
    PositivoNegativoFalso Negativo (FN)
    NegativoPositivoFalso Positivo (FP)
    NegativoNegativoVerdadero Negativo (TN)

    A partir de estos valores se calculan las métricas utilizadas en la curva ROC.

    Tasa de Verdaderos Positivos (TPR)

    También conocida como Recall o Sensibilidad.

    $$TPR = \frac{TP}{TP + FN}$$

    Indica qué proporción de positivos reales fue correctamente identificada.

    Tasa de Falsos Positivos (FPR)

    $$FPR = \frac{FP}{FP + TN}$$

    Representa la proporción de negativos clasificados incorrectamente como positivos.

    ¿Cómo funciona la curva ROC?

    Muchos clasificadores no generan directamente una clase, sino una probabilidad. Por ejemplo:

    ClienteProbabilidad de Compra
    A0.95
    B0.82
    C0.65
    D0.40
    E0.15

    Para convertir estas probabilidades en clases se utiliza un umbral.

    Si el umbral es 0.5:

    • Probabilidad ≥ 0.5 → Positivo
    • Probabilidad < 0.5 → Negativo

    La curva ROC evalúa múltiples umbrales:

    • 0.1
    • 0.2
    • 0.3
    • 0.4
    • 1.0

    Para cada umbral se calculan:

    • TPR
    • FPR

    Finalmente se representan gráficamente.

    ¿Qué es el AUC?

    El AUC (Area Under the Curve) mide el área bajo la curva ROC. Su valor está comprendido entre 0 y 1.

    AUCInterpretación
    1.0Clasificador perfecto
    0.9 – 0.99Excelente
    0.8 – 0.9Muy bueno
    0.7 – 0.8Aceptable
    0.6 – 0.7Pobre
    0.5Aleatorio
    < 0.5Peor que el azar

    Un AUC de 0.90 significa que existe aproximadamente un 90% de probabilidad de que el modelo asigne una puntuación mayor a una observación positiva que a una negativa.

    Interpretación intuitiva

    Supongamos dos pacientes:

    • Paciente enfermo.
    • Paciente sano.

    Si seleccionamos ambos al azar:

    • El modelo obtiene un AUC de 0.95.
    • Existe un 95% de probabilidad de que el paciente enfermo reciba una puntuación de riesgo superior al paciente sano.

    Por eso ROC-AUC es considerada una medida de capacidad discriminativa.

    Ejemplo práctico

    Supongamos el siguiente modelo de detección de fraude.

    TransacciónClase RealProbabilidad
    T1Fraude0.95
    T2Fraude0.85
    T3Normal0.60
    T4Normal0.20

    El modelo asigna sistemáticamente probabilidades mayores a los casos de fraude. La curva ROC reflejará esta capacidad de separación y el AUC será elevado.

    Beneficios de ROC-AUC

    • Evalúa todos los umbrales posibles.
    • No depende de un umbral específico.
    • Permite comparar clasificadores fácilmente.
    • Funciona bien con probabilidades.
    • Es robusta frente a cambios de umbral.
    • Facilita la selección de modelos.
    • Resume el rendimiento en un único valor.

    ¿Cuándo utilizar ROC-AUC?

    • Se trabaja con clasificación binaria.
    • El modelo genera probabilidades.
    • Se desea comparar varios clasificadores.
    • El coste de errores aún no está definido.
    • Se busca una evaluación global del modelo.
    • Se realizan procesos de selección de modelos.

    Es especialmente útil durante la fase de experimentación.

    Ventajas y desventajas

    VentajasDesventajas
    Evalúa todos los umbrales posiblesNo refleja directamente el coste de los errores
    Facilita la comparación entre modelosPuede ser optimista en datasets muy desbalanceados
    Independiente del umbralNo indica qué umbral utilizar
    Fácil de interpretarPuede ocultar problemas en regiones específicas
    Muy utilizada en investigación y producciónNo siempre refleja el rendimiento operativo real

    ROC-AUC vs Accuracy

    CaracterísticaROC-AUCAccuracy
    Considera múltiples umbralesNo
    Evalúa capacidad de discriminaciónNo
    Adecuada para comparar modelosLimitada
    Sensible al umbralNo
    Puede utilizar probabilidadesNo

    ROC-AUC vs Precision-Recall AUC

    CaracterísticaROC-AUCPR-AUC
    Utiliza TPR y FPRNo
    Utiliza Precision y RecallNo
    Adecuada para clases balanceadas
    Adecuada para clases muy desbalanceadasMenos recomendableMás recomendable
    Muy utilizada en clasificación general

    En problemas con fraude, enfermedades raras o detección de anomalías suele preferirse Precision-Recall AUC.

    Limitaciones

    ROC-AUC no es una métrica perfecta. Entre sus principales limitaciones destacan:

    • No indica el umbral óptimo.
    • Puede resultar engañosa con clases extremadamente desbalanceadas.
    • No refleja costes de negocio.
    • Dos modelos con igual AUC pueden comportarse de forma diferente.
    • No muestra dónde ocurren los errores.
    • Puede ocultar problemas importantes en determinadas regiones de decisión.

    Por esta razón suele combinarse con otras métricas.

    Aplicaciones en Data Science y Machine Learning

    ROC-AUC se utiliza ampliamente en:

    • Detección de fraude financiero.
    • Diagnóstico médico.
    • Clasificación de clientes.
    • Predicción de abandono de clientes (Churn).
    • Sistemas de recomendación.
    • Detección de spam.
    • Ciberseguridad.
    • Scoring crediticio.
    • Mantenimiento predictivo.
    • Clasificación de imágenes.
    • Clasificación de texto.
    • Modelos de riesgo.

    Es una de las métricas más utilizadas en competiciones de Machine Learning y entornos empresariales.

    Implementación en Python

    Crear un conjunto de datos

    from sklearn.datasets import make_classification
    
    X, y = make_classification(
        n_samples=1000,
        n_features=10,
        random_state=42
    )
    

    Entrenar un modelo

    from sklearn.model_selection import train_test_split
    from sklearn.ensemble import RandomForestClassifier
    
    X_train, X_test, y_train, y_test = train_test_split(
        X,
        y,
        test_size=0.2,
        random_state=42
    )
    
    modelo = RandomForestClassifier()
    
    modelo.fit(X_train, y_train)
    

    Obtener probabilidades

    y_prob = modelo.predict_proba(X_test)[:, 1]
    

    La segunda columna representa la probabilidad de pertenecer a la clase positiva.

    Calcular ROC-AUC

    from sklearn.metrics import roc_auc_score
    
    auc = roc_auc_score(y_test, y_prob)
    
    print(f"AUC: {auc:.4f}")
    
    AUC: 0.9421

    Construir la curva ROC

    from sklearn.metrics import roc_curve
    
    fpr, tpr, thresholds = roc_curve(
        y_test,
        y_prob
    )
    

    Visualizar la curva ROC

    import matplotlib.pyplot as plt
    
    plt.figure(figsize=(8,6))
    
    plt.plot(fpr, tpr, label=f"AUC = {auc:.3f}")
    
    plt.plot(
        [0, 1],
        [0, 1],
        linestyle='--'
    )
    
    plt.xlabel("False Positive Rate")
    plt.ylabel("True Positive Rate")
    plt.title("Curva ROC")
    plt.legend()
    
    plt.show()
    

    Comparar varios modelos

    from sklearn.linear_model import LogisticRegression
    from sklearn.ensemble import GradientBoostingClassifier
    
    modelos = {
        "Logistic Regression": LogisticRegression(),
        "Random Forest": RandomForestClassifier(),
        "Gradient Boosting": GradientBoostingClassifier()
    }
    
    for nombre, modelo in modelos.items():
    
        modelo.fit(X_train, y_train)
    
        prob = modelo.predict_proba(X_test)[:,1]
    
        auc = roc_auc_score(y_test, prob)
    
        print(nombre, round(auc,4))
    }
    

    Esta práctica es muy habitual durante la selección de modelos.

    Buenas prácticas

    Para utilizar ROC-AUC correctamente se recomienda:

    • Evaluarla junto con Precision, Recall y F1-Score.
    • Analizar la matriz de confusión.
    • Considerar el desbalanceo de clases.
    • Comparar la curva ROC de varios modelos.
    • Revisar el impacto del umbral de clasificación.
    • Utilizar validación cruzada para obtener resultados más robustos.
    • Complementar el análisis con métricas de negocio.

    Conclusión

    ROC-AUC es una de las métricas más importantes para evaluar modelos de clasificación binaria. Su principal fortaleza es que mide la capacidad de un modelo para diferenciar entre clases positivas y negativas considerando todos los umbrales posibles. Esto la convierte en una herramienta extremadamente útil para comparar clasificadores, seleccionar modelos y evaluar sistemas predictivos de forma global.

    Sin embargo, aunque proporciona una excelente medida de discriminación, no debe utilizarse de manera aislada. En proyectos reales es recomendable complementarla con métricas como Precision, Recall, F1-Score y análisis de negocio para obtener una visión completa del rendimiento del modelo y tomar decisiones más informadas.

  • Predict H1N1 and Seasonal Flu Vaccines – Problem Description

    ¿Es posible predecir si las personas se vacunaron contra la gripe H1N1 y la gripe estacional utilizando la información que compartieron sobre sus antecedentes, opiniones y hábitos de salud?

    En este desafío, analizaremos la vacunación, una medida clave de salud pública para combatir las enfermedades infecciosas. Las vacunas inmunizan a las personas, y una vacunación suficiente en una comunidad puede reducir aún más la propagación de enfermedades mediante la inmunidad colectiva.

    DrivenData. (2020). Flu Shot Learning: Predict H1N1 and Seasonal Flu Vaccines. Retrieved [Month Day Year] from https://www.drivendata.org/competitions/66/flu-shot-learning

    Al momento del lanzamiento de este concurso, las vacunas contra el virus COVID-19 aún están en desarrollo y no están disponibles. En cambio, el concurso retomará la respuesta de salud pública a otra pandemia reciente de una enfermedad respiratoria importante. A partir de la primavera de 2009, una pandemia causada por el virus de la influenza H1N1, conocida coloquialmente como “gripe porcina”, se extendió por todo el mundo. Los investigadores estiman que, en el primer año, fue responsable de entre 151.000 y 575.000 muertes a nivel mundial .

    En octubre de 2009, la vacuna contra el virus de la gripe H1N1 estuvo disponible para el público. Entre finales de 2009 y principios de 2010, Estados Unidos realizó la Encuesta Nacional sobre la Gripe H1N1 de 2009. Esta encuesta telefónica preguntaba a los participantes si habían recibido las vacunas contra la gripe H1N1 y la gripe estacional, además de incluir preguntas sobre sí mismos. Estas preguntas adicionales abarcaban sus antecedentes sociales, económicos y demográficos, sus opiniones sobre los riesgos de la enfermedad y la eficacia de la vacuna, y sus comportamientos para mitigar la transmisión. Una mejor comprensión de cómo estas características se asocian con los patrones de vacunación individuales puede orientar futuras iniciativas de salud pública.

    Descripción del problema

    Tu objetivo es predecir la probabilidad de que las personas reciban sus vacunas contra la gripe H1N1 y la gripe estacional. Específicamente, predecirás dos probabilidades: una para h1n1_vacciney otra para seasonal_vaccine. Cada fila del conjunto de datos representa a una persona que respondió a la Encuesta Nacional sobre la Gripe H1N1 de 2009

    Etiquetas

    Para esta competición, existen dos variables objetivo:

    • h1n1_vaccine– Si el encuestado recibió la vacuna contra la gripe H1N1.
    • seasonal_vaccine– Si el encuestado recibió la vacuna contra la gripe estacional.

    Ambas son variables binarias. Algunos encuestados no recibieron ninguna de las vacunas, otros solo una y algunos ambas. Esto se formula como un problema de etiquetas múltiples (y no de clases múltiples).

    Las características de este conjunto de datos

    Se le proporciona un conjunto de datos con 36 columnas. La primera columna respondent_id es un identificador único y aleatorio. Las 35 características restantes se describen a continuación.

    Para todas las variables binarias: 0= No; 1= Sí.

    • h1n1_concern– Nivel de preocupación por la gripe H1N1.
      • 0= Nada preocupado; 1= No muy preocupado; 2= Algo preocupado; 3= Muy preocupado.
    • h1n1_knowledge– Nivel de conocimiento sobre la gripe H1N1.
      • 0= Sin conocimiento; 1= Un poco de conocimiento; 2= Mucho conocimiento.
    • behavioral_antiviral_meds– Ha tomado medicamentos antivirales. (binario)
    • behavioral_avoidance– Ha evitado el contacto cercano con otras personas que presenten síntomas similares a los de la gripe. (binario)
    • behavioral_face_mask– Ha comprado una mascarilla. (binario)
    • behavioral_wash_hands– Se ha lavado las manos con frecuencia o ha usado desinfectante para manos. (binario)
    • behavioral_large_gatherings– Ha reducido el tiempo en grandes reuniones. (binario)
    • behavioral_outside_home– Ha reducido el contacto con personas ajenas a su hogar. (binario)
    • behavioral_touch_face– Ha evitado tocarse los ojos, la nariz o la boca. (binario)
    • doctor_recc_h1n1– El médico recomendó la vacuna contra la gripe H1N1. (binario)
    • doctor_recc_seasonal– El médico recomendó la vacuna contra la gripe estacional. (binario)
    • chronic_med_condition– Presenta alguna de las siguientes afecciones médicas crónicas: asma u otra afección pulmonar, diabetes, una afección cardíaca, una afección renal, anemia falciforme u otro tipo de anemia, una afección neurológica o neuromuscular, una afección hepática o un sistema inmunitario debilitado debido a una enfermedad crónica o a medicamentos tomados para una enfermedad crónica. (binario)
    • child_under_6_months– Mantiene contacto estrecho y regular con un niño menor de seis meses. (binario)
    • health_worker– Es un trabajador de la salud. (binario)
    • health_insurance– Tiene seguro médico. (binario)
    • opinion_h1n1_vacc_effective– Opinión del encuestado sobre la eficacia de la vacuna contra la gripe H1N1.
      • 1= Nada efectivo; 2= No muy efectivo; 3= No lo sé; 4= Algo efectivo; 5= Muy efectivo.
    • opinion_h1n1_risk– Opinión del encuestado sobre el riesgo de contraer la gripe H1N1 sin vacunarse.
      • 1= Muy bajo; 2= Algo bajo; 3= No lo sé; 4= Algo alto; 5= Muy alto.
    • opinion_h1n1_sick_from_vacc– Preocupación del encuestado por enfermarse tras recibir la vacuna contra la gripe H1N1.
      • 1= Nada preocupado; 2= No muy preocupado; 3= No lo sé; 4= Algo preocupado; 5= Muy preocupado.
    • opinion_seas_vacc_effective– Opinión del encuestado sobre la eficacia de la vacuna contra la gripe estacional.
      • 1= Nada efectivo; 2= No muy efectivo; 3= No lo sé; 4= Algo efectivo; 5= Muy efectivo.
    • opinion_seas_risk– Opinión del encuestado sobre el riesgo de contraer la gripe estacional sin vacunarse.
      • 1= Muy bajo; 2= Algo bajo; 3= No lo sé; 4= Algo alto; 5= Muy alto.
    • opinion_seas_sick_from_vacc– Preocupación del encuestado por enfermarse tras recibir la vacuna contra la gripe estacional.
      • 1= Nada preocupado; 2= No muy preocupado; 3= No lo sé; 4= Algo preocupado; 5= Muy preocupado.
    • age_group– Grupo de edad del encuestado.
    • education– Nivel educativo declarado por el propio participante.
    • race– Raza del encuestado.
    • sex– Sexo del encuestado.
    • income_poverty– Ingresos anuales del hogar del encuestado con respecto a los umbrales de pobreza del Censo de 2008.
    • marital_status– Estado civil del encuestado.
    • rent_or_own– Situación de vivienda del encuestado.
    • employment_status– Situación laboral del encuestado.
    • hhs_geo_region– Residencia del encuestado según una clasificación geográfica de 10 regiones definida por el Departamento de Salud y Servicios Humanos de los Estados Unidos. Los valores se representan como cadenas cortas de caracteres aleatorios.
    • census_msa– Residencia del encuestado dentro de áreas estadísticas metropolitanas (MSA, por sus siglas en inglés) según lo define la Oficina del Censo de los Estados Unidos.
    • household_adults– Número de otros adultos en el hogar, con un máximo de 3.
    • household_children– Número de niños en el hogar, con el código superior 3.
    • employment_industry– Tipo de industria en la que trabaja el encuestado. Los valores se representan como cadenas cortas de caracteres aleatorios.
    • employment_occupation– Tipo de ocupación del encuestado. Los valores se representan como cadenas cortas de caracteres aleatorios.

    Ejemplo de datos de características

    Por ejemplo, una sola fila del conjunto de datos tiene estos valores:

    CampoValor
    preocupación h1n11
    conocimiento h1n10
    medicamentos antivirales conductuales0
    evitación conductual0
    mascarilla facial conductual0
    lavado de manos conductual0
    grandes reuniones de comportamiento0
    comportamiento_fuera_del_hogar1
    cara_táctil_conductual1
    doctor_recc_h1n10
    doctor_recc_estacional0
    condición médica crónica0
    niño_menor_de_6_meses0
    trabajador de la salud0
    seguro_de_salud1
    opinión_vacuna_h1n1_eficaz3
    riesgo_de_opinión_h1n11
    opinión_h1n1_enfermo_por_vacuna2
    opinión_vacuna_mar_eficaz2
    opinión_riesgo_marítimo1
    opinión_mareo_por_vacuna2
    grupo_de_edad55 – 64 años
    educación< 12 años
    carreraBlanco
    sexoFemenino
    pobreza de ingresosPor debajo del umbral de pobreza
    Estado civilNo estoy casado
    alquilar o comprarPropio
    estado_laboralNo forma parte de la fuerza laboral.
    región_geográfica_hhsbueyjgsf
    censo_msaNo MSA
    adultos del hogar0
    niños del hogar0
    industria del empleoYaya
    empleo_ocupaciónYaya

    Métrica de rendimiento

    El rendimiento se evaluará según el área bajo la curva ROC (AUC) para cada una de las dos variables objetivo. La media de estas dos puntuaciones constituirá la puntuación global. Un valor más alto indica un mejor rendimiento.

    En Python, puedes calcular esto usando sklearn.metrics.roc_auc_score para esta configuración multietiqueta con el parámetro average="macro"predeterminado.

    Formato de envío

    El formato del archivo de envío consta de tres columnas: respondent_idh1n1_vaccine, y seasonal_vaccine. Las predicciones para las dos variables objetivo deben ser probabilidades flotantes que oscilen entre 0.01.0. Dado que la competencia utiliza el área bajo la curva ROC (AUC) como métrica de evaluación, los valores que envíe deben ser las probabilidades de que una persona haya recibido cada vacuna, no etiquetas binarias.

    Como se trata de un problema de etiquetas múltiples, las probabilidades de cada fila no tienen por qué sumar uno.

    Por ejemplo, si predijiste…

    vacuna h1n1vacuna estacional
    ID del encuestado
    267070,50,7
    267080,50,7
    267090,50,7
    267100,50,7
    267110,50,7

    Las primeras líneas del .csvarchivo que envíe se verían así:

    respondent_id,h1n1_vaccine,seasonal_vaccine
    26707,0.5,0.7
    26708,0.5,0.7
    26709,0.5,0.7
    26710,0.5,0.7
    26711,0.5,0.7
    ...
  • Imputación Múltiple (MICE)

    ¿Qué es la Imputación Múltiple (MICE)?

    La imputación múltiple mediante ecuaciones encadenadas (Multiple Imputation by Chained Equations o MICE) es una técnica avanzada de tratamiento de datos faltantes que estima los valores ausentes utilizando modelos predictivos construidos a partir del resto de variables del conjunto de datos.

    A diferencia de la imputación simple, que reemplaza los valores faltantes mediante una única estadística como la media o la mediana, MICE intenta reconstruir la información perdida aprovechando las relaciones existentes entre las variables.

    Su principal característica es que genera múltiples estimaciones para los valores faltantes en lugar de una única imputación fija, permitiendo reflejar mejor la incertidumbre asociada a los datos ausentes.

    Por esta razón, MICE es considerada una de las técnicas más rigurosas desde el punto de vista estadístico.

    ¿Por qué utilizar MICE?

    En muchos conjuntos de datos reales, las variables están relacionadas entre sí.

    Por ejemplo:

    EdadSalarioNivel Educativo
    251800Secundaria
    30NULLUniversidad
    353200Universidad

    El salario suele estar relacionado con:

    • La edad.
    • La experiencia.
    • El nivel educativo.
    • La ocupación.

    Sustituir el valor faltante mediante una simple media ignora completamente estas relaciones. MICE aprovecha esta información para generar imputaciones más realistas y coherentes con el comportamiento observado en los datos.

    ¿Cómo funciona MICE?

    La idea fundamental consiste en utilizar cada variable como objetivo de predicción de manera iterativa.

    El proceso general es:

    1. Realizar una imputación inicial sencilla.
    2. Seleccionar una variable con valores faltantes.
    3. Construir un modelo utilizando el resto de variables.
    4. Predecir los valores ausentes.
    5. Repetir el proceso para todas las variables con datos faltantes.
    6. Ejecutar varias iteraciones hasta que las imputaciones se estabilicen.

    Este procedimiento genera una cadena de modelos predictivos interconectados. De ahí el nombre:

    Multiple Imputation by Chained Equations

    ¿Por qué se llama imputación múltiple?

    La característica que diferencia a MICE de otros métodos es que no genera una única estimación. En su formulación estadística original:

    • Se crean múltiples versiones completas del dataset.
    • Cada una contiene imputaciones ligeramente diferentes.
    • Los análisis se realizan sobre todos los conjuntos generados.
    • Los resultados se combinan posteriormente.

    De esta forma se incorpora la incertidumbre inherente al proceso de imputación.

    Funcionamiento iterativo

    Uno de los aspectos más interesantes de MICE es su naturaleza iterativa.

    Por ejemplo:

    • Iteración 1: Se imputan todos los valores faltantes utilizando estimaciones iniciales.
    • Iteración 2: Se reconstruyen modelos utilizando las nuevas imputaciones.
    • Iteración 3: Se refinan nuevamente las estimaciones.
    • Iteraciones posteriores: El proceso continúa hasta alcanzar estabilidad.

    Este mecanismo permite mejorar progresivamente la calidad de las imputaciones.

    Tipos de modelos utilizados

    Dependiendo del tipo de variable, MICE puede utilizar diferentes algoritmos.

    Tipo de VariableModelo Habitual
    Numérica continuaRegresión lineal
    BinariaRegresión logística
    CategóricaClasificación
    ConteosRegresión de Poisson

    Esto convierte a MICE en una técnica extremadamente flexible.

    Beneficios de MICE

    • Aprovecha las relaciones entre variables.
    • Genera imputaciones más realistas.
    • Reduce el sesgo respecto a métodos simples.
    • Conserva mejor la estructura estadística de los datos.
    • Permite incorporar incertidumbre en las estimaciones.
    • Funciona bien con múltiples variables faltantes.
    • Es una de las técnicas más aceptadas en investigación y estadística aplicada.

    ¿Cuándo utilizar MICE?

    • Existen relaciones significativas entre variables.
    • El porcentaje de datos faltantes es moderado.
    • Se requiere alta precisión estadística.
    • Los datos son MAR (Missing At Random).
    • La calidad de la imputación es prioritaria.

    Es especialmente habitual en:

    • Investigación médica.
    • Ciencias sociales.
    • Finanzas.
    • Estudios longitudinales.
    • Proyectos analíticos avanzados.

    Ventajas

    • Imputaciones más precisas.
    • Conservación de correlaciones entre variables.
    • Menor sesgo estadístico.
    • Adaptación a distintos tipos de datos.
    • Manejo simultáneo de múltiples variables incompletas.
    • Fundamentación estadística sólida.
    • Amplio respaldo académico.

    Desventajas

    • Mayor complejidad conceptual.
    • Coste computacional elevado.
    • Tiempo de ejecución superior.
    • Requiere más parámetros de configuración.
    • Resultados más difíciles de interpretar.

    Además, la calidad de la imputación depende de la calidad de los modelos utilizados.

    Limitaciones

    Antes de utilizar MICE conviene considerar que:

    • No recupera los valores reales perdidos.
    • Puede producir resultados incorrectos si los modelos están mal especificados.
    • Resulta menos eficaz con datos MNAR.
    • Puede ser costoso en datasets muy grandes.
    • Requiere variables predictoras informativas.

    La técnica funciona mejor cuando existen relaciones reales entre las variables del conjunto de datos.

    Comparación con otras técnicas de imputación

    CaracterísticaImputación SimpleKNN ImputationMICE
    ComplejidadBajaMediaAlta
    Coste computacionalBajoMedioAlto
    Utiliza relaciones entre variablesNo
    Calidad de imputaciónMediaAltaMuy Alta
    EscalabilidadAltaMediaBaja
    Fundamentación estadísticaBajaMediaAlta

    MICE vs Imputación Simple

    AspectoImputación SimpleMICE
    Utiliza una única estadísticaNo
    Considera otras variablesNo
    Conserva correlacionesNo
    Riesgo de sesgoMayorMenor
    ComplejidadBajaAlta

    MICE vs KNN Imputation

    AspectoKNN ImputationMICE
    Basado en vecinosNo
    Basado en modelos predictivosNo
    Coste computacionalMedioAlto
    InterpretabilidadMediaAlta
    Calidad estadísticaAltaMuy Alta

    Aplicaciones en Data Science y Machine Learning

    MICE se utiliza frecuentemente en:

    • Estudios clínicos.
    • Investigación biomédica.
    • Analítica financiera.
    • Modelos de riesgo.
    • Predicción de abandono.
    • Analítica de clientes.
    • Investigación académica.
    • Machine Learning supervisado.
    • Modelos estadísticos avanzados.

    Es especialmente útil cuando la calidad de los datos resulta crítica para el análisis.

    Impacto en Machine Learning

    Muchos algoritmos requieren conjuntos de datos completos para funcionar correctamente.

    MICE permite:

    • Mantener observaciones incompletas.
    • Reducir la pérdida de información.
    • Preservar relaciones entre variables.
    • Mejorar la calidad del conjunto de datos.

    En numerosos escenarios, los modelos entrenados sobre datos imputados mediante MICE presentan un mejor comportamiento que aquellos construidos utilizando imputación simple.

    Implementación en Python

    En Scikit-Learn, MICE se implementa mediante IterativeImputer.

    Habilitar IterativeImputer

    from sklearn.experimental import enable_iterative_imputer
    from sklearn.impute import IterativeImputer
    

    Ejemplo básico

    import pandas as pd
    
    from sklearn.experimental import enable_iterative_imputer
    from sklearn.impute import IterativeImputer
    
    df = pd.DataFrame({
        "edad": [25, 30, 35, 40],
        "salario": [1800, None, 3200, 4500]
    })
    
    imputer = IterativeImputer(
        random_state=42
    )
    
    df_imputado = pd.DataFrame(
        imputer.fit_transform(df),
        columns=df.columns
    )
    
    print(df_imputado)
    

    Configurar el número de iteraciones

    imputer = IterativeImputer(
        max_iter=20,
        random_state=42
    )
    

    Uso dentro de un Pipeline

    from sklearn.pipeline import Pipeline
    from sklearn.impute import IterativeImputer
    from sklearn.ensemble import RandomForestClassifier
    
    pipeline = Pipeline([
        ("imputer",
         IterativeImputer(
             random_state=42
         )),
        ("model",
         RandomForestClassifier())
    ])
    
    pipeline.fit(X_train, y_train)
    

    Buenas prácticas

    Al utilizar MICE es recomendable:

    • Analizar previamente el patrón de datos faltantes.
    • Utilizar únicamente los datos de entrenamiento para ajustar el imputador.
    • Verificar las relaciones entre variables.
    • Ajustar adecuadamente el número de iteraciones.
    • Comparar los resultados con otros métodos de imputación.
    • Validar el impacto sobre el modelo final.
    • Revisar las distribuciones antes y después de la imputación.

    Conclusión

    La Imputación Múltiple mediante Ecuaciones Encadenadas (MICE) es una de las técnicas más avanzadas y robustas para el tratamiento de datos faltantes. Su principal ventaja es que utiliza modelos predictivos para estimar los valores ausentes, aprovechando las relaciones existentes entre las variables del conjunto de datos.

    Aunque presenta una complejidad y un coste computacional superiores a los métodos tradicionales, suele producir imputaciones más realistas y estadísticamente sólidas. Por ello, se ha convertido en una herramienta ampliamente utilizada en investigación, análisis avanzado de datos y proyectos de Machine Learning donde la calidad de la información es un factor crítico.

  • Imputación por KNN

    ¿Qué es la imputación por KNN?

    La imputación por KNN (K-Nearest Neighbors Imputation) es una técnica de tratamiento de datos faltantes que estima los valores ausentes utilizando información procedente de observaciones similares dentro del conjunto de datos.

    A diferencia de la imputación simple, que reemplaza todos los valores faltantes de una variable utilizando una única estadística como la media o la mediana, la imputación por KNN genera una estimación personalizada para cada observación basándose en sus vecinos más cercanos.

    La idea fundamental es que observaciones con características similares probablemente también presenten valores similares en las variables faltantes. Por esta razón, la imputación por KNN suele producir estimaciones más realistas que los métodos de imputación simple.

    ¿Por qué utilizar KNN para imputar datos faltantes?

    Cuando existen relaciones entre las variables de un conjunto de datos, reemplazar los valores faltantes utilizando únicamente la media o la mediana puede provocar una pérdida importante de información. Por ejemplo, consideremos los siguientes clientes:

    EdadIngresos
    251800
    281900
    27NULL
    605000

    Resulta poco razonable sustituir el ingreso faltante mediante la media global de todos los ingresos, ya que el cliente de 27 años probablemente se parezca más a los clientes jóvenes que al cliente de 60 años. La imputación por KNN intenta aprovechar precisamente esta similitud, la mayoría de implementaciones utilizan la distancia euclídea.

    ¿Cómo funciona la imputación por KNN?

    El procedimiento general consiste en:

    1. Identificar la observación con datos faltantes.
    2. Calcular la distancia respecto al resto de observaciones.
    3. Encontrar los K vecinos más cercanos.
    4. Recuperar los valores conocidos de esos vecinos.
    5. Estimar el valor faltante utilizando la información de los vecinos.

    La estimación suele realizarse mediante:

    • La media para variables numéricas.
    • La moda para variables categóricas.

    El parámetro K

    Uno de los elementos más importantes de esta técnica es el número de vecinos utilizados.

    Valor de KCaracterísticas
    K pequeñoMás sensible al ruido
    K intermedioEquilibrio entre precisión y estabilidad
    K grandeEstimaciones más estables pero menos específicas

    No existe un valor universalmente óptimo. En muchos proyectos se utilizan valores entre:

    K = 3 y K = 10

    aunque debe validarse según el problema.

    Importancia del escalado de variables

    La imputación por KNN depende directamente de las distancias entre observaciones. Por este motivo, las variables deben encontrarse en escalas comparables.

    Ejemplo:

    VariableRango
    Edad18 – 80
    Salario1000 – 100000

    Sin escalado, la variable salario dominará completamente el cálculo de distancias. Por ello suele aplicarse previamente:

    Beneficios de la imputación por KNN

    • Aprovecha la información de observaciones similares.
    • Conserva mejor la estructura de los datos.
    • Produce imputaciones más realistas.
    • Tiene en cuenta relaciones entre variables.
    • Puede adaptarse a diferentes tipos de datasets.
    • Reduce la pérdida de información.
    • Suele superar a la imputación simple en precisión.

    ¿Cuándo utilizar la imputación por KNN?

    • Existen relaciones entre variables.
    • El porcentaje de valores faltantes es moderado.
    • El dataset no es excesivamente grande.
    • Las observaciones similares contienen información útil.
    • Se desea una imputación más precisa que la media o la mediana.

    Resulta especialmente útil en:

    • Datos de clientes.
    • Datos financieros.
    • Datos médicos.
    • Sistemas de recomendación.
    • Problemas de clasificación y regresión.

    Ventajas

    • Utiliza información contextual.
    • Mantiene mejor las distribuciones originales.
    • Considera múltiples variables simultáneamente.
    • Produce estimaciones individualizadas.
    • Fácil de implementar mediante Scikit-Learn.
    • Puede mejorar el rendimiento de los modelos.

    Desventajas

    • Coste computacional elevado.
    • Sensibilidad al escalado de variables.
    • Sensibilidad a valores atípicos.
    • Puede ser lento en grandes datasets.
    • La elección de K influye en los resultados.

    Además, cuando existen muchos valores faltantes, encontrar vecinos fiables resulta más complicado.

    Limitaciones

    La imputación por KNN presenta varias limitaciones importantes:

    • No funciona bien con datasets extremadamente grandes.
    • Puede degradarse en espacios de alta dimensionalidad.
    • Depende de la calidad de las variables utilizadas.
    • No siempre captura relaciones complejas.
    • Puede producir imputaciones incorrectas cuando los vecinos no son realmente similares.

    Por esta razón, en algunos escenarios se prefieren métodos más avanzados como MICE.

    Comparación con otras técnicas de imputación

    CaracterísticaImputación SimpleKNN ImputationMICE
    ComplejidadBajaMediaAlta
    Utiliza relaciones entre variablesNo
    Coste computacionalBajoMedio-AltoAlto
    Calidad de imputaciónMediaAltaMuy Alta
    Facilidad de implementaciónAltaMediaBaja
    EscalabilidadAltaMediaBaja

    Imputación por KNN vs Imputación Simple

    AspectoImputación SimpleImputación por KNN
    Valor imputadoIgual para todos los nulosPersonalizado
    Utiliza vecinos similaresNo
    Conserva relaciones entre variablesNo
    Coste computacionalBajoAlto
    PrecisiónMediaAlta

    Aplicaciones en Data Science y Machine Learning

    La imputación por KNN aparece frecuentemente en:

    • Modelos de clasificación.
    • Modelos de regresión.
    • Analítica financiera.
    • Predicción de riesgo.
    • Sistemas de recomendación.
    • Analítica de clientes.
    • Predicción de abandono.
    • Datos biomédicos.
    • Detección de fraude.

    Es especialmente útil cuando la similitud entre observaciones contiene información valiosa.

    Impacto en Machine Learning

    Muchos algoritmos requieren conjuntos de datos completos para funcionar correctamente.

    La imputación por KNN permite:

    • Conservar registros incompletos.
    • Reducir la pérdida de información.
    • Mantener relaciones entre variables.
    • Mejorar la calidad del dataset.

    En numerosos problemas, los modelos entrenados tras aplicar KNN Imputation obtienen mejores resultados que aquellos construidos utilizando imputación simple.

    Implementación en Python

    Ejemplo básico con KNNImputer

    import pandas as pd
    from sklearn.impute import KNNImputer
    
    df = pd.DataFrame({
        "edad": [25, 28, 27, 60],
        "ingresos": [1800, 1900, None, 5000]
    })
    
    imputer = KNNImputer(
        n_neighbors=2
    )
    
    df_imputado = pd.DataFrame(
        imputer.fit_transform(df),
        columns=df.columns
    )
    
    print(df_imputado)
    

    Utilizando escalado previo

    from sklearn.pipeline import Pipeline
    from sklearn.preprocessing import StandardScaler
    from sklearn.impute import KNNImputer
    
    pipeline = Pipeline([
        ("scaler", StandardScaler()),
        ("imputer", KNNImputer(
            n_neighbors=5
        ))
    ])
    
    datos_imputados = pipeline.fit_transform(df)
    

    Integración en un flujo de Machine Learning

    from sklearn.pipeline import Pipeline
    from sklearn.impute import KNNImputer
    from sklearn.ensemble import RandomForestClassifier
    
    pipeline = Pipeline([
        ("imputer",
         KNNImputer(n_neighbors=5)),
        ("model",
         RandomForestClassifier())
    ])
    
    pipeline.fit(X_train, y_train)
    

    Buenas prácticas

    Al utilizar imputación por KNN es recomendable:

    • Escalar las variables antes de calcular distancias.
    • Probar diferentes valores de K.
    • Analizar la distribución de los datos antes y después de la imputación.
    • Utilizar únicamente datos de entrenamiento para ajustar el imputador.
    • Evaluar el impacto sobre el rendimiento del modelo.
    • Revisar la presencia de outliers.

    Conclusión

    La imputación por KNN es una técnica avanzada de tratamiento de datos faltantes que estima los valores ausentes utilizando observaciones similares dentro del conjunto de datos. A diferencia de la imputación simple, aprovecha las relaciones existentes entre variables para generar estimaciones personalizadas y generalmente más precisas.

    Aunque presenta un coste computacional superior y requiere prestar atención al escalado de las variables, constituye una alternativa muy eficaz cuando existen patrones de similitud significativos en los datos. Por ello, es una de las técnicas de imputación más utilizadas en proyectos de Data Science y Machine Learning que buscan maximizar la calidad de la información disponible antes del modelado.