?> brTrain - WeAreCAS
boolRule

brTrain

Descripción

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.

proc cas; boolRule.brTrain table={...} docId="variable-name" termId="variable-name" docInfo={...} termInfo={...} <gNegative=double> <gPositive=double> <maxCandidates=integer> <maxTriesIn=integer> <maxTriesOut=integer> <minSupports=integer> <mNegative=integer> <mPositive=integer> <nThreads=integer> <casOuts={...}> <useOldNames=boolean>; run;
Parámetros
ParámetroDescripción
tableEspecifica la tabla de datos de entrada para la extracción de reglas.
docIdEspecifica la variable en la tabla de entrada que contiene el ID del documento.
termIdEspecifica la variable en la tabla de entrada que contiene el ID del término.
docInfoEspecifica la información sobre la tabla de documentos, incluyendo la tabla en sí, el ID del documento y las variables objetivo.
termInfoEspecifica la información sobre la tabla de términos, incluyendo la tabla, el ID del término y la etiqueta del término.
gNegativeEspecifica 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.
gPositiveEspecifica la puntuación g mínima necesaria para un término positivo. El valor predeterminado es 8.
maxCandidatesEspecifica el número de términos candidatos a ser seleccionados para cada categoría. El valor predeterminado es 500.
maxTriesInEspecifica 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.
maxTriesOutEspecifica 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.
minSupportsEspecifica 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.
mNegativeEspecifica el valor m para calcular la precisión estimada para los términos negativos. El valor predeterminado es 4.
mPositiveEspecifica el valor m para calcular la precisión estimada para los términos positivos. El valor predeterminado es 2.
nThreadsEspecifica el número de hilos a utilizar por nodo.
casOutsEspecifica 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.
useOldNamesEspecifica si se deben usar los nombres de variables antiguos utilizados en el procedimiento HPBOOLRULE. El valor predeterminado es Falso.
Preparación de datos
Creación de Datos de Ejemplo

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'.

1DATA mycas.doc_info; INFILE DATALINES delimiter=','; INPUT docid varchar(10) category varchar(10); DATALINES;
21,sports
32,other
43,sports
54,other
65,sports
7;
8RUN;
9DATA mycas.term_doc; INFILE DATALINES delimiter=','; INPUT _document_ varchar(10) _termnum_ varchar(10); DATALINES;
101,1
111,2
122,3
132,4
143,1
153,5
164,4
174,6
185,2
195,5
20;
21RUN;
22DATA mycas.term_info; INFILE DATALINES delimiter=','; INPUT term_id varchar(10) term_label varchar(20); DATALINES;
231,basketball
242,score
253,finance
264,market
275,game
286,trade
29;
30RUN;

Ejemplos

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'.

Código SAS® / CAS
¡Copiado!
1PROC CAS; 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}; RUN; QUIT;
Resultado :
La acción genera una tabla de salida `rules_output` en la caslib activa, que contiene las reglas booleanas extraídas. También se muestran tablas de resumen sobre el proceso de entrenamiento, como el número de reglas generadas y las estadísticas de los términos candidatos.

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.

Código SAS® / CAS
¡Copiado!
1PROC CAS; 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}}; RUN; QUIT;
Resultado :
Se generan tres tablas de salida: `rules_advanced`, `rule_terms_advanced` y `candidate_terms`. Los resultados del entrenamiento, visibles en el log de SAS, mostrarán un proceso de selección de términos y reglas más restrictivo debido a los parámetros ajustados, lo que puede resultar en un conjunto de reglas diferente y potencialmente más específico que en el ejemplo básico.

FAQ

¿Cuál es el propósito de la acción brTrain?
¿Qué tablas de entrada son necesarias para la acción brTrain?
¿Cuáles son las tablas de salida que puede generar brTrain?
¿Qué controla el parámetro gPositive?
¿Cómo se especifican las variables objetivo para el entrenamiento?
¿Para qué sirven los parámetros maxTriesIn y maxTriesOut?