fairAITools assessBias

Evaluación de Sesgo en Modelos de Detección de Fraude con Datos Masivos

Scénario de test & Cas d'usage

Contexto empresarial

Una compañía de seguros utiliza dos modelos de machine learning (un Gradient Boosting y una Red Neuronal) para detectar reclamaciones fraudulentas. Antes de desplegar el mejor modelo, necesitan evaluar si alguno de los dos introduce un sesgo en contra de ciertos grupos de edad, analizando un gran volumen de datos históricos de reclamaciones.
Sobre el conjunto : fairAITools

Detección y mitigación de sesgos en modelos de IA.

Descubrir todas las acciones de fairAITools
Preparación de datos

Crea una tabla de gran volumen (1 millón de registros) que simula reclamaciones de seguros. Incluye un grupo de edad como variable sensible y las predicciones de dos modelos de fraude ('P_FRAUDE_GB', 'P_FRAUDE_NN').

¡Copiado!
1DATA casuser.CLAIMS_LARGE;
2 LENGTH GRUPO_EDAD $ 10;
3 call streaminit(456);
4 DO i = 1 to 1000000;
5 edad = 18 + floor(rand('UNIFORM') * 70);
6 IF edad < 25 THEN GRUPO_EDAD = '18-24';
7 ELSE IF edad < 45 THEN GRUPO_EDAD = '25-44';
8 ELSE IF edad < 65 THEN GRUPO_EDAD = '45-64';
9 ELSE GRUPO_EDAD = '65+';
10 MONTO_RECLAMO = 50 + floor(rand('UNIFORM') * 5000);
11 HISTORIAL_RECLAMOS = floor(rand('UNIFORM')*10);
12 /* Simulación de predicciones de dos modelos */
13 P_FRAUDE_GB = 1 / (1 + exp(-( -2 + (MONTO_RECLAMO/5000) - (HISTORIAL_RECLAMOS/10) + ifn(GRUPO_EDAD='18-24', 0.3, -0.1) )));
14 P_FRAUDE_NN = 1 / (1 + exp(-( -2.2 + (MONTO_RECLAMO/4800) - (HISTORIAL_RECLAMOS/11) + ifn(GRUPO_EDAD='18-24', 0.35, -0.15) )));
15 /* Variable objetivo real */
16 IF P_FRAUDE_GB > 0.85 THEN ES_FRAUDE = 1; ELSE ES_FRAUDE = 0;
17 OUTPUT;
18 END;
19RUN;

Étapes de réalisation

1
Carga de la tabla masiva de reclamaciones en CAS.
¡Copiado!
1 
2PROC CASUTIL;
3load
4DATA=casuser.CLAIMS_LARGE casout='CLAIMS_LARGE' replace;
5QUIT;
6 
2
Ejecución de la evaluación de sesgo para ambos modelos simultáneamente, especificando las dos variables de predicción. Se usa '65+' como grupo de referencia.
¡Copiado!
1PROC CAS;
2 fairAITools.assessBias
3 TABLE={name='CLAIMS_LARGE'},
4 sensitiveVariable={name='GRUPO_EDAD'},
5 response={name='ES_FRAUDE'},
6 predictedVariables={{name='P_FRAUDE_GB'}, {name='P_FRAUDE_NN'}},
7 event='1',
8 referenceLevel='65+',
9 cutoff=0.75;
10RUN;

Resultado esperado


La acción debe procesar el millón de registros eficientemente y producir un informe comparativo del sesgo para los dos modelos. El resultado permitirá a la aseguradora no solo elegir el modelo más preciso, sino también el más justo, observando métricas como el 'Impacto Dispar' para cada grupo de edad y cada modelo.