Scénario de test & Cas d'usage
Machine Learning automatisé (AutoML) et génération de pipelines.
Découvrir toutes les actions de dataSciencePilotCréation d'une table volumineuse simulant des lectures de capteurs, avec une haute cardinalité pour `ID_MACHINE` et `ID_CAPTEUR`. Une variable `POIDS_EVENEMENT` est ajoutée pour servir de fréquence.
| 1 | DATA casuser.iot_sensors (bufsize=1g); |
| 2 | LENGTH ID_MACHINE $50. ID_CAPTEUR $50.; |
| 3 | DO ID_MACHINE_NUM = 1 to 10000; |
| 4 | ID_MACHINE = 'MACHINE-' || put(ID_MACHINE_NUM, z8.); |
| 5 | DO j = 1 to 500; |
| 6 | ID_CAPTEUR = 'SENSOR-' || put(j, z4.); |
| 7 | TEMPERATURE = 20 + rand('NORMAL', 0, 5); |
| 8 | PRESSION = 1013 + rand('NORMAL', 0, 2); |
| 9 | VIBRATION = rand('NORMAL', 0, 0.1); |
| 10 | POIDS_EVENEMENT = 1 + floor(rand('UNIFORM')*5); |
| 11 | /* Simuler des pannes corrélées pour certains capteurs */ |
| 12 | IF j > 450 and rand('UNIFORM') < 0.4 THEN call missing(PRESSION, VIBRATION); |
| 13 | IF j < 20 and rand('UNIFORM') < 0.2 THEN call missing(TEMPERATURE); |
| 14 | OUTPUT; |
| 15 | END; |
| 16 | END; |
| 17 | RUN; |
| 1 | |
| 2 | PROC CASUTIL; |
| 3 | load |
| 4 | DATA=casuser.iot_sensors casout='iot_sensors' replace; |
| 5 | QUIT; |
| 6 |
| 1 | PROC CAS; |
| 2 | dataSciencePilot.analyzeMissingPatterns |
| 3 | TABLE={name='iot_sensors'}, |
| 4 | distinctCountLimit=2000, |
| 5 | misraGries=true, |
| 6 | freq='POIDS_EVENEMENT', |
| 7 | casOut={name='iot_perf_analysis', replace=true}; |
| 8 | RUN; |
| 9 | QUIT; |
L'action doit s'exécuter avec succès malgré la haute cardinalité des identifiants (plus de 10000 machines). La table de résultats `iot_perf_analysis` doit identifier un modèle principal où les variables `PRESSION` et `VIBRATION` sont manquantes simultanément. L'analyse doit prendre en compte la variable `POIDS_EVENEMENT`, donnant plus d'importance aux événements fréquents. Ceci valide la robustesse et la performance de l'action sur de grands volumes de données complexes.