bart bartScore

Scoring de l'appétence client pour une offre marketing (Classification)

Scénario de test & Cas d'usage

Contexte Métier

Une banque souhaite lancer une nouvelle campagne pour un produit d'investissement. Elle a entraîné un modèle BART (bartProbit) sur des données de campagnes précédentes pour prédire la probabilité qu'un client souscrive à l'offre. L'objectif est de scorer un nouveau portefeuille de clients pour cibler les plus appétents et optimiser le ROI de la campagne.
À 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 d'entraînement `clients_train` avec des données clients et leur réponse (0/1) à une offre. Entraînement d'un modèle de classification `bartProbit` pour prédire la variable `souscription`. Création d'une table `clients_a_scorer` pour les nouveaux clients à évaluer.

Copié !
1DATA clients_train;
2 call streaminit(123);
3 DO id_client = 1 to 2000;
4 age = 20 + rand('integer', 50);
5 revenu_annuel = 30000 + rand('integer', 70000);
6 nb_produits_detenus = 1 + rand('integer', 5);
7 anciennete_client = rand('integer', 20);
8 IF (revenu_annuel > 60000 and anciennete_client > 10) THEN souscription = 1;
9 ELSE IF (age < 30 and nb_produits_detenus < 2) THEN souscription = 1;
10 ELSE souscription = 0;
11 IF rand('uniform') < 0.2 THEN souscription = 1 - souscription;
12 OUTPUT;
13 END;
14RUN;
15DATA clients_a_scorer;
16 call streaminit(456);
17 DO id_client = 2001 to 2500;
18 segment = byte(mod(id_client, 3) + 65);
19 age = 20 + rand('integer', 50);
20 revenu_annuel = 30000 + rand('integer', 70000);
21 nb_produits_detenus = 1 + rand('integer', 5);
22 anciennete_client = rand('integer', 20);
23 OUTPUT;
24 END;
25RUN;
26PROC CAS;
27 load DATA=CASUSER.clients_train outcaslib="casuser" casout="clients_train" replace;
28 load DATA=CASUSER.clients_a_scorer outcaslib="casuser" casout="clients_a_scorer" replace;
29 bart.bartProbit TABLE={name='clients_train'},
30 model={depVars={{name='souscription', event='1'}}, effects={{vars={'age', 'revenu_annuel', 'nb_produits_detenus', 'anciennete_client'}}}},
31 responseLevelOrder='ASC',
32 store={name='marketing_probit_model', replace=true};
33RUN;
34QUIT;

Étapes de réalisation

1
Exécution du scoring de classification sur la table `clients_a_scorer` en utilisant le modèle `marketing_probit_model`.
Copié !
1PROC CAS;
2 bart.bartScore TABLE={name='clients_a_scorer'},
3 restore={name='marketing_probit_model'},
4 pred='Prob_Souscription',
5 into='Ciblage_Campagne',
6 intoCutpt=0.6,
7 copyVars={'id_client', 'segment'},
8 casOut={name='clients_scores_marketing', replace=true};
9RUN;
10QUIT;

Résultat Attendu


La table de sortie `clients_scores_marketing` contient l'identifiant de chaque client, son segment, la probabilité prédite de souscription (`Prob_Souscription`), et une variable de décision (`Ciblage_Campagne`). Les clients avec une probabilité supérieure à 0.6 sont marqués avec la valeur 1 ('cibler'), les autres avec 0.