dataPreprocess binning

Monitorización de Sensores IoT y Generación de Código de Puntuación

Scénario de test & Cas d'usage

Contexto empresarial

En una planta de fabricación, se monitorizan miles de sensores en tiempo real. Para simplificar el sistema de alertas, las lecturas continuas de 'temperatura' y 'presion' deben ser discretizadas. El objetivo es probar el rendimiento de la acción con un volumen de datos considerable y generar un código DATA Step reutilizable para aplicar esta misma lógica de discretización en un entorno de producción de baja latencia.
Sobre el conjunto : dataPreprocess

Limpieza, imputación y preprocesamiento de datos.

Descubrir todas las acciones de dataPreprocess
Preparación de datos

Genera una tabla de gran volumen (1 millón de registros) para simular lecturas de sensores IoT, incluyendo una variable de ponderación.

¡Copiado!
1DATA 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;
11RUN;

Étapes de réalisation

1
Carga de la tabla de sensores a la memoria de CAS.
¡Copiado!
1 
2PROC CASUTIL;
3load
4DATA=casuser.lecturas_sensores casout='lecturas_sensores' replace;
5QUIT;
6 
2
Ejecución de 'binning' con el método 'BUCKET' para crear 20 intervalos de igual ancho. Se utiliza el parámetro 'weight' y se solicita la generación de código DATA Step.
¡Copiado!
1PROC 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}};
9RUN;
10QUIT;
3
Inspección del código DATA Step generado para validar su sintaxis y lógica.
¡Copiado!
1PROC CAS;
2 TABLE.fetch / TABLE={name='codigo_scoring_sensores', caslib='casuser'};
3RUN;
4QUIT;

Resultado esperado


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'.