Scénario de test & Cas d'usage
Modèles d'arbres de régression additive bayésienne.
Découvrir toutes les actions de bartCréation d'une table de clients avec des données démographiques, un historique d'achat, et la dépense post-campagne. La table est partitionnée pour l'entraînement et le test.
| 1 | DATA mycas.clients_campagne; |
| 2 | call streaminit(2024); |
| 3 | DO i = 1 to 5000; |
| 4 | age = 20 + floor(rand('UNIFORM') * 50); |
| 5 | categorie_socio = byte(65 + floor(rand('UNIFORM')*4)); /* A, B, C, D */ |
| 6 | nb_achats_prec = floor(rand('UNIFORM')*20); |
| 7 | depense_moy_prec = 50 + rand('NORMAL', 0, 15); |
| 8 | a_repondu_pub = rand('BERNOULLI', 0.4); |
| 9 | /* La dépense est une fonction non-linéaire des autres variables + bruit */ |
| 10 | depense_post_campagne = 100 + (a_repondu_pub * 50) + (age/10 * 5) + (nb_achats_prec * 2) + (depense_moy_prec * 1.5) + rand('NORMAL', 0, 25); |
| 11 | IF depense_post_campagne < 0 THEN depense_post_campagne = 0; |
| 12 | OUTPUT; |
| 13 | END; |
| 14 | RUN; |
| 1 | PROC CAS; |
| 2 | TABLE.fetch / TABLE={name='clients_campagne'}, to=5; |
| 3 | SIMPLE.summary / TABLE={name='clients_campagne'}; |
| 4 | RUN; |
| 1 | PROC CAS; |
| 2 | bart.bartGauss / |
| 3 | TABLE={name='clients_campagne'}, |
| 4 | model={depVars={{name='depense_post_campagne'}}, effects={{vars={'age', 'categorie_socio', 'nb_achats_prec', 'depense_moy_prec', 'a_repondu_pub'}}}}, |
| 5 | class={{vars={'categorie_socio'}}}, |
| 6 | partByFrac={test=0.2, seed=123}, |
| 7 | nTree=50, |
| 8 | nBI=1000, |
| 9 | nMC=5000, |
| 10 | OUTPUT={casOut={name='predictions_clients', replace=true}, pred='P_depense', resid='R_depense'}, |
| 11 | store={name='modele_bart_marketing', replace=true}; |
| 12 | RUN; |
| 1 | PROC CAS; |
| 2 | TABLE.tableInfo / caslib='casuser'; |
| 3 | TABLE.fetch / TABLE={name='predictions_clients'}, to=10; |
| 4 | RUN; |
L'action doit s'exécuter sans erreur. Une table 'predictions_clients' doit être créée, contenant les colonnes originales plus 'P_depense' et 'R_depense'. Un itemstore nommé 'modele_bart_marketing' doit exister dans la caslib de l'utilisateur, prêt pour le scoring. Les logs doivent montrer que les données ont été partitionnées et que le modèle a été entraîné sur l'ensemble d'entraînement et évalué sur l'ensemble de test.