bart

bartProbit

L'essentiel
Auf einen Blick
Wenn die Zielvariable nur zwei Ausprägungen annimmt, stoßen herkömmliche Regressionsverfahren oft an ihre Grenzen bei der Abbildung realer Wahrscheinlichkeiten. Die Aktion bartProbit integriert das Probit-Modell in das Framework der Bayesian Additive Regression Trees, um binär verteilte Antwortvariablen hochpräzise zu analysieren. Diese Methode ist besonders wertvoll für Statistiker, die nicht-lineare Zusammenhänge in Wahrscheinlichkeitsmodellen abbilden müssen. Im folgenden Abschnitt bieten wir detaillierte Lösungen und Erklärungen zu anwenderspezifischen Fragen rund um die Konfiguration und Validierung dieser bayesianischen Klassifikatoren.

Beschreibung

Passt Probit-Modelle für Bayes'sche additive Regression Trees (BART) an binär verteilte Antwortdaten an.

bart.bartProbit <result=results> <status=rc> / alpha=double, applyRowOrder=TRUE | FALSE, attributes={{casinvardesc-1} <, {casinvardesc-2}, ...>}, class={{classStatement-1} <, {classStatement-2}, ...>}, differences={{bartScoreMargin_scoreDiff-1} <, {bartScoreMargin_scoreDiff-2}, ...>}, display={displayTables}, distributeChains=integer, freq="variable-name", inputs={{casinvardesc-1} <, {casinvardesc-2}, ...>}, leafSigmaK=double, margins={{bartScoreMargin_evaluate-1} <, {bartScoreMargin_evaluate-2}, ...>}, maxTrainTime=double, minLeafSize=integer, missing="MACBIG" | "MACSMALL" | "NONE" | "SEPARATE", model={bartProbitModel}, nBI=integer, nBins=integer, nClassLevelsPrint=integer, nMC=integer, nominals={{casinvardesc-1} <, {casinvardesc-2}, ...>}, nThin=integer, nTree=integer, obsLeafMapInMem=TRUE | FALSE, offset="variable-name", orderSplit=integer, output={bartBinOutputStatement}, outputMargins={casouttable}, outputTables={outputTables}, partByFrac={partByFracStatement}, partByVar={partByVarStatement}, quantileBin=TRUE | FALSE, sampleSummary={bartProbit_sampleSummary}, seed=64-bit-integer, store={casouttablebasic}, table={castable}, target="variable-name", trainInMem=TRUE | FALSE, treePrior={bart_treePrior};
Einstellungen
ParameterBeschreibung
alpha Gibt das Signifikanzniveau an, das für die Erstellung von gleichschwänzigen Kredibilitätsgrenzen für prädiktive Margen verwendet wird.
applyRowOrder Gibt an, ob die Zeilenreihenfolge angewendet werden soll.
attributes Ändert die Attribute der in der Aktion verwendeten Variablen. Derzeit werden auf den Eingaben und nominalen Parametern angegebene Attribute ignoriert.
class Nennt die Klassifikationsvariablen, die als erklärende Variablen in der Analyse verwendet werden sollen.
differences Gibt Differenzen von prädiktiven Margen an.
display Gibt eine Liste von Ergebnistabellen an, die zur Anzeige an den Client gesendet werden sollen.
distributeChains Gibt einen verteilten Modus an, der das MCMC-Sampling in einer Grid-Umgebung aufteilt. Dieser Modus verteilt die Trainingsdaten auf die Worker, sodass die angegebene Anzahl von Workern eine vollständige Kopie der Trainingsdaten hat und eine separate Kette ausführt. Dieser Parameter ist im Einzelmaschinenmodus nicht anwendbar. Wenn Sie einen Wert von 0 angeben, wird eine einzelne Kette ausgeführt, und jedem Worker-Knoten wird ein Teil der Trainingsdaten zugewiesen.
freq Nennt die numerische Variable, die die Häufigkeit des Vorkommens für jede Beobachtung enthält.
inputs Gibt die Eingabevariablen an, die in der Analyse verwendet werden sollen.
leafSigmaK Gibt den Wert an, der zur Bestimmung der A-priori-Varianz für den Blattparameter verwendet wird.
margins Gibt eine prädiktive Marge an.
maxTrainTime Gibt eine Obergrenze (in Sekunden) für die Zeit des MCMC-Samplings an.
minLeafSize Gibt die Mindestanzahl von Beobachtungen an, die jedes Kind eines Splits in den Trainingsdaten enthalten muss, damit der Split berücksichtigt wird.
missing Gibt an, wie fehlende Werte in Prädiktorvariablen behandelt werden sollen.
model Nennt die abhängige Variable und die erklärenden Effekte.
nBI Gibt die Anzahl der Burn-In-Iterationen an, die durchgeführt werden, bevor die Aktion beginnt, Stichproben für die Vorhersage zu speichern.
nBins Gibt die Anzahl der Bins an, die für das Binning kontinuierlicher Eingabevariablen verwendet werden sollen.
nClassLevelsPrint Begrenzt die Anzeige von Klassenstufen. Der Wert 0 unterdrückt alle Stufen.
nMC Gibt die Anzahl der MCMC-Iterationen an, ausgenommen die Burn-In-Iterationen. Dies ist die MCMC-Stichprobengröße, wenn die Ausdünnungsrate 1 ist. Diese Option wird ignoriert, wenn Sie den Parameter nMCDist angeben und verteilte Ketten ausführen.
nominals Gibt die nominalen Eingabevariablen an, die in der Analyse verwendet werden sollen.
nThin Gibt die Ausdünnungsrate der Simulation an.
nTree Gibt die Anzahl der Bäume in einer Stichprobe des Sum-of-Trees-Ensembles an.
obsLeafMapInMem Wenn auf True gesetzt, speichert eine Zuordnung jeder Beobachtung zu Endknoten im Speicher, wenn das Modell trainiert wird.
offset Gibt eine numerische Offset-Variable an. Diese Variable darf keine Klassifikationsvariable, keine Antwortvariable oder eine der erklärenden Variablen sein.
orderSplit Gibt die minimale Kardinalität an, für die eine kategoriale Eingabe Aufteilungsregeln gemäß der Ebenenreihenfolge verwendet.
output Erstellt eine Tabelle auf dem Server, die beobachtungsweise Statistiken enthält, die nach der Anpassung des Modells berechnet werden.
outputMargins Gibt die Ausgabetabelle für die prädiktiven Margen an.
outputTables Listet die Namen der Ergebnistabellen auf, die als CAS-Tabellen auf dem Server gespeichert werden sollen.
partByFrac Gibt den Anteil der Daten an, der für das Testen verwendet werden soll.
partByVar Nennt die Variable und ihre Werte, die zur Partitionierung der Daten in Trainings- und Testrollen verwendet werden.
quantileBin Wenn auf True gesetzt, gibt an, dass Bin-Grenzen an Quantilen von numerischen Eingaben anstelle von Bins gleicher Breite gesetzt werden.
sampleSummary Erstellt eine Tabelle auf dem Server, die eine Zusammenfassung der Sum-of-Trees-Ensemble-Stichproben enthält.
seed Gibt einen Startwert für den Pseudozufallszahlengenerator an.
store Speichert das Modell in einem binären Tabellenobjekt, das Sie zum Scoren verwenden können.
table Gibt die Eingabedatentabelle an.
target Gibt die Zielvariable an.
trainInMem Wenn auf True gesetzt, speichert Daten im Speicher, wenn das Modell trainiert wird.
treePrior Gibt den Regularisierungs-Prior für das Sum-of-Trees-Ensemble an.
Datenerstellung

