Scénario de test & Cas d'usage
Limpieza, imputación y preprocesamiento de datos.
Descubrir todas las acciones de dataPreprocessGenera una tabla de gran volumen (1 millón de registros) para simular lecturas de sensores IoT, incluyendo una variable de ponderación.
| 1 | DATA casuser.lecturas_sensores (promote=yes); |
| 2 | call streaminit(789); |
| 3 | DO id_sensor = 1 to 1000; |
| 4 | DO i = 1 to 1000; |
| 5 | temperatura = 20 + rand('NORMAL', 0, 5); |
| 6 | presion = 1013 + rand('NORMAL', 0, 20); |
| 7 | importancia = rand('UNIFORM'); /* Ponderación */ |
| 8 | OUTPUT; |
| 9 | END; |
| 10 | END; |
| 11 | RUN; |
| 1 | |
| 2 | PROC CASUTIL; |
| 3 | load |
| 4 | DATA=casuser.lecturas_sensores casout='lecturas_sensores' replace; |
| 5 | QUIT; |
| 6 |
| 1 | PROC CAS; |
| 2 | dataPreprocess.binning / |
| 3 | TABLE={name='lecturas_sensores', caslib='casuser'}, |
| 4 | inputs={{name='temperatura'}, {name='presion'}}, |
| 5 | method='BUCKET', |
| 6 | nBinsArray=20, |
| 7 | weight='importancia', |
| 8 | code={casOut={name='codigo_scoring_sensores', caslib='casuser', replace=true}}; |
| 9 | RUN; |
| 10 | QUIT; |
| 1 | PROC CAS; |
| 2 | TABLE.fetch / TABLE={name='codigo_scoring_sensores', caslib='casuser'}; |
| 3 | RUN; |
| 4 | QUIT; |
La acción se completa eficientemente sobre el millón de registros. Se crea una tabla CAS llamada 'codigo_scoring_sensores'. Esta tabla contiene una columna de texto con un programa DATA Step completo y válido. El código generado debe contener una serie de sentencias IF/ELSE IF/ELSE que asignan un número de intervalo a las variables 'temperatura' y 'presion' basado en los límites calculados por la acción 'binning'.