?>Array ( [lang] => es [id] => 16 ) Restauración y Reutilización de un Conjunto de Acciones de Scoring en un Entorno de Marketing - WeAreCAS
builtins actionSetFromTable

Restauración y Reutilización de un Conjunto de Acciones de Scoring en un Entorno de Marketing

Scénario de test & Cas d'usage

Contexto empresarial

Un equipo de analítica de marketing ha desarrollado un conjunto de acciones personalizado para puntuar la propensión de compra de los clientes. Necesitan guardar esta lógica y permitir que otros analistas, en diferentes sesiones de CAS, la carguen y apliquen a nuevos datos de clientes sin tener que redefinir las acciones cada vez.
Preparación de datos

Se define un conjunto de acciones 'marketingScoring' con una acción para calcular un score simple. Luego, se guarda en una tabla CAS llamada 'marketingActionSetRepo' para su posterior reutilización.

¡Copiado!
1PROC CAS;
2 BUILTINS.defineActionSet /
3 name='marketingScoring',
4 actions={{
5 name='calculateScore',
6 definition='
7 table.save / table={name="scored_customers", replace=true},
8 casout={name="scored_customers_out", replace=true},
9 code="DATA scored_customers_out; SET scored_customers; score = annual_income / 10000 * customer_age / 10; RUN;";
10 print \"INFO: Scoring completado.\";'
11 }};
12 RUN;
13 BUILTINS.actionSetToTable /
14 name='marketingScoring',
15 TABLE={name='marketingActionSetRepo', caslib='CASUSER', replace=true};
16 RUN;
17 /* Simular datos de clientes para el test */
18 DATA CASUSER.customers_to_score;
19 DO customer_id = 1 to 100;
20 annual_income = 30000 + rand('INTEGER', 1, 70000);
21 customer_age = 20 + rand('INTEGER', 1, 45);
22 OUTPUT;
23 END;
24 RUN;
25QUIT;

Étapes de réalisation

1
En una nueva sesión simulada, se carga el conjunto de acciones 'marketingScoring' desde la tabla de repositorio.
¡Copiado!
1PROC CAS;
2 /* Simula una nueva sesión donde 'marketingScoring' no existe */
3 BUILTINS.actionSetFromTable /
4 TABLE={name='marketingActionSetRepo', caslib='CASUSER'};
5 RUN;
6QUIT;
2
Se verifica que el conjunto de acciones se ha cargado correctamente utilizando 'builtins.actionSetInfo'.
¡Copiado!
1PROC CAS;
2 BUILTINS.actionSetInfo / name='marketingScoring';
3 RUN;
4QUIT;
3
Se ejecuta la acción 'calculateScore' del conjunto restaurado sobre una nueva tabla de clientes para confirmar su funcionalidad.
¡Copiado!
1PROC CAS;
2 /* Cargar los datos de clientes a la sesión */
3 load DATA=CASUSER.customers_to_score;
4 RUN;
5 /* Ejecutar la acción restaurada */
6 marketingScoring.calculateScore / TABLE={name='customers_to_score'};
7 RUN;
8 /* Verificar el resultado */
9 TABLE.fetch / TABLE={name='scored_customers_out', to=5};
10 RUN;
11QUIT;

Resultado esperado


El conjunto de acciones 'marketingScoring' se restaura con éxito. La acción 'calculateScore' se ejecuta sobre la tabla 'customers_to_score', creando una nueva tabla 'scored_customers_out' con la columna 'score' calculada. La llamada a 'actionSetInfo' y 'table.fetch' confirman que el conjunto de acciones y sus resultados son correctos, validando la reutilización de la lógica de negocio entre sesiones.