Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Schnelle Gesamtstruktur für maschinelles Lernen
Verwendung
rxFastForest(formula = NULL, data, type = c("binary", "regression"),
numTrees = 100, numLeaves = 20, minSplit = 10, exampleFraction = 0.7,
featureFraction = 0.7, splitFraction = 0.7, numBins = 255,
firstUsePenalty = 0, gainConfLevel = 0, trainThreads = 8,
randomSeed = NULL, mlTransforms = NULL, mlTransformVars = NULL,
rowSelection = NULL, transforms = NULL, transformObjects = NULL,
transformFunc = NULL, transformVars = NULL, transformPackages = NULL,
transformEnvir = NULL, blocksPerRead = rxGetOption("blocksPerRead"),
reportProgress = rxGetOption("reportProgress"), verbose = 2,
computeContext = rxGetOption("computeContext"),
ensemble = ensembleControl(), ...)
Argumente
formula
Die Formel, wie in rxFormula beschrieben. Interaktionsbedingungen und F()
werden derzeit in MicrosoftML nicht unterstützt.
data
Ein Datenquellenobjekt oder eine Zeichenfolge, die eine XDF-Datei oder ein Datenframeobjekt angibt.
type
Eine Zeichenfolge, die den Typ der schnellen Struktur angibt:
-
"binary"
für die standardmäßige binäre Klassifizierung der fasten Struktur oder -
"regression"
für schnelle Strukturregression.
numTrees
Gibt die Gesamtanzahl der Entscheidungsstrukturen an, die im Ensemble erstellt werden sollen. Durch die Erstellung weiterer Entscheidungsstrukturen können Sie möglicherweise eine bessere Abdeckung erhalten, aber die Schulungszeit erhöht sich. Der Standardwert ist 100.
numLeaves
Die maximale Anzahl von Blättern (Terminalknoten), die in einer beliebigen Struktur erstellt werden können. Höhere Werte erhöhen möglicherweise die Größe des Baumes und erhalten eine bessere Präzision, aber riskieren, dass sie überfällig sind und längere Trainingszeiten erfordern. Der Standardwert ist 20.
minSplit
Mindestanzahl an Schulungsinstanzen, die zum Bilden eines Blatts erforderlich sind. Das heißt, die minimale Anzahl von Dokumenten, die in einem Blatt einer Regressionsstruktur zulässig sind, aus den untersampulierten Daten. Eine "Aufteilung" bedeutet, dass Features auf jeder Ebene der Struktur (Knoten) zufällig geteilt werden. Der Standardwert ist 10.
exampleFraction
Der Anteil der zufällig ausgewählten Instanzen, die für jede Struktur verwendet werden sollen. Der Standardwert ist 0,7.
featureFraction
Der Anteil der zufällig ausgewählten Features, die für jede Struktur verwendet werden sollen. Der Standardwert ist 0,7.
splitFraction
Der Anteil der zufällig ausgewählten Features, die für jede Aufteilung verwendet werden sollen. Der Standardwert ist 0,7.
numBins
Maximale Anzahl unterschiedlicher Werte (Bins) pro Feature. Der Standardwert ist 255.
firstUsePenalty
Das Feature verwendet zuerst den Strafkoeffizient. Der Standardwert ist 0.
gainConfLevel
Anforderung der Strukturanpassung an Konfidenz (sollte im Bereich [0,1)) liegen. Der Standardwert ist 0.
trainThreads
Die Anzahl der Threads, die in der Schulung verwendet werden sollen. Wenn NULL
angegeben, wird die Anzahl der zu verwendenden Threads intern bestimmt. Der Standardwert ist NULL
.
randomSeed
Gibt den zufälligen Ausgangswert an. Der Standardwert ist NULL
.
mlTransforms
Gibt eine Liste der MicrosoftML-Transformationen an, die vor dem Training für die Daten ausgeführt werden sollen oder NULL
wenn keine Transformationen ausgeführt werden sollen. Informationen zu unterstützten Transformationen finden Sie unter featurizeText, categorical und categoricalHash. Diese Transformationen werden nach allen angegebenen R-Transformationen ausgeführt. Der Standardwert ist NULL
.
mlTransformVars
Gibt einen Zeichenvektor von Variablennamen an, die verwendet mlTransforms
werden sollen oder NULL
wenn keines verwendet werden soll. Der Standardwert ist NULL
.
rowSelection
Gibt die Zeilen (Beobachtungen) aus dem Dataset an, die vom Modell mit dem Namen einer logischen Variablen aus dem Dataset (in Anführungszeichen) oder mit einem logischen Ausdruck mithilfe von Variablen im Dataset verwendet werden sollen. Verwenden Sie beispielsweise nur Beobachtungen, rowSelection = "old"
in denen der Wert der Variablen old
lautet TRUE
.
rowSelection = (age > 20) & (age < 65) & (log(income) > 10)
verwendet nur Beobachtungen, in denen der Wert der age
Variablen zwischen 20 und 65 liegt und der Wert der log
income
Variablen größer als 10 ist. Die Zeilenauswahl erfolgt nach der Verarbeitung von Datentransformationen (siehe die Argumente transforms
oder transformFunc
). Wie bei allen Ausdrücken können sie außerhalb des Funktionsaufrufs mithilfe der Ausdrucksfunktion rowSelection
definiert werden.
transforms
Ein Ausdruck des Formulars list(name = expression, ``...)
, das die erste Runde von Variablentransformationen darstellt. Wie bei allen Ausdrücken kann (oder transforms
) außerhalb des Funktionsaufrufs mithilfe der Ausdrucksfunktion rowSelection
definiert werden.
transformObjects
Eine benannte Liste, die Objekte enthält, auf die von transforms
, und transformsFunc
.rowSelection
transformFunc
Die Variable Transformationsfunktion. Weitere Informationen finden Sie unter rxTransform.
transformVars
Ein Zeichenvektor von Eingabedatensatzvariablen, die für die Transformationsfunktion erforderlich sind. Weitere Informationen finden Sie unter rxTransform.
transformPackages
Ein Zeichenvektor, der zusätzliche R-Pakete (außerhalb der in rxGetOption("transformPackages")
) angibt, die zur Verwendung in Variablentransformationsfunktionen zur Verfügung gestellt und vorab geladen werden sollen. Beispielsweise werden diejenigen, die in RevoScaleR-Funktionen explizit über ihre transforms
und transformFunc
Argumente oder implizit über ihre formula
Argumente rowSelection
definiert wurden, definiert. Das transformPackages
Argument kann auch sein NULL
, was angibt, dass keine Pakete außerhalb rxGetOption("transformPackages")
vorinstalliert sind.
transformEnvir
Eine benutzerdefinierte Umgebung, die als übergeordnetes Element für alle Umgebungen dient, die intern entwickelt und für die Variable Datentransformation verwendet werden. Wenn transformEnvir = NULL
stattdessen eine neue "Hash"-Umgebung mit übergeordnetem Element baseenv()
verwendet wird.
blocksPerRead
Gibt die Anzahl der zu lesenden Blöcke für jeden Datenabschnitt an, der aus der Datenquelle gelesen werden soll.
reportProgress
Ein ganzzahliger Wert, der die Berichtsebene für den Fortschritt der Zeilenverarbeitung angibt:
-
0
: Es wird kein Fortschritt gemeldet. -
1
: Die Anzahl der verarbeiteten Zeilen wird gedruckt und aktualisiert. -
2
: Verarbeitete Zeilen und Anzeigedauern werden gemeldet. -
3
: Verarbeitete Zeilen und alle Anzeigedauern werden gemeldet.
verbose
Ein ganzzahliger Wert, der die gewünschte Ausgabemenge angibt. Wird 0
bei Berechnungen keine ausführliche Ausgabe gedruckt. Ganzzahlige Werte von 1
bis hin zu 4
steigenden Informationsmengen.
computeContext
Legt den Kontext fest, in dem Berechnungen ausgeführt werden, die mit einem gültigen RxComputeContext angegeben werden. Derzeit werden lokale und RxInSqlServer-Computekontexte unterstützt.
ensemble
Steuerungsparameter für die Ensembling.
...
Zusätzliche Argumente, die direkt an das Microsoft Compute Engine übergeben werden sollen.
Einzelheiten
Entscheidungsstrukturen sind nicht parametrische Modelle, die eine Sequenz ausführen
von einfachen Tests auf Eingaben. Diese Entscheidungsprozedur ordnet sie Ausgaben im Schulungsdatensatz zu, deren Eingaben der verarbeiteten Instanz ähnlich waren. Bei jedem Knoten der Binären Struktur wird basierend auf einem Maß der Ähnlichkeit eine Entscheidung getroffen, die jede Instanz rekursiv durch die Verzweigungen der Struktur ordnet, bis der entsprechende Blattknoten erreicht ist, und die zurückgegebene Ausgabeentscheidung.
Entscheidungsbäume haben mehrere Vorteile:
Sie sind während des Trainings und der Vorhersage effizient sowohl bei der Berechnung als auch bei der Arbeitsspeicherauslastung.
Sie können nicht lineare Entscheidungsgrenzen darstellen.
Sie führen eine integrierte Featureauswahl und -klassifizierung durch.
Sie sind resilient gegen störende Features.
Schnelle Gesamtstrukturregression ist eine zufällige Gesamtstruktur- und quantile Regressions-Gesamtstrukturimplementierung mithilfe des Regressionsbaumlerners in rxFastTrees. Das Modell besteht aus einem Ensemble von Entscheidungsbäumen. Jede Struktur in einer Entscheidungsstruktur gibt eine gaussische Verteilung per Vorhersage aus. Es erfolgt eine Aggregation über das Baumensemble, um eine Gauß-Verteilung zu finden, die der kombinierten Verteilung für alle Bäume im Modell am nächsten kommt.
Dieser Entscheidungs-Gesamtstrukturklassifizierer besteht aus einem Ensemble von Entscheidungsstrukturen. Im Allgemeinen bieten Ensemblemodelle eine bessere Abdeckung und Genauigkeit als einzelne Entscheidungsbäume. Jede Struktur in einer Entscheidungsstruktur gibt eine gaussische Verteilung per Vorhersage aus. Es erfolgt eine Aggregation über das Baumensemble, um eine Gauß-Verteilung zu finden, die der kombinierten Verteilung für alle Bäume im Modell am nächsten kommt.
Wert
rxFastForest
: Ein rxFastForest
Objekt mit dem trainierten Modell.
FastForest
: Ein Lernprogrammspezifikationsobjekt des Kurses maml
für den Fast Forest-Trainer.
Hinweise
Dieser Algorithmus ist multithreaded und versucht immer, das gesamte Dataset in den Arbeitsspeicher zu laden.
Autor(n)
Microsoft Corporation Microsoft Technical Support
Verweise
From Stumps to Trees to Forests
Siehe auch
rxFastTrees, rxFastLinear, rxLogisticRegression, rxNeuralNet, rxOneClassSvm, featurizeText, categorical, categoricalHash, rxPredict.mlModel.
Beispiele
# Estimate a binary classification forest
infert1 <- infert
infert1$isCase = (infert1$case == 1)
forestModel <- rxFastForest(formula = isCase ~ age + parity + education + spontaneous + induced,
data = infert1)
# Create text file with per-instance results using rxPredict
txtOutFile <- tempfile(pattern = "scoreOut", fileext = ".txt")
txtOutDS <- RxTextData(file = txtOutFile)
scoreDS <- rxPredict(forestModel, data = infert1,
extraVarsToWrite = c("isCase", "Score"), outData = txtOutDS)
# Print the fist ten rows
rxDataStep(scoreDS, numRows = 10)
# Clean-up
file.remove(txtOutFile)
######################################################################
# Estimate a regression fast forest
# Use the built-in data set 'airquality' to create test and train data
DF <- airquality[!is.na(airquality$Ozone), ]
DF$Ozone <- as.numeric(DF$Ozone)
randomSplit <- rnorm(nrow(DF))
trainAir <- DF[randomSplit >= 0,]
testAir <- DF[randomSplit < 0,]
airFormula <- Ozone ~ Solar.R + Wind + Temp
# Regression Fast Forest for train data
rxFastForestReg <- rxFastForest(airFormula, type = "regression",
data = trainAir)
# Put score and model variables in data frame
rxFastForestScoreDF <- rxPredict(rxFastForestReg, data = testAir,
writeModelVars = TRUE)
# Plot actual versus predicted values with smoothed line
rxLinePlot(Score ~ Ozone, type = c("p", "smooth"), data = rxFastForestScoreDF)