dataPreprocess

binning

Beschreibung

Führt eine unüberwachte Variablendiskretisierung durch. Diese Aktion ist nützlich für die Datenvorbereitung im maschinellen Lernen, bei der kontinuierliche Variablen in eine kleinere Anzahl von Klassen oder 'Bins' umgewandelt werden, um die Modellleistung zu verbessern oder Nichtlinearitäten zu erfassen.

dataPreprocess.binning { binEnds={double-1, double-2, ...}, binMapping="LEFT"|"RIGHT", binMissing=TRUE|FALSE, binStarts={double-1, double-2, ...}, binWidths={double-1, double-2, ...}, casOut={casouttable}, casOutBinDetails={casouttable}, code={codegen}, copyAllVars=TRUE|FALSE, copyVars={"variable-name-1", "variable-name-2", ...}, cutPoints={double-1, double-2, ...}, freq="variable-name", fuzzyCompare=double, includeInputVars=TRUE|FALSE, includeMissingGroup=TRUE|FALSE, inputs={{casinvardesc-1}, {casinvardesc-2}, ...}, method="BUCKET"|"CUTPTS"|"QUANTILE", nBinsArray={integer-1, integer-2, ...}|integer, noDataLowerUpperBound=TRUE|FALSE, outputTableOptions={outputTableOptions}, outVarsNamePrefix="string", outVarsNameSuffix="string", percentileDefinition=integer, percentileMaxIterations=integer, percentileTolerance=double, sasVarNameLength=TRUE|FALSE, table={castable}, weight="variable-name" };
Einstellungen
ParameterBeschreibung
binEnds Gibt die Endwerte der Intervalle an. Falls zutreffend, überschreiben sie die maximalen Datenwerte.
binMapping Steuert, wie Werte zugeordnet werden, die an der Grenze zwischen aufeinanderfolgenden Intervallen liegen. LEFT ermöglicht die Notation [], (], ..., (]. RIGHT ermöglicht [), [), ..., [].
binMissing Wenn auf True gesetzt, werden fehlende Werte in ein separates Intervall eingeordnet. Die ID für dieses Intervall ist 0.
binStarts Gibt die Startwerte der Intervalle an. Falls zutreffend, überschreiben sie die minimalen Datenwerte.
binWidths Gibt die Breite der Intervalle an.
casOut Bewertet die Eingabetabelle und speichert die Bewertungsergebnisse als Tabelle.
casOutBinDetails Gibt die Einstellungen für eine Ausgabetabelle an, die Informationen über die Binning-Ergebnisse enthält.
code Gibt die Einstellungen für die Generierung von SAS DATA-Step-Scoring-Code an.
copyAllVars Wenn auf True gesetzt, werden alle Variablen aus der Eingabetabelle in die bewertete Ausgabetabelle kopiert.
copyVars Gibt die Namen der Variablen in der Eingabetabelle an, die zur Identifizierung bewerteter Beobachtungen in der Ausgabetabelle verwendet werden sollen. Die angegebenen Variablen werden in die Ausgabetabelle kopiert.
cutPoints Gibt die vom Benutzer bereitgestellten Trennpunkte für die CUTPTS-Binning-Technik an.
freq Gibt die Frequenzvariable an.
fuzzyCompare Gibt den Schwellenwert für den Fuzzy-Vergleich an, der verwendet wird, um die Unterschiedlichkeit numerischer Werte zu bestimmen.
includeInputVars Wenn auf True gesetzt, werden die Analysevariablen aus der Eingabetabelle, die im Parameter vars angegeben sind, in die Ausgabetabelle kopiert.
includeMissingGroup Wenn auf True gesetzt, sind fehlende Werte als Gruppierungsschlüssel zulässig.
inputs Gibt die für die Analyse zu verwendenden Variablen an. Sie können eine Teilmenge der Variablen aus der Eingabetabelle angeben.
method Gibt die zu verwendende Binning-Technik an.
nBinsArray Gibt eine Liste der Anzahl der für jede Variable zu erstellenden Intervalle an. Wenn mehr Variablen als angegebene Intervalle vorhanden sind, wird der letzte Wert für die verbleibenden Variablen verwendet. Zusätzliche Werte werden verworfen.
noDataLowerUpperBound Wenn auf True gesetzt, sind während der Generierung des Scoring-Codes die globalen unteren und oberen Grenzen des Binsets unbegrenzt, anstatt auf die aus den Daten erhaltenen Werte gesetzt zu werden.
outputTableOptions Gibt Optionen für Ergebnistabellen an. Sie können angeben, welche Ergebnistabellen der Server zurückgibt und wie Gruppierungsergebnisse behandelt werden.
outVarsNamePrefix Gibt ein Präfix an, das auf die Namen der Ausgabevariablen angewendet wird.
outVarsNameSuffix Gibt ein Suffix an, das auf die Namen der Ausgabevariablen angewendet wird.
percentileDefinition Gibt die zu verwendende Perzentildefinition an. Die Definitionen sind von 1 bis 6 nummeriert.
percentileMaxIterations Gibt die maximale Anzahl von Iterationen für die Perzentilberechnung an.
percentileTolerance Gibt die Toleranz für die Perzentilberechnung an.
sasVarNameLength Wenn auf True gesetzt, werden die Längen der Namen der Ausgabevariablen auf maximal 32 Zeichen beschränkt.
table Gibt die zu verwendende Eingabetabelle an.
weight Gibt die Gewichtungsvariable an.
Beispieldaten erstellen