Wir erstellen die Tabelle 'getStarted', die eine binäre Zielvariable 'y' und mehrere erklärende Variablen enthält. Diese Tabelle wird verwendet, um das Probit-BART-Modell zu trainieren.

Kopiert!
1DATA getStarted;
2 call streaminit(123);
3 DO i = 1 to 100;
4 x1 = rand('UNIFORM');
5 x2 = rand('UNIFORM');
6 x3 = rand('UNIFORM');
7 p = 1 / (1 + exp(-(-2 + 6*x1 - 3*x2)));
8 y = rand('BERNOULLI', p);
9 OUTPUT;
10 END;
11RUN;

Beispiele

Dieses Beispiel zeigt, wie man ein einfaches Probit-BART-Modell mit der Aktion 'bartProbit' trainiert. Wir geben die Zielvariable 'y' und die Eingabevariablen 'x1', 'x2' und 'x3' an.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1PROC CAS;
2 bart.bartProbit /
3 TABLE='getStarted',
4 model={depVars={{name='y'}}, effects={{vars={'x1', 'x2', 'x3'}}}}
5 ;
6RUN;
Ergebnis :
Die Aktion trainiert das Modell und gibt verschiedene Tabellen aus, die das Training zusammenfassen, wie z.B. 'Modellinformationen', 'Anzahl der Beobachtungen' und 'Posterior-Zusammenfassungen'.

