boolRule brTrain

Minería de Texto en Historiales Clínicos Masivos (Rendimiento)

Scénario de test & Cas d'usage

Contexto empresarial

Un hospital universitario procesa millones de notas clínicas históricas. Necesitan extraer reglas complejas para identificar pacientes con 'Riesgo_Alto' de reingreso. Este escenario prueba la capacidad de la acción para manejar un volumen alto de relaciones término-documento y filtrar ruido usando parámetros de soporte mínimo.
Sobre el conjunto : boolRule

Extracción de reglas booleanas para clasificación.

Descubrir todas las acciones de boolRule
Preparación de datos

Simulación de 10,000 documentos y 50,000 relaciones término-documento mediante bucles.

¡Copiado!
1 
2DATA mycas.med_docs;
3DO i=1 to 10000;
4id_doc=i;
5IF mod(i,5)=0 THEN cat='Riesgo';
6ELSE cat='Normal';
7OUTPUT;
8END;
9 
10RUN;
11 
12DATA mycas.med_terms;
13DO j=1 to 500;
14id_term=j;
15label_term=catx('_','sintoma',j);
16OUTPUT;
17END;
18 
19RUN;
20 
21DATA mycas.med_links;
22DO k=1 to 50000;
23id_doc=ceil(rand('uniform')*10000);
24id_term=ceil(rand('uniform')*500);
25OUTPUT;
26END;
27 
28RUN;
29 

Étapes de réalisation

1
Ejecución con parámetros de filtrado agresivos para optimizar rendimiento (minSupports, maxCandidates).
¡Copiado!
1 
2PROC CAS;
3boolRule.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 
5RUN;
6 

Resultado esperado


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.