Scénario de test & Cas d'usage
Limpieza, imputación y preprocesamiento de datos.
Descubrir todas las acciones de dataPreprocessCrea una tabla de clientes con datos demográficos y de compras. Incluye una variedad de edades y gastos para simular una base de clientes realista.
| 1 | DATA casuser.clientes_campana (promote=yes); |
| 2 | call streaminit(123); |
| 3 | DO id_cliente = 1 to 5000; |
| 4 | edad = 18 + floor(rand('UNIFORM') * 62); |
| 5 | gasto_anual = 50 + (rand('NORMAL', 500, 250)); |
| 6 | IF gasto_anual < 0 THEN gasto_anual = 50; |
| 7 | region = byte(65 + floor(rand('UNIFORM')*4)); /* A, B, C, D */ |
| 8 | OUTPUT; |
| 9 | END; |
| 10 | RUN; |
| 1 | |
| 2 | PROC CASUTIL; |
| 3 | load |
| 4 | DATA=casuser.clientes_campana casout='clientes_campana' replace; |
| 5 | QUIT; |
| 6 |
| 1 | PROC CAS; |
| 2 | dataPreprocess.binning / |
| 3 | TABLE={name='clientes_campana', caslib='casuser'}, |
| 4 | inputs={{name='edad'}, {name='gasto_anual'}}, |
| 5 | method='QUANTILE', |
| 6 | nBinsArray={5, 10}, |
| 7 | copyAllVars=true, |
| 8 | outVarsNamePrefix='segmento_q', |
| 9 | casOut={name='clientes_segmentados', caslib='casuser', replace=true}, |
| 10 | casOutBinDetails={name='detalles_segmentacion', caslib='casuser', replace=true}; |
| 11 | RUN; |
| 12 | QUIT; |
| 1 | PROC CAS; |
| 2 | TABLE.fetch / TABLE={name='detalles_segmentacion', caslib='casuser'}; |
| 3 | RUN; |
| 4 | QUIT; |
Se crean dos tablas en CAS. 'clientes_segmentados' contiene todos los datos originales más dos nuevas columnas, 'segmento_q_edad' (valores de 1 a 5) y 'segmento_q_gasto_anual' (valores de 1 a 10). La tabla 'detalles_segmentacion' contiene metadatos que describen los límites superior e inferior, el recuento y el porcentaje de observaciones para cada uno de los 15 intervalos creados.