Dieses Beispiel erstellt die Tabelle 'my_table' in Ihrer aktiven Caslib. Sie enthält zwei numerische Variablen ('var1', 'var2') und eine ID-Variable ('id'), die für die folgenden Binning-Beispiele verwendet werden.

Kopiert!
1DATA mycas.my_table;
2 DO i = 1 to 100;
3 var1 = rand('UNIFORM') * 100;
4 var2 = rand('NORMAL', 50, 10);
5 id = i;
6 OUTPUT;
7 END;
8RUN;

Beispiele

Dieses Beispiel zeigt, wie man unüberwachtes Binning auf der Tabelle 'my_table' mit der Standardmethode BUCKET durchführt, die 5 Intervalle gleicher Breite für jede in 'inputs' angegebene Variable erstellt.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1PROC CAS;
2 dataPreprocess.binning
3 TABLE={name='my_table'},
4 inputs={{name='var1'}, {name='var2'}},
5 casOut={name='my_table_binned', replace=true},
6 casOutBinDetails={name='binned_details', replace=true};
7RUN;
Ergebnis :
Die Aktion generiert eine neue Tabelle 'my_table_binned', die die ursprünglichen Variablen sowie die neuen gebinnten Variablen ('bin_var1', 'bin_var2') enthält. Sie erzeugt auch eine 'binned_details'-Tabelle mit Informationen über die erstellten Intervalle.

Dieses Beispiel zeigt, wie die QUANTILE-Methode verwendet wird, um Intervalle mit einer ungefähr gleichen Anzahl von Beobachtungen zu erstellen. Wir fordern 4 Intervalle für 'var1' und 10 für 'var2' an.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1PROC CAS;
2 dataPreprocess.binning
3 TABLE={name='my_table'},
4 method='QUANTILE',
5 inputs={{name='var1'}, {name='var2'}},
6 nBinsArray={4, 10},
7 casOut={name='my_table_quantile', replace=true},
8 copyVars={'id'};
9RUN;
Ergebnis :
Die Aktion generiert eine neue Tabelle 'my_table_quantile' mit den gebinnten Variablen. Die Intervalle für 'var1' und 'var2' werden jeweils ungefähr die gleiche Anzahl von Beobachtungen enthalten, was für bestimmte Modellierungsansätze nützlich ist.

