0Pricing
Learn AI with Python · Lección

Detección de sesgos en modelos de ML

Atributos protegidos, impacto dispar, métricas de fairlearn, igualdad de oportunidades y paridad demográfica.

Detección de sesgos en modelos de ML es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.

Qué es el sesgo algorítmico

Un modelo está sesgado cuando sus predicciones perjudican sistemáticamente a un grupo definido por un atributo sensible (género, raza, edad). El sesgo suele proceder de datos de entrenamiento desequilibrados y puede causar daños reales en decisiones de contratación, concesión de préstamos o atención sanitaria.

Características sensibles

Una característica sensible es el atributo respecto al que medimos la equidad, como el género o la etnia. Las métricas de equidad comparan el comportamiento del modelo entre los grupos que define esta característica, aunque la característica no se utilice como entrada del modelo.

Paridad demográfica

La paridad demográfica exige que la tasa de predicciones positivas sea igual en todos los grupos. Si un modelo de préstamos aprueba al 60 % del grupo A, pero solo al 35 % del grupo B, se incumple la paridad demográfica, independientemente de la verdadera solvencia crediticia de los solicitantes.

# P(prediction = 1 | group = A) == P(prediction = 1 | group = B)

Odds igualadas

Las odds igualadas son más estrictas: exigen que las tasas de verdaderos positivos y de falsos positivos sean iguales en todos los grupos. Esto tiene en cuenta la etiqueta real, por lo que permite tasas de selección diferentes siempre que el modelo tenga la misma precisión para cada grupo.

# TPR and FPR equal across groups
# P(pred=1 | y=1, A) == P(pred=1 | y=1, B)
# P(pred=1 | y=0, A) == P(pred=1 | y=0, B)

Paridad frente a odds

Estas métricas pueden entrar en conflicto:

  • La paridad demográfica ignora la etiqueta real, por lo que puede imponer tasas iguales incluso cuando las tasas base difieren realmente
  • Las odds igualadas respetan la etiqueta real, pero permiten tasas de selección desiguales

Ninguna métrica es universalmente correcta; la elección depende del contexto y de la legislación.

Introducción a fairlearn

fairlearn es una biblioteca de Python para medir y mitigar la falta de equidad. Su herramienta principal de medición es MetricFrame, que calcula cualquier métrica desglosada por grupo sensible.

import pandas as pd
from fairlearn.metrics import MetricFrame
from sklearn.metrics import accuracy_score, selection_rate

Construcción de un MetricFrame

Debe proporcionar un diccionario de métricas, las etiquetas reales, las predicciones y las características sensibles. fairlearn evalúa cada métrica para cada grupo.

mf = MetricFrame(
    metrics={
        "accuracy": accuracy_score,
        "selection_rate": selection_rate,
    },
    y_true=y_test,
    y_pred=y_pred,
    sensitive_features=X_test["gender"],
)

Resultados por grupo

El atributo by_group devuelve una tabla con cada métrica para cada grupo, lo que hace que las disparidades sean evidentes de un vistazo.

print(mf.by_group)
#            accuracy  selection_rate
# gender
# female        0.81            0.34
# male          0.83            0.59

Resultados generales y diferencias

fairlearn también proporciona vistas agregadas: overall para todo el conjunto de datos y funciones auxiliares como difference() y ratio(), que resumen la brecha entre el mejor y el peor grupo.

print(mf.overall)
print(mf.difference(method="between_groups"))
# selection_rate    0.25  -> 25 point gap between groups

Visualización de las disparidades

Un gráfico de barras de by_group convierte los números en una representación intuitiva. Una gran diferencia entre las barras de una misma métrica es una señal de alerta clara de que el modelo trata de forma diferente a los grupos.

mf.by_group.plot.bar(
    subplots=True,
    layout=[1, 2],
    figsize=(10, 4),
    title="Metrics by group",
)

De la detección a la mitigación

Una vez cuantificado el sesgo, fairlearn ofrece algoritmos de mitigación (como ExponentiatedGradient y el posprocesamiento con ThresholdOptimizer) que vuelven a entrenar el modelo o ajustan los umbrales para cumplir una restricción de equidad. La detección siempre es el primer paso: no puede corregir lo que no ha medido.

Comprobación rápida

Compruebe sus conocimientos sobre equidad.

Resumen

Ha aprendido a detectar sesgos:

  • La paridad demográfica iguala las tasas de resultados positivos entre grupos
  • Las odds igualadas igualan las tasas TPR y FPR teniendo en cuenta la etiqueta
  • fairlearn MetricFrame calcula un diccionario de métricas para cada grupo de sensitive_features
  • Visualice by_group para detectar disparidades y, después, aplique medidas de mitigación

Preguntas frecuentes

¿La lección «Detección de sesgos en modelos de ML» es gratis?

Sí — el texto completo de «Detección de sesgos en modelos de ML» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.

¿Qué aprenderé en «Detección de sesgos en modelos de ML»?

Atributos protegidos, impacto dispar, métricas de fairlearn, igualdad de oportunidades y paridad demográfica. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Learn AI with Python?

No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Detección de sesgos en modelos de ML»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?

Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Detección de sesgos en modelos de ML
  2. Valores SHAP para la explicabilidad de modelos
  3. LIME: explicaciones locales interpretables
  4. Marcos de ética y gobernanza de la IA
← Volver a Learn AI with Python