Freigeben über


rxOneClassSvm: OneClass SVM

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 Ausdruck gammadarexp(-gamma|x-y|^2. Wenn sie nicht angegeben ist, wird 1 sie standardmäßig durch die Anzahl der verwendeten Features dividiert. Beispiel: rbfKernel(gamma = .1). Dies ist der Standardwert.
  • linearKernel(): Linearer Kernel.
  • polynomialKernel(): Polynomischer Kernel mit Parameternamen a, biasund deg im Ausdruck (a*<x,y> + bias)^deg. The bias, defaults to 0. Der Grad , degist standardmäßig auf 3. Wenn a nicht angegeben, wird sie so festgelegt, dass 1 sie durch die Anzahl der Features geteilt wird. Beispiel: maKernelPoynomial(bias = 0, deg = `` 3).
  • sigmoidKernel(): Sigmoid kernel with parameter names gamma and coef0 in the term tanh(gamma*<x,y> + coef0). gamma, wird 1 standardmäßig durch die Anzahl der Features dividiert. Der Parameter coef0 ist standardmäßig auf 0. 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 ein MaxMin Normalisierer verwendet. Sie normalisiert Werte in einem Intervall [a, b] wobei -1 <= a <= 0und 0 <= b <= 1 .b - a = 1 Dieser 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

Anomaly detection

Azure Machine Learning Studio (classic): One-Class Support Vector Machine

Support of a High-Dimensional Distribution

Support Vector Algorithms

for Support Vector Machines

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)