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.
Machine Learning One Class Support Vector Machines
Verwendung
rxOneClassSvm(formula = NULL, data, cacheSize = 100, kernel = rbfKernel(),
epsilon = 0.001, nu = 0.1, shrink = TRUE, normalize = "auto",
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 = 1,
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.
cacheSize
Die maximale Größe in MB des Caches, in dem die Schulungsdaten gespeichert werden. Erhöhen Sie dies für große Schulungssätze. Der Standardwert ist 100 MB.
kernel
Eine Zeichenfolge, die den Kernel darstellt, der für das Berechnen innerer Produkte verwendet wird. Weitere Informationen finden Sie unter maKernel. Die folgenden Optionen sind verfügbar:
-
rbfKernel(): Radialer Basisfunktionskern. Der Parameter stellt im Ausdruckgammadarexp(-gamma|x-y|^2. Wenn sie nicht angegeben ist, wird1sie standardmäßig durch die Anzahl der verwendeten Features dividiert. Beispiel:rbfKernel(gamma = .1). Dies ist der Standardwert. -
linearKernel(): Linearer Kernel. -
polynomialKernel(): Polynomischer Kernel mit Parameternamena,biasunddegim Ausdruck(a*<x,y> + bias)^deg. Thebias, defaults to0. Der Grad ,degist standardmäßig auf3. Wennanicht angegeben, wird sie so festgelegt, dass1sie durch die Anzahl der Features geteilt wird. Beispiel:maKernelPoynomial(bias = 0, deg = `` 3). -
sigmoidKernel(): Sigmoid kernel with parameter namesgammaandcoef0in the termtanh(gamma*<x,y> + coef0).gamma, wird1standardmäßig durch die Anzahl der Features dividiert. Der Parametercoef0ist standardmäßig auf0. Beispiel:sigmoidKernel(gamma = .1, coef0 = 0).
epsilon
Der Schwellenwert für die Optimiererkonvergenz. Wenn die Verbesserung zwischen Iterationen kleiner als der Schwellenwert ist, wird der Algorithmus beendet und das aktuelle Modell zurückgegeben. Der Wert muss größer oder gleich .Machine$double.epssein. Der Standardwert ist 0,001.
nu
Der Kompromiss zwischen dem Bruchteil der Ausreißer und der Anzahl der Unterstützungsvektoren (dargestellt durch den griechischen Buchstaben nu). Muss zwischen 0 und 1 sein, in der Regel zwischen 0,1 und 0,5. Der Standardwert ist 0,1.
shrink
Verwendet die verkleinerte Heuristik, wenn TRUE. In diesem Fall werden einige Beispiele während des Trainingsverfahrens "zerkleinert" sein, was das Training beschleunigen kann. Der Standardwert ist TRUE.
normalize
Gibt den Typ der verwendeten automatischen Normalisierung an:
-
"auto": Wenn die Normalisierung erforderlich ist, wird sie automatisch ausgeführt. Dies ist die Standardauswahl. -
"no": Es wird keine Normalisierung durchgeführt. -
"yes": Normalisierung wird durchgeführt. -
"warn": Wenn die Normalisierung erforderlich ist, wird eine Warnmeldung angezeigt, die Normalisierung wird jedoch nicht ausgeführt.
Durch die Normalisierung werden unterschiedliche Datenbereiche auf eine Standardskala skaliert. Die Featureskalierung stellt die Abstände zwischen Datenpunkten proportional dar und ermöglicht verschiedene Optimierungsmethoden wie Farbverlaufsabstieg viel schneller zu konvergen. Wenn die Normalisierung durchgeführt wird, wird einMaxMinNormalisierer verwendet. Sie normalisiert Werte in einem Intervall [a, b] wobei-1 <= a <= 0und0 <= b <= 1.b - a = 1Dieser Normalisierer behält Sparsamkeit bei, indem null zu Null zugeordnet wird.
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 logincome 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 = NULLstattdessen 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 0bei 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
Erkennung besteht darin, Ausreißer zu identifizieren, die nicht zu einer Zielklasse gehören. Diese Art von SVM ist eine Klasse, da der Schulungssatz nur Beispiele aus der Zielklasse enthält. Sie leitet ab, welche Eigenschaften für die Objekte in der Zielklasse normal sind, und anhand dieser Eigenschaften wird vorhergesagt, welche Beispiele im Gegensatz zu den normalen Beispielen vorliegen. Dies ist nützlich für die Anomalieerkennung, da die Knappheit von Schulungsbeispielen der definierende Charakter von Anomalien ist: In der Regel gibt es nur sehr wenige Beispiele für Netzwerkangriffe, Betrug oder andere Arten von anomalien verhalten.
Wert
rxOneClassSvm: Ein rxOneClassSvm Objekt mit dem trainierten Modell.
OneClassSvm: Ein Lernerspezifikationsobjekt der Klasse maml für den OneClass Svm-Trainer.
Hinweise
Dieser Algorithmus ist singlethreaded und versucht immer, das gesamte Dataset in den Arbeitsspeicher zu laden.
Autor(n)
Microsoft Corporation Microsoft Technical Support
Verweise
Azure Machine Learning Studio (classic): One-Class Support Vector Machine
Support of a High-Dimensional Distribution
Siehe auch
rbfKernel, linearKernel, polynomialKernel, sigmoidKernelrxFastTrees, rxFastForest, rxFastLinear, rxLogisticRegression, rxNeuralNet, featurizeText, categorical, categoricalHash, rxPredict.mlModel.
Beispiele
# Estimate a One-Class SVM model
trainRows <- c(1:30, 51:80, 101:130)
testRows = !(1:150 %in% trainRows)
trainIris <- iris[trainRows,]
testIris <- iris[testRows,]
svmModel <- rxOneClassSvm(
formula = ~Sepal.Length + Sepal.Width + Petal.Length + Petal.Width,
data = trainIris)
# Add additional non-iris data to the test data set
testIris$isIris <- 1
notIris <- data.frame(
Sepal.Length = c(2.5, 2.6),
Sepal.Width = c(.75, .9),
Petal.Length = c(2.5, 2.5),
Petal.Width = c(.8, .7),
Species = c("not iris", "not iris"),
isIris = 0)
testIris <- rbind(testIris, notIris)
scoreDF <- rxPredict(svmModel,
data = testIris, extraVarsToWrite = "isIris")
# Look at the last few observations
tail(scoreDF)
# Look at average scores conditioned by 'isIris'
rxCube(Score ~ F(isIris), data = scoreDF)