Die Aktion `brTrain` aus dem Aktionssatz `boolRule` extrahiert boolesche Regeln aus Textdaten. Diese Aktion ist besonders nützlich, um interpretierbare Klassifizierungsmodelle zu erstellen, die auf logischen Kombinationen von Begriffen basieren, die in einer Sammlung von Dokumenten gefunden werden. Sie analysiert die Verteilung von Begriffen über positive und negative Dokumentbeispiele hinweg, um aussagekräftige Regeln zu generieren.
| Parameter | Beschreibung |
|---|---|
| casOuts | Gibt die Datentabellen an, die die von der Aktion generierten Ergebnisse enthalten. |
| docId | Gibt die Variable in der TABLE= Datentabelle an, die die Dokumenten-ID enthält. |
| docInfo | Gibt die Informationen über die Dokumententabelle an. |
| gNegative | Gibt den minimalen g-Score an, der für einen negativen Begriff erforderlich ist, um für die Regelextraktion berücksichtigt zu werden. |
| gPositive | Gibt den minimalen g-Score an, der für einen positiven Begriff erforderlich ist. |
| maxCandidates | Gibt die Anzahl der Begriffskandidaten an, die für jede Kategorie ausgewählt werden sollen. |
| maxTriesIn | Gibt den k-in-Wert für die k-beste Suche im Begriff-Ensemble-Prozess zur Erstellung von Regeln an. |
| maxTriesOut | Gibt den k-out-Wert für die k-beste Suche im Regel-Ensemble-Prozess zur Erstellung eines Regelsatzes an. |
| minSupports | Gibt die Mindestanzahl von Dokumenten an, in denen ein Begriff erscheinen muss, damit der Begriff zur Erstellung einer Regel verwendet werden kann. |
| mNegative | Gibt den m-Wert für die Berechnung der geschätzten Präzision für negative Begriffe an. |
| mPositive | Gibt den m-Wert für die Berechnung der geschätzten Präzision für positive Begriffe an. |
| nThreads | Gibt die Anzahl der pro Knoten zu verwendenden Threads an. Der Wert muss eine ganze Zahl sein. |
| table | Gibt die Eingabedatentabelle für die Regelextraktion an. |
| termId | Gibt die Variable in der TABLE= Datentabelle an, die die Begriffs-ID enthält. |
| termInfo | Gibt die Informationen über die Begriffs-Tabelle an. |
| useOldNames | Gibt an, ob die alten Variablennamen verwendet werden sollen, die in HPBOOLRULE verwendet wurden. |
Dieser Code erstellt zwei Tabellen: `doc_terms` enthält die Begriff-Dokument-Beziehungen und `doc_info` enthält die Kategorie (Zielvariable) für jedes Dokument. Diese Tabellen dienen als Eingabe für die `brTrain`-Aktion.
| 1 | DATA mycas.doc_terms; |
| 2 | INFILE DATALINES delimiter=','; |
| 3 | INPUT docid termid; |
| 4 | DATALINES; |
| 5 | 1,1 |
| 6 | 1,2 |
| 7 | 2,1 |
| 8 | 2,3 |
| 9 | 3,2 |
| 10 | 3,4 |
| 11 | 4,3 |
| 12 | 4,5 |
| 13 | ; |
| 14 | RUN; |
| 15 | |
| 16 | DATA mycas.doc_info; |
| 17 | INFILE DATALINES delimiter=','; |
| 18 | INPUT docid category $; |
| 19 | DATALINES; |
| 20 | 1,A |
| 21 | 2,A |
| 22 | 3,B |
| 23 | 4,B |
| 24 | ; |
| 25 | RUN; |
Dieses Beispiel zeigt die grundlegende Verwendung der `brTrain`-Aktion, um Regeln aus den `doc_terms`- und `doc_info`-Tabellen zu extrahieren. Es gibt die resultierenden Regeln in der Tabelle `mycas.rules` aus.
| 1 | PROC CAS; |
| 2 | ACTION boolRule.brTrain / |
| 3 | TABLE={name='doc_terms'} |
| 4 | docId='docid' |
| 5 | termId='termid' |
| 6 | docInfo={ |
| 7 | TABLE={name='doc_info'} |
| 8 | id='docid' |
| 9 | targets={'category'} |
| 10 | targetType='MULTICLASS' |
| 11 | } |
| 12 | casOuts={ |
| 13 | rules={name='rules', replace=true} |
| 14 | }; |
| 15 | RUN; |
| 16 | QUIT; |
Dieses Beispiel demonstriert die Verwendung zusätzlicher Parameter, um den Regelextraktionsprozess zu verfeinern. Es legt `gPositive` und `gNegative` fest, um die Sensitivität der Begriffsauswahl zu steuern, und `maxCandidates`, um die Anzahl der für die Regelerstellung berücksichtigten Begriffe zu begrenzen. Die Ausgabetabellen für Regeln, Regelbegriffe und Kandidatenbegriffe werden ebenfalls angegeben.
| 1 | PROC CAS; |
| 2 | ACTION boolRule.brTrain / |
| 3 | TABLE={name='doc_terms'} |
| 4 | docId='docid' |
| 5 | termId='termid' |
| 6 | docInfo={ |
| 7 | TABLE={name='doc_info'} |
| 8 | id='docid' |
| 9 | targets={'category'} |
| 10 | targetType='MULTICLASS' |
| 11 | } |
| 12 | gPositive=5.0 |
| 13 | gNegative=6.0 |
| 14 | maxCandidates=100 |
| 15 | minSupports=1 |
| 16 | casOuts={ |
| 17 | rules={name='detailed_rules', replace=true}, |
| 18 | ruleTerms={name='detailed_rule_terms', replace=true}, |
| 19 | candidateTerms={name='candidate_terms', replace=true} |
| 20 | }; |
| 21 | RUN; |
| 22 | QUIT; |
Ein Telekommunikationsunternehmen möchte eingehende Support-Tickets basierend auf den darin enthaltenen Schlüsselwörtern automatisch priorisieren. Ziel ist es, Regeln zu erstell...
Eine E-Commerce-Plattform möchte Produktbewertungen analysieren, um automatisch positive und negative Stimmungen zu erkennen. Aufgrund der riesigen Menge an Bewertungen (simulie...
Eine Bank möchte extrem seltene, aber eindeutige Betrugsmuster in Transaktionsbeschreibungen identifizieren. Da Fehlalarme (False Positives) sehr kostspielig sind, werden sehr s...