Scénario de test & Cas d'usage
Clasificación utilizando redes bayesianas.
Descubrir todas las acciones de bayesianNetClassifierCrea una tabla de clientes con variables demográficas simuladas y una variable objetivo que indica si respondieron o no a una campaña anterior.
| 1 | DATA casuser.CLIENTES_MARKETING; |
| 2 | call streaminit(42); |
| 3 | LENGTH Region $ 5 Compra_Anterior $ 2 Respuesta_Campana $ 2; |
| 4 | DO i = 1 to 2000; |
| 5 | Edad_Rango = ceil(4 * rand('uniform')); |
| 6 | IF rand('uniform') < 0.6 THEN Region = 'Norte'; ELSE Region = 'Sur'; |
| 7 | IF rand('uniform') < 0.3 THEN Compra_Anterior = 'Si'; ELSE Compra_Anterior = 'No'; |
| 8 | IF (Region='Norte' and Compra_Anterior='Si') THEN Respuesta_Campana = 'Si'; |
| 9 | ELSE IF (Edad_Rango > 2 and rand('uniform') < 0.2) THEN Respuesta_Campana = 'Si'; |
| 10 | ELSE Respuesta_Campana = 'No'; |
| 11 | OUTPUT; |
| 12 | END; |
| 13 | RUN; |
| 1 | PROC CAS; |
| 2 | TABLE.loadTable / |
| 3 | caslib='CASUSER' path='CLIENTES_MARKETING.sashdat' casout={name='CLIENTES_MARKETING', replace=true}; |
| 4 | RUN; |
| 1 | PROC CAS; |
| 2 | bayesianNetClassifier.bnet / |
| 3 | TABLE={name='CLIENTES_MARKETING'}, |
| 4 | target='Respuesta_Campana', |
| 5 | inputs={{name='Edad_Rango'}, {name='Region'}, {name='Compra_Anterior'}}, |
| 6 | nominals={'Edad_Rango', 'Region', 'Compra_Anterior', 'Respuesta_Campana'}, |
| 7 | structures={'NAIVE'}, |
| 8 | OUTPUT={casout={name='PREDICCIONES_MARKETING', replace=true}, copyvars={'i', 'Respuesta_Campana'}}, |
| 9 | saveState={name='MODELO_MARKETING_NAIVE', replace=true}; |
| 10 | RUN; |
La acción debe entrenar con éxito un modelo Naive Bayes. Se espera la creación de dos tablas en CAS: `MODELO_MARKETING_NAIVE`, que contiene el estado del modelo para scoring futuro, y `PREDICCIONES_MARKETING`, que contiene el ID del cliente, la respuesta real y la predicción del modelo con sus probabilidades asociadas.