boolRule

brTrain

Beschreibung

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.

proc cas; boolRule.brTrain result=results status=rc / casOuts={...}, docId="variable-name", docInfo={...}, gNegative=double, gPositive=double, maxCandidates=integer, maxTriesIn=integer, maxTriesOut=integer, minSupports=integer, mNegative=integer, mPositive=integer, nThreads=integer, table={...}, termId="variable-name", termInfo={...}, useOldNames=TRUE | FALSE; run;
Einstellungen
ParameterBeschreibung
casOutsGibt die Datentabellen an, die die von der Aktion generierten Ergebnisse enthalten.
docIdGibt die Variable in der TABLE= Datentabelle an, die die Dokumenten-ID enthält.
docInfoGibt die Informationen über die Dokumententabelle an.
gNegativeGibt den minimalen g-Score an, der für einen negativen Begriff erforderlich ist, um für die Regelextraktion berücksichtigt zu werden.
gPositiveGibt den minimalen g-Score an, der für einen positiven Begriff erforderlich ist.
maxCandidatesGibt die Anzahl der Begriffskandidaten an, die für jede Kategorie ausgewählt werden sollen.
maxTriesInGibt den k-in-Wert für die k-beste Suche im Begriff-Ensemble-Prozess zur Erstellung von Regeln an.
maxTriesOutGibt den k-out-Wert für die k-beste Suche im Regel-Ensemble-Prozess zur Erstellung eines Regelsatzes an.
minSupportsGibt die Mindestanzahl von Dokumenten an, in denen ein Begriff erscheinen muss, damit der Begriff zur Erstellung einer Regel verwendet werden kann.
mNegativeGibt den m-Wert für die Berechnung der geschätzten Präzision für negative Begriffe an.
mPositiveGibt den m-Wert für die Berechnung der geschätzten Präzision für positive Begriffe an.
nThreadsGibt die Anzahl der pro Knoten zu verwendenden Threads an. Der Wert muss eine ganze Zahl sein.
tableGibt die Eingabedatentabelle für die Regelextraktion an.
termIdGibt die Variable in der TABLE= Datentabelle an, die die Begriffs-ID enthält.
termInfoGibt die Informationen über die Begriffs-Tabelle an.
useOldNamesGibt an, ob die alten Variablennamen verwendet werden sollen, die in HPBOOLRULE verwendet wurden.
Erstellung von Beispieldaten

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.

Kopiert!
1DATA mycas.doc_terms;
2 INFILE DATALINES delimiter=',';
3 INPUT docid termid;
4 DATALINES;
51,1
61,2
72,1
82,3
93,2
103,4
114,3
124,5
13;
14RUN;
15 
16DATA mycas.doc_info;
17 INFILE DATALINES delimiter=',';
18 INPUT docid category $;
19 DATALINES;
201,A
212,A
223,B
234,B
24;
25RUN;

Beispiele

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.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1PROC 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 };
15RUN;
16QUIT;
Ergebnis :
Die Aktion generiert eine Ausgabetabelle `mycas.rules`, die die extrahierten booleschen Regeln enthält. Jede Zeile stellt eine Regel dar, die eine Kategorie basierend auf dem Vorhandensein oder Fehlen von Begriffen vorhersagt. Die Tabelle enthält Spalten wie `_Rule_`, `_Category_`, `_Num_Correct_` und `_Num_Incorrect_`, die die Regeldefinition und ihre Leistungskennzahlen beschreiben.

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.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1PROC 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 };
21RUN;
22QUIT;
Ergebnis :
Die Aktion erzeugt drei Ausgabetabellen: `mycas.detailed_rules` enthält die verfeinerten Regeln, `mycas.detailed_rule_terms` listet die Begriffe auf, aus denen jede Regel besteht, und `mycas.candidate_terms` zeigt die Begriffe, die basierend auf den `gPositive`- und `gNegative`-Schwellenwerten ausgewählt wurden. Die Regeln werden unter Berücksichtigung der strengeren Kriterien generiert, was zu einem potenziell kleineren, aber präziseren Regelsatz führen kann.

Zugehörige Szenarien

Anwendungsfall
Automatische Klassifizierung von Kundensupport-Tickets

Ein Telekommunikationsunternehmen möchte eingehende Support-Tickets basierend auf den darin enthaltenen Schlüsselwörtern automatisch priorisieren. Ziel ist es, Regeln zu erstell...

Anwendungsfall
Performance-Test: Stimmungsanalyse bei hohem Datenvolumen

Eine E-Commerce-Plattform möchte Produktbewertungen analysieren, um automatisch positive und negative Stimmungen zu erkennen. Aufgrund der riesigen Menge an Bewertungen (simulie...

Anwendungsfall
Betrugserkennung mit strengen Filterkriterien (Edge Case)

Eine Bank möchte extrem seltene, aber eindeutige Betrugsmuster in Transaktionsbeschreibungen identifizieren. Da Fehlalarme (False Positives) sehr kostspielig sind, werden sehr s...