Dieses Beispiel zeigt, wie die CUTPTS-Methode mit benutzerdefinierten Trennpunkten zum Binning der Variablen verwendet wird. Dies gibt die volle Kontrolle über die Intervallgrenzen.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1PROC CAS;
2 dataPreprocess.binning
3 TABLE={name='my_table'},
4 method='CUTPTS',
5 inputs={{name='var1', cutPoints={25, 50, 75}}, {name='var2', cutPoints={40, 60}}},
6 casOut={name='my_table_cutpts', replace=true},
7 copyVars={'id'};
8RUN;
Ergebnis :
Die Aktion generiert eine neue Tabelle 'my_table_cutpts', in der 'var1' in vier benutzerdefinierte Intervalle (-inf bis 25, 25 bis 50, 50 bis 75, 75 bis +inf) und 'var2' in drei Intervalle (-inf bis 40, 40 bis 60, 60 bis +inf) eingeteilt wird. Dies ermöglicht eine präzise, domänenspezifische Gruppierung.

Dieses Beispiel führt ein Quantil-Binning durch und generiert SAS DATA Step Code, der die Binning-Logik kapselt. Dieser Code kann dann verwendet werden, um neue Daten auf die gleiche Weise zu bewerten, ohne die Aktion erneut ausführen zu müssen.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1PROC CAS;
2 dataPreprocess.binning
3 TABLE={name='my_table'},
4 method='QUANTILE',
5 inputs={{name='var1'}},
6 nBinsArray=5,
7 code={casOut={name='bincode', replace=true}};
8RUN;
Ergebnis :
Es wird keine Ausgabetabelle mit den gebinnten Daten erstellt. Stattdessen wird eine Tabelle namens 'bincode' in der aktiven Caslib erstellt. Diese Tabelle enthält eine einzelne Spalte mit dem SAS DATA Step Code, der die für 'var1' definierte Binning-Transformation anwenden kann.

FAQ

Was ist der Zweck der Aktion `binning` in SAS Viya?
Welche Methoden zur Klasseneinteilung (Binning) gibt es?
Wie kann ich die Anzahl der zu erstellenden Klassen festlegen?
Wie werden fehlende Werte bei der Klasseneinteilung behandelt?
Kann ich die Ergebnisse der Klasseneinteilung in einer neuen Tabelle speichern?
Was ist der Unterschied zwischen den Parametern `cutPoints` und `binStarts`?
Was ist der Zweck der `binning`-Aktion im `dataPreprocess`-Aktionssatz?
Welche verschiedenen Binning-Methoden werden von der `binning`-Aktion unterstützt?
Wie kann ich die Anzahl der zu erstellenden Bins festlegen?
Wie behandelt die `binning`-Aktion fehlende Werte?
Was ist der Unterschied zwischen den Parametern `casOut` und `casOutBinDetails`?
Wie kann ich SAS-DATA-Step-Code generieren, um das Binning auf neue Daten anzuwenden?

Zugehörige Szenarien

Anwendungsfall
Kundensegmentierung basierend auf Kaufverhalten mittels Quantil-Binning

Ein Einzelhandelsunternehmen möchte seine Kunden anhand ihres Jahresumsatzes und ihres Alters in Gruppen einteilen, um gezielte Marketingkampagnen zu erstellen. Die Quantil-Meth...

Anwendungsfall
Generierung von Scoring-Code für Kreditrisikokategorien auf einem großen Datensatz

Eine Finanzinstitution muss einen kontinuierlichen Kreditrisiko-Score für Millionen von Anträgen diskretisieren. Die Kategorien ('Sehr niedrig' bis 'Sehr hoch') basieren auf von...

Anwendungsfall
Discretization von Sensordaten mit fehlenden Werten für die vorausschauende Wartung

Ein Industrieunternehmen analysiert Sensordaten (Druck, Temperatur) von Maschinen, um Ausfälle vorherzusagen. Die Daten sind verrauscht und enthalten häufig fehlende Werte, wenn...