La acción `brTrain` del conjunto de acciones `boolRule` extrae reglas booleanas a partir de datos de texto. Esta acción es fundamental en el text mining para descubrir patrones y relaciones en grandes volúmenes de documentos, permitiendo la creación de modelos de clasificación basados en la presencia o ausencia de términos específicos.
| Parámetro | Descripción |
|---|---|
| table | Especifica la tabla de datos de entrada para la extracción de reglas. |
| docId | Especifica la variable en la tabla de entrada que contiene el ID del documento. |
| termId | Especifica la variable en la tabla de entrada que contiene el ID del término. |
| docInfo | Especifica la información sobre la tabla de documentos, incluyendo la tabla en sí, el ID del documento y las variables objetivo. |
| termInfo | Especifica la información sobre la tabla de términos, incluyendo la tabla, el ID del término y la etiqueta del término. |
| gNegative | Especifica la puntuación g mínima necesaria para que un término negativo sea considerado para la extracción de reglas. El valor predeterminado es 8. |
| gPositive | Especifica la puntuación g mínima necesaria para un término positivo. El valor predeterminado es 8. |
| maxCandidates | Especifica el número de términos candidatos a ser seleccionados para cada categoría. El valor predeterminado es 500. |
| maxTriesIn | Especifica el valor k-in para la búsqueda k-best en el proceso de conjunto de términos para crear reglas. El valor predeterminado es 150. |
| maxTriesOut | Especifica el valor k-out para la búsqueda k-best en el proceso de conjunto de reglas para crear un conjunto de reglas. El valor predeterminado es 50. |
| minSupports | Especifica el número mínimo de documentos en los que un término debe aparecer para que se utilice en la creación de una regla. El valor predeterminado es 3. |
| mNegative | Especifica el valor m para calcular la precisión estimada para los términos negativos. El valor predeterminado es 4. |
| mPositive | Especifica el valor m para calcular la precisión estimada para los términos positivos. El valor predeterminado es 2. |
| nThreads | Especifica el número de hilos a utilizar por nodo. |
| casOuts | Especifica las tablas de datos de salida que contendrán los resultados, como las reglas, los términos de las reglas y los términos candidatos. |
| useOldNames | Especifica si se deben usar los nombres de variables antiguos utilizados en el procedimiento HPBOOLRULE. El valor predeterminado es Falso. |
Se crean tres tablas: `mycas.doc_info` con la información de los documentos y sus categorías, `mycas.term_doc` que mapea términos a documentos, y `mycas.term_info` con los detalles de los términos. Estos datos simulan un escenario de clasificación de texto donde se busca extraer reglas para identificar si un documento pertenece a la categoría 'sports'.
| 1 | DATA mycas.doc_info; INFILE DATALINES delimiter=','; INPUT docid varchar(10) category varchar(10); DATALINES; |
| 2 | 1,sports |
| 3 | 2,other |
| 4 | 3,sports |
| 5 | 4,other |
| 6 | 5,sports |
| 7 | ; |
| 8 | RUN; |
| 9 | DATA mycas.term_doc; INFILE DATALINES delimiter=','; INPUT _document_ varchar(10) _termnum_ varchar(10); DATALINES; |
| 10 | 1,1 |
| 11 | 1,2 |
| 12 | 2,3 |
| 13 | 2,4 |
| 14 | 3,1 |
| 15 | 3,5 |
| 16 | 4,4 |
| 17 | 4,6 |
| 18 | 5,2 |
| 19 | 5,5 |
| 20 | ; |
| 21 | RUN; |
| 22 | DATA mycas.term_info; INFILE DATALINES delimiter=','; INPUT term_id varchar(10) term_label varchar(20); DATALINES; |
| 23 | 1,basketball |
| 24 | 2,score |
| 25 | 3,finance |
| 26 | 4,market |
| 27 | 5,game |
| 28 | 6,trade |
| 29 | ; |
| 30 | RUN; |
Este ejemplo muestra el uso básico de la acción `brTrain` para extraer reglas booleanas. Se utiliza la tabla de documentos y términos creada anteriormente para identificar reglas que clasifican documentos en la categoría 'sports'.
| 1 | |
| 2 | PROC CAS; |
| 3 | ACTION boolRule.brTrain / TABLE={name='term_doc'} docId='_document_' termId='_termnum_' docInfo={TABLE={name='doc_info'}, id='docid', targets={'category'}, targetType='BINARY', events={'sports'}} termInfo={TABLE={name='term_info'}, id='term_id', label='term_label'} casOut={name='rules_output', replace=true}; |
| 4 | |
| 5 | RUN; |
| 6 | |
| 7 | QUIT; |
| 8 |
Este ejemplo demuestra un uso más avanzado de `brTrain`, ajustando parámetros como `gPositive`, `maxCandidates` y `minSupports` para refinar el proceso de extracción de reglas. Se generan tres tablas de salida: `rules_advanced` para las reglas, `rule_terms_advanced` para los términos de las reglas, y `candidate_terms` para los términos candidatos considerados.
| 1 | |
| 2 | PROC CAS; |
| 3 | ACTION boolRule.brTrain / TABLE={name='term_doc'} docId='_document_' termId='_termnum_' docInfo={TABLE={name='doc_info'}, id='docid', targets={'category'}, targetType='BINARY', events={'sports'}} termInfo={TABLE={name='term_info'}, id='term_id', label='term_label'} gPositive=5 maxCandidates=100 minSupports=1 maxTriesIn=50 maxTriesOut=20 casOut={rules={name='rules_advanced', replace=true}, ruleTerms={name='rule_terms_advanced', replace=true}, candidateTerms={name='candidate_terms', replace=true}}; |
| 4 | |
| 5 | RUN; |
| 6 | |
| 7 | QUIT; |
| 8 |
Un banco desea automatizar el triaje de correos electrónicos entrantes. El objetivo es identificar mensajes urgentes clasificados como 'Queja' basándose en palabras clave negati...
Un hospital universitario procesa millones de notas clínicas históricas. Necesitan extraer reglas complejas para identificar pacientes con 'Riesgo_Alto' de reingreso. Este escen...
Una aseguradora busca patrones de fraude muy específicos y raros. El desafío es intentar extraer reglas cuando la señal es extremadamente débil (datos dispersos) y los umbrales ...