bart bartProbit

Evaluación de Riesgo de Incumplimiento Crediticio con Gran Volumen de Datos y Particionamiento

Scénario de test & Cas d'usage

Contexto empresarial

Un banco necesita procesar un gran lote de 100,000 solicitudes de préstamos para evaluar el riesgo de incumplimiento. El modelo debe ser entrenado y validado en un corto período de tiempo, requiriendo un uso eficiente de los recursos computacionales y la capacidad de particionar los datos para una evaluación robusta.
Sobre el conjunto : bart

Modelos de árboles de regresión aditiva bayesiana.

Descubrir todas las acciones de bart
Preparación de datos

Genera una tabla grande ('solicitudes_credito') con 100,000 observaciones. Incluye predictores como el puntaje de crédito, la relación deuda-ingresos, el monto del préstamo y la duración del empleo. La variable objetivo 'incumplimiento' es binaria.

¡Copiado!
1DATA casuser.solicitudes_credito(caslib='casuser');
2 call streaminit(1337);
3 DO i = 1 to 100000;
4 puntaje_credito = 500 + floor(rand('UNIFORM') * 350);
5 deuda_ingresos = rand('UNIFORM') * 0.6;
6 monto_prestamo = 5000 + floor(rand('UNIFORM') * 45000);
7 duracion_empleo = floor(rand('UNIFORM') * 15);
8 log_odds = 1.5 - (puntaje_credito / 200) + (deuda_ingresos * 2) + (monto_prestamo / 20000);
9 prob = 1 / (1 + exp(-log_odds));
10 incumplimiento = rand('BERNOULLI', prob);
11 OUTPUT;
12 END;
13RUN;

Étapes de réalisation

1
Cargar la tabla de gran volumen 'solicitudes_credito' en CAS.
¡Copiado!
1 
2PROC CASUTIL;
3load
4DATA=casuser.solicitudes_credito casout='solicitudes_credito' replace;
5QUIT;
6 
2
Entrenar el modelo BART Probit particionando los datos (70% entrenamiento, 30% prueba) y generando predicciones en una tabla de salida. Se establece un tiempo máximo de entrenamiento para simular una ventana de procesamiento restringida.
¡Copiado!
1PROC CAS;
2 ACTION bart.bartProbit /
3 TABLE={name='solicitudes_credito'},
4 target='incumplimiento',
5 inputs={'puntaje_credito', 'deuda_ingresos', 'monto_prestamo', 'duracion_empleo'},
6 partByFrac={test=0.3, seed=9876},
7 maxTrainTime=300,
8 nTree=100,
9 nBI=500,
10 nMC=2000,
11 seed=54321,
12 OUTPUT={casout={name='predicciones_riesgo', replace=true}, pred='prob_incumplimiento'};
13RUN;

Resultado esperado


La acción debe completarse en menos de 300 segundos. Se crea una tabla CAS 'predicciones_riesgo' que contiene la probabilidad de incumplimiento para cada solicitud. Los resultados del modelo deben incluir métricas de ajuste calculadas tanto para la partición de entrenamiento como para la de prueba, permitiendo evaluar el sobreajuste.