bayesianNetClassifier bnet

Scénario Standard : Prédiction de l'Adhésion à une Offre Marketing

Scénario de test & Cas d'usage

Contexte Métier

Une banque souhaite optimiser sa prochaine campagne marketing. L'objectif est de prédire quels clients sont les plus susceptibles de souscrire à un nouveau produit d'investissement, en se basant sur leurs données démographiques et leur comportement bancaire passé. Le modèle doit être sauvegardé pour être déployé en production.
À propos du Set : bayesianNetClassifier

Classification utilisant des réseaux bayésiens.

Découvrir toutes les actions de bayesianNetClassifier
Préparation des Données

Création d'une table de clients avec des informations socio-démographiques, des indicateurs bancaires et une variable cible indiquant s'ils ont souscrit à l'offre précédente.

Copié !
1DATA casuser.clients_marketing;
2 call streaminit(4321);
3 DO id_client = 1 to 2000;
4 age = 20 + rand('integer', 50);
5 IF age < 30 THEN csp = 'Etudiant';
6 ELSE IF age < 50 THEN csp = 'Employe';
7 ELSE csp = 'Retraite';
8 revenu_annuel = 30000 + (age/10) * rand('uniform') * 20000;
9 nb_produits = 1 + rand('integer', 5);
10 /* Simulation de la cible */
11 IF csp='Employe' and revenu_annuel > 50000 and nb_produits > 2 THEN souscrit = 'Oui';
12 ELSE IF rand('uniform') < 0.25 THEN souscrit = 'Oui';
13 ELSE souscrit = 'Non';
14 OUTPUT;
15 END;
16RUN;

Étapes de réalisation

1
Chargement des données clients dans la session CAS.
Copié !
1PROC CASUTIL;
2 load DATA=casuser.clients_marketing outcaslib='casuser' casout='clients_marketing' replace;
3RUN;
4QUIT;
2
Entraînement d'un modèle 'Tree-Augmented Naive Bayes' (TAN) en partitionnant les données (70% entraînement, 30% validation) et en sauvegardant l'état du modèle pour un scoring ultérieur.
Copié !
1PROC CAS;
2 ACTION bayesianNetClassifier.bnet /
3 TABLE={name='clients_marketing', caslib='casuser'},
4 target='souscrit',
5 inputs={{name='age'}, {name='csp'}, {name='revenu_annuel'}, {name='nb_produits'}},
6 nominals={{name='csp'}, {name='souscrit'}},
7 structures={'TAN'},
8 partByFrac={validate=0.3, seed=54321},
9 saveState={name='bnet_marketing_model', replace=true};
10RUN;
11QUIT;

Résultat Attendu


L'action s'exécute avec succès. Les tables de résultats indiquent les performances du modèle sur l'échantillon de validation (ex: matrice de confusion, taux de mauvaise classification). Une table CAS nommée 'bnet_marketing_model' est créée dans la caslib 'casuser', contenant l'état du modèle prêt à être utilisé pour scorer de nouveaux clients.