bayesianNetClassifier bnet

Entrenamiento de un Modelo Naive Bayes para Predicción de Respuesta a Campaña de Marketing

Scénario de test & Cas d'usage

Contexto empresarial

Un equipo de marketing desea predecir qué clientes tienen más probabilidades de responder a una nueva campaña basándose en sus datos demográficos e históricos. Se elige un modelo Naive Bayes simple por su rapidez de entrenamiento y su facilidad de interpretación para obtener una primera evaluación.
Sobre el conjunto : bayesianNetClassifier

Clasificación utilizando redes bayesianas.

Descubrir todas las acciones de bayesianNetClassifier
Preparación de datos

Crea una tabla de clientes con variables demográficas simuladas y una variable objetivo que indica si respondieron o no a una campaña anterior.

¡Copiado!
1DATA 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;
13RUN;

Étapes de réalisation

1
Carga de la tabla de clientes en la memoria de CAS.
¡Copiado!
1PROC CAS;
2 TABLE.loadTable /
3 caslib='CASUSER' path='CLIENTES_MARKETING.sashdat' casout={name='CLIENTES_MARKETING', replace=true};
4RUN;
2
Ejecución de la acción bnet para entrenar un modelo Naive Bayes, guardando el estado del modelo y la tabla de scoring.
¡Copiado!
1PROC 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};
10RUN;

Resultado esperado


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.