Scénario de test & Cas d'usage
Extracción de reglas booleanas para clasificación.
Descubrir todas las acciones de boolRuleSimulación de 10,000 documentos y 50,000 relaciones término-documento mediante bucles.
| 1 | |
| 2 | DATA mycas.med_docs; |
| 3 | DO i=1 to 10000; |
| 4 | id_doc=i; |
| 5 | IF mod(i,5)=0 THEN cat='Riesgo'; |
| 6 | ELSE cat='Normal'; |
| 7 | OUTPUT; |
| 8 | END; |
| 9 | |
| 10 | RUN; |
| 11 | |
| 12 | DATA mycas.med_terms; |
| 13 | DO j=1 to 500; |
| 14 | id_term=j; |
| 15 | label_term=catx('_','sintoma',j); |
| 16 | OUTPUT; |
| 17 | END; |
| 18 | |
| 19 | RUN; |
| 20 | |
| 21 | DATA mycas.med_links; |
| 22 | DO k=1 to 50000; |
| 23 | id_doc=ceil(rand('uniform')*10000); |
| 24 | id_term=ceil(rand('uniform')*500); |
| 25 | OUTPUT; |
| 26 | END; |
| 27 | |
| 28 | RUN; |
| 29 |
| 1 | |
| 2 | PROC CAS; |
| 3 | boolRule.brTrain / TABLE={name='med_links'} docId='id_doc' termId='id_term' docInfo={TABLE={name='med_docs'}, id='id_doc', targets={'cat'}, targetType='BINARY', events={'Riesgo'}} termInfo={TABLE={name='med_terms'}, id='id_term', label='label_term'} minSupports=50 maxCandidates=200 nThreads=4 casOut={rules={name='reglas_medicas', replace=true}, candidateTerms={name='candidatos_med', replace=true}}; |
| 4 | |
| 5 | RUN; |
| 6 |
La acción debe completar el procesamiento sin errores de memoria. Debido al alto 'minSupports' (50), solo los síntomas muy frecuentes deben generar reglas. Se espera que la tabla 'candidatos_med' sea significativamente menor que el total de términos disponibles.