bart bartProbit

Scénario Standard : Prédiction de la Réponse à une Campagne Marketing

Scénario de test & Cas d'usage

Contexte Métier

Une entreprise de vente au détail souhaite optimiser ses campagnes marketing. L'objectif est de prédire la probabilité qu'un client réponde à une offre promotionnelle (achat ou non) en se basant sur son historique d'achat et ses informations démographiques. Ce modèle permettra de cibler plus efficacement les clients à fort potentiel.
À propos du Set : bart

Modèles d'arbres de régression additive bayésienne.

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

Création d'une table de clients avec des données démographiques, un historique d'achat et une variable cible binaire indiquant la réponse à la dernière campagne.

Copié !
1DATA casuser.MarketingResponse_fr;
2 call streaminit(456);
3 DO client_id = 1 to 5000;
4 age = 25 + floor(rand('Uniform') * 45);
5 revenu_annuel = 25000 + floor(rand('Uniform') * 100000);
6 depenses_an_passe = 50 + floor(rand('Uniform') * 2000);
7 IF rand('Uniform') < 0.3 THEN segment_client = 'Occasionnel';
8 ELSE IF rand('Uniform') < 0.8 THEN segment_client = 'Fidele';
9 ELSE segment_client = 'Premium';
10 
11 logit = -3 + (age / 20) - (revenu_annuel / 80000) + (depenses_an_passe / 1000);
12 IF segment_client = 'Fidele' THEN logit = logit + 0.8;
13 IF segment_client = 'Premium' THEN logit = logit + 1.5;
14 
15 prob_reponse = cdf('Normal', logit);
16 IF rand('Uniform') < prob_reponse THEN a_repondu = 1;
17 ELSE a_repondu = 0;
18 
19 OUTPUT;
20 END;
21RUN;

Étapes de réalisation

1
Chargement de la table de données marketing dans la session CAS.
Copié !
1 
2PROC CASUTIL;
3load
4DATA=casuser.MarketingResponse_fr casout='MarketingResponse_fr' replace;
5QUIT;
6 
2
Exécution de l'action bartProbit en partitionnant les données (70% entraînement, 30% test), en spécifiant la variable catégorielle 'segment_client' et en sauvegardant le modèle.
Copié !
1PROC CAS;
2 bart.bartProbit TABLE={name='MarketingResponse_fr'},
3 target='a_repondu',
4 inputs={'age', 'revenu_annuel', 'depenses_an_passe', 'segment_client'},
5 class={'segment_client'},
6 nTree=150,
7 nBI=500,
8 nMC=1000,
9 seed=12345,
10 partByFrac={test=0.3, seed=54321},
11 store={name='bart_marketing_model', replace=true};
12RUN;
13QUIT;
3
Vérification que le modèle a bien été sauvegardé en listant les tables en mémoire.
Copié !
1PROC CAS;
2 TABLE.tableInfo / caslib='CASUSER';
3RUN;
4QUIT;

Résultat Attendu


L'action s'exécute sans erreur. Les tables de résultats montrent les statistiques d'ajustement pour les partitions d'entraînement et de test. La table 'bart_marketing_model' est créée et visible dans la caslib CASUSER, prête à être utilisée pour le scoring de nouveaux clients.