Dieses Beispiel zeigt ein detaillierteres Training, bei dem die Anzahl der Bäume, die Burn-In-Iterationen und die MCMC-Iterationen angepasst werden. Es wird auch eine Ausgabetabelle für die Vorhersagen und ein Item-Store zum Speichern des Modells erstellt.

SAS® / CAS-Code Code wartet auf Validierung durch die Community
Kopiert!
1PROC CAS;
2 bart.bartProbit /
3 TABLE='getStarted',
4 model={depVars={{name='y'}}, effects={{vars={'x1', 'x2', 'x3'}}}},
5 nTree=100,
6 nBI=500,
7 nMC=2000,
8 seed=1234,
9 OUTPUT={casOut={name='probit_pred', replace=true}, copyVars={'y', 'x1', 'x2', 'x3'}},
10 store={name='probit_model_store', replace=true}
11 ;
12RUN;
Ergebnis :
Die Aktion führt das MCMC-Sampling mit den angegebenen Parametern durch. Sie erstellt die Tabelle 'probit_pred' mit den Vorhersagen für jede Beobachtung und speichert das trainierte Modell im Item-Store 'probit_model_store' zur späteren Verwendung beim Scoring.

FAQ

Was ist der Hauptzweck der `bart.bartProbit`-Aktion?
Welche Daten werden für die `bart.bartProbit`-Aktion benötigt?
Was steuert der `nTree`-Parameter?
Wie funktionieren die MCMC-Iterationen in dieser Aktion?
Wie kann das trainierte Modell für zukünftiges Scoring gespeichert werden?
Wie wird mit fehlenden Werten in Prädiktorvariablen umgegangen?

Zugehörige Szenarien

Anwendungsfall
Standardfall: Vorhersage der Kundenreaktion auf eine Marketingkampagne

Ein Einzelhandelsunternehmen möchte die Wahrscheinlichkeit vorhersagen, mit der Kunden auf eine neue Werbeaktion reagieren. Ziel ist es, ein BART-Probit-Modell zu erstellen, um ...

Anwendungsfall
Leistungstest: Training auf einem großen Datensatz zur Betrugserkennung im verteilten Modus

Ein Finanzinstitut muss ein Modell zur Betrugserkennung in Echtzeit trainieren. Der Datensatz ist sehr groß und enthält Millionen von Transaktionen. Die Herausforderung besteht ...

Anwendungsfall
Robustheitstest: Umgang mit fehlenden Werten und gewichteten Beobachtungen

In einer klinischen Studie werden Daten von Patienten gesammelt, um die Wirksamkeit eines Medikaments vorherzusagen. Einige Biomarker-Messungen fehlen, und bestimmte Patientenko...