?> binning - WeAreCAS
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
binEndsGibt die Endwerte der Intervalle an. Falls zutreffend, überschreiben sie die maximalen Datenwerte.
binMappingSteuert, wie Werte zugeordnet werden, die an der Grenze zwischen aufeinanderfolgenden Intervallen liegen. LEFT ermöglicht die Notation [], (], ..., (]. RIGHT ermöglicht [), [), ..., [].
binMissingWenn auf True gesetzt, werden fehlende Werte in ein separates Intervall eingeordnet. Die ID für dieses Intervall ist 0.
binStartsGibt die Startwerte der Intervalle an. Falls zutreffend, überschreiben sie die minimalen Datenwerte.
binWidthsGibt die Breite der Intervalle an.
casOutBewertet die Eingabetabelle und speichert die Bewertungsergebnisse als Tabelle.
casOutBinDetailsGibt die Einstellungen für eine Ausgabetabelle an, die Informationen über die Binning-Ergebnisse enthält.
codeGibt die Einstellungen für die Generierung von SAS DATA-Step-Scoring-Code an.
copyAllVarsWenn auf True gesetzt, werden alle Variablen aus der Eingabetabelle in die bewertete Ausgabetabelle kopiert.
copyVarsGibt 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.
cutPointsGibt die vom Benutzer bereitgestellten Trennpunkte für die CUTPTS-Binning-Technik an.
freqGibt die Frequenzvariable an.
fuzzyCompareGibt den Schwellenwert für den Fuzzy-Vergleich an, der verwendet wird, um die Unterschiedlichkeit numerischer Werte zu bestimmen.
includeInputVarsWenn auf True gesetzt, werden die Analysevariablen aus der Eingabetabelle, die im Parameter vars angegeben sind, in die Ausgabetabelle kopiert.
includeMissingGroupWenn auf True gesetzt, sind fehlende Werte als Gruppierungsschlüssel zulässig.
inputsGibt die für die Analyse zu verwendenden Variablen an. Sie können eine Teilmenge der Variablen aus der Eingabetabelle angeben.
methodGibt die zu verwendende Binning-Technik an.
nBinsArrayGibt 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.
noDataLowerUpperBoundWenn 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.
outputTableOptionsGibt Optionen für Ergebnistabellen an. Sie können angeben, welche Ergebnistabellen der Server zurückgibt und wie Gruppierungsergebnisse behandelt werden.
outVarsNamePrefixGibt ein Präfix an, das auf die Namen der Ausgabevariablen angewendet wird.
outVarsNameSuffixGibt ein Suffix an, das auf die Namen der Ausgabevariablen angewendet wird.
percentileDefinitionGibt die zu verwendende Perzentildefinition an. Die Definitionen sind von 1 bis 6 nummeriert.
percentileMaxIterationsGibt die maximale Anzahl von Iterationen für die Perzentilberechnung an.
percentileToleranceGibt die Toleranz für die Perzentilberechnung an.
sasVarNameLengthWenn auf True gesetzt, werden die Längen der Namen der Ausgabevariablen auf maximal 32 Zeichen beschränkt.
tableGibt die zu verwendende Eingabetabelle an.
weightGibt die Gewichtungsvariable an.
Datenaufbereitung
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.

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
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
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
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
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?