Scénario de test & Cas d'usage
Modelos de árboles de regresión aditiva bayesiana.
Descubrir todas las acciones de bartGenera 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.
| 1 | DATA 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; |
| 13 | RUN; |
| 1 | |
| 2 | PROC CASUTIL; |
| 3 | load |
| 4 | DATA=casuser.solicitudes_credito casout='solicitudes_credito' replace; |
| 5 | QUIT; |
| 6 |
| 1 | PROC 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'}; |
| 13 | RUN; |
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.