dataPreprocess binning

Scénario Standard : Segmentation Client pour une Campagne Marketing

Scénario de test & Cas d'usage

Contexte Métier

Une équipe marketing souhaite transformer des variables démographiques continues (âge, revenu) en groupes catégoriels pour construire un modèle de ciblage. L'objectif est de créer des segments de clientèle pertinents en utilisant différentes logiques de discrétisation : des tranches d'âge de même amplitude et des niveaux de revenu contenant un nombre équivalent de clients.
À propos du Set : dataPreprocess

Nettoyage, imputation et préparation des données.

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

Création d'une table de clients avec des âges et revenus variés.

Copié !
1DATA mycas.clients_marketing;
2 call streaminit(123);
3 DO id_client = 1 to 1000;
4 age = 18 + floor(rand('UNIFORM') * 60);
5 revenu_annuel = 25000 + floor(rand('NORMAL', 50000, 15000));
6 IF rand('UNIFORM') < 0.05 THEN call missing(revenu_annuel);
7 OUTPUT;
8 END;
9RUN;

Étapes de réalisation

1
Discrétisation de l'âge par la méthode 'BUCKET' (5 classes) et du revenu par la méthode 'QUANTILE' (4 classes - quartiles).
Copié !
1PROC CAS;
2 dataPreprocess.binning /
3 TABLE={name='clients_marketing', caslib='mycas'},
4 inputs={{name='age'}, {name='revenu_annuel'}},
5 method='BUCKET',
6 nBinsArray={5, 4},
7 methodOverrides={{vars={'revenu_annuel'}, method='QUANTILE'}},
8 copyVars={'id_client'},
9 outVarsNamePrefix='GRP',
10 casOut={name='clients_segmented', caslib='mycas', replace=true};
11RUN;
2
Génération du code de scoring SAS DATA Step pour répliquer la transformation sur de nouvelles données.
Copié !
1PROC CAS;
2 dataPreprocess.binning /
3 TABLE={name='clients_marketing', caslib='mycas'},
4 inputs={{name='age'}, {name='revenu_annuel'}},
5 method='BUCKET',
6 nBinsArray={5, 4},
7 methodOverrides={{vars={'revenu_annuel'}, method='QUANTILE'}},
8 code={casOut={name='scoring_code_binning', caslib='mycas', replace=true}};
9RUN;

Résultat Attendu


La table `mycas.clients_segmented` est créée. Elle contient `id_client`, `GRP_age` (1 à 5) et `GRP_revenu_annuel` (1 à 4). La table `mycas.scoring_code_binning` est également créée et contient le code SAS DATA Step permettant de ré-appliquer cette même logique de segmentation sur un autre jeu de données.