Scénario de test & Cas d'usage
Entraînement de réseaux de neurones artificiels classiques.
Découvrir toutes les actions de neuralNetCréation d'une table `PROSPECTS_MARKETING` avec des données de prospects. Certaines valeurs clés comme `REVENU` et `NB_ACHATS_AN_PASSE` sont volontairement mises à manquant (`.`) pour un sous-ensemble des données.
| 1 | DATA casuser.PROSPECTS_MARKETING(promote=yes); |
| 2 | call streaminit(789); |
| 3 | DO i = 1 to 2000; |
| 4 | AGE = 20 + rand('integer', 50); |
| 5 | REVENU = 40000 + rand('integer', 80000); |
| 6 | NB_ACHATS_AN_PASSE = rand('integer', 15); |
| 7 | APPETENCE_OFFRE = (REVENU/100000 + NB_ACHATS_AN_PASSE/20) > rand('uniform')*1.1; |
| 8 | IF rand('uniform') < 0.2 THEN call missing(REVENU); |
| 9 | IF rand('uniform') < 0.15 THEN call missing(NB_ACHATS_AN_PASSE); |
| 10 | OUTPUT; |
| 11 | END; |
| 12 | drop i; |
| 13 | RUN; |
| 1 | PROC CAS; |
| 2 | neuralNet.annTrain / |
| 3 | TABLE={name='PROSPECTS_MARKETING'}, |
| 4 | inputs={'AGE', 'REVENU', 'NB_ACHATS_AN_PASSE'}, |
| 5 | target='APPETENCE_OFFRE', |
| 6 | modelTable={name='MODELE_MARKETING', replace=true}; |
| 7 | QUIT; |
| 1 | PROC CAS; |
| 2 | neuralNet.annCode / |
| 3 | modelTable={name='MODELE_MARKETING'}, |
| 4 | code={casOut={name='CODE_SCORING_MARKETING', replace=true}}; |
| 5 | QUIT; |
| 1 | PROC CAS; |
| 2 | datastep.runCode / |
| 3 | codeTable={name='CODE_SCORING_MARKETING'} |
| 4 | casout={name='PROSPECTS_SCORES', replace=true}; |
| 5 | QUIT; |
Le code de scoring généré s'exécute sans erreur sur des données contenant des valeurs manquantes. La table `PROSPECTS_SCORES` est créée et contient un score de prédiction valide pour toutes les 2000 observations initiales, prouvant que la logique d'imputation (moyenne de la variable) a été correctement intégrée et appliquée par le code DATA step.