Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Machine Learning One Class Support Vector Machines
Uso
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(), ...)
Argumentos
formula
Fórmula tal como se describe en rxFormula. Los términos de interacción y F() no se admiten actualmente en MicrosoftML.
data
Objeto de origen de datos o cadena de caracteres que especifica un archivo .xdf o un objeto de trama de datos.
cacheSize
Tamaño máximo en MB de la memoria caché que almacena los datos de entrenamiento. Aumente esto para grandes conjuntos de entrenamiento. El valor predeterminado es 100 MB.
kernel
Cadena de caracteres que representa el kernel usado para calcular productos internos. Para obtener más información, consulte maKernel. Están disponibles las siguientes opciones:
-
rbfKernel(): kernel de función base radial. Su parámetro representagammaen el términoexp(-gamma|x-y|^2. Si no se especifica, el valor predeterminado se divide por el número de características usadas1. Por ejemplo:rbfKernel(gamma = .1). Este es el valor predeterminado. -
linearKernel(): kernel lineal. -
polynomialKernel(): kernel polinómico con nombresade parámetro ,biasydegen el término(a*<x,y> + bias)^deg. ,biasel valor predeterminado es0. El valor predeterminado de degree,deg, es3. Siano se especifica, se establece en1dividido por el número de características. Por ejemplo:maKernelPoynomial(bias = 0, deg = `` 3). -
sigmoidKernel(): kernel sigmoid con nombresgammade parámetro ycoef0en el términotanh(gamma*<x,y> + coef0).gamma, el valor predeterminado se1divide por el número de características. El parámetrocoef0tiene0como valor predeterminado . Por ejemplo:sigmoidKernel(gamma = .1, coef0 = 0).
epsilon
Umbral para la convergencia del optimizador. Si la mejora entre las iteraciones es menor que el umbral, el algoritmo se detiene y devuelve el modelo actual. El valor debe ser mayor o igual que .Machine$double.eps. El valor predeterminado es 0,001.
nu
El equilibrio entre la fracción de valores atípicos y el número de vectores de soporte (representados por la letra griega nu). Debe estar comprendido entre 0 y 1, normalmente entre 0,1 y 0,5. El valor predeterminado es 0.1.
shrink
Usa la heurística de reducción si TRUE. En este caso, algunas muestras se "reducirán" durante el procedimiento de entrenamiento, lo que puede acelerar el entrenamiento. El valor predeterminado es TRUE.
normalize
Especifica el tipo de normalización automática usada:
-
"auto": si se necesita normalización, se realiza automáticamente. Esta es la opción predeterminada. -
"no": no se realiza ninguna normalización. -
"yes": se realiza la normalización. -
"warn": si se necesita normalización, se muestra un mensaje de advertencia, pero no se realiza la normalización.
La normalización vuelve a escalar intervalos de datos dispares a una escala estándar. El escalado de características garantiza que las distancias entre los puntos de datos son proporcionales y permite que varios métodos de optimización, como el descenso de degradado converjan mucho más rápido. Si se realiza la normalización, se usa unMaxMinnormalizador. Normaliza los valores de un intervalo [a, b] donde-1 <= a <= 0y0 <= b <= 1.b - a = 1Este normalizador conserva la dispersidad asignando cero a cero.
mlTransforms
Especifica una lista de transformaciones de MicrosoftML que se van a realizar en los datos antes del entrenamiento o NULL si no se va a realizar ninguna transformación. Consulte featurizeText, categorical y categoricalHash para ver las transformaciones admitidas. Estas transformaciones se realizan después de las transformaciones de R especificadas. El valor predeterminado es NULL.
mlTransformVars
Especifica un vector de caracteres de nombres de variable en mlTransforms los que se va a usar o NULL si no se va a usar ninguno. El valor predeterminado es NULL.
rowSelection
Especifica las filas (observaciones) del conjunto de datos que va a usar el modelo con el nombre de una variable lógica del conjunto de datos (entre comillas) o con una expresión lógica mediante variables del conjunto de datos. Por ejemplo, rowSelection = "old" solo usará observaciones en las que el valor de la variable old es TRUE.
rowSelection = (age > 20) & (age < 65) & (log(income) > 10) solo usa observaciones en las que el valor de la age variable está comprendido entre 20 y 65 y el valor de log la income variable es mayor que 10. La selección de filas se realiza después de procesar las transformaciones de datos (vea los argumentos transforms o transformFunc). Al igual que con todas las expresiones, rowSelection se puede definir fuera de la llamada de función mediante la función expression.
transforms
Expresión del formulario list(name = expression, ``...) que representa la primera ronda de transformaciones de variables. Al igual que con todas las expresiones, transforms (o rowSelection) se puede definir fuera de la llamada de función mediante la función expression.
transformObjects
Lista con nombre que contiene objetos a los que puede hacer referencia transforms, transformsFuncy rowSelection.
transformFunc
Función de transformación de variables. Consulte rxTransform para obtener más información.
transformVars
Vector de caracteres de variables del conjunto de datos de entrada necesarias para la función de transformación. Consulte rxTransform para obtener más información.
transformPackages
Vector de caracteres que especifica paquetes de R adicionales (fuera de los especificados en rxGetOption("transformPackages")) que se van a poner a disposición y cargar previamente para su uso en las funciones de transformación de variables. Por ejemplo, los definidos explícitamente en las funciones de RevoScaleR a través de sus transforms argumentos y transformFunc o los definidos implícitamente a través de sus formula argumentos o rowSelection . El transformPackages argumento también puede ser NULL, que indica que no hay paquetes externos rxGetOption("transformPackages") cargados previamente.
transformEnvir
Un entorno definido por el usuario que sirve como elemento primario para todos los entornos desarrollados internamente y se usa para la transformación de datos variables. Si transformEnvir = NULLes , se usa en su lugar un nuevo entorno "hash" con el elemento primario baseenv() .
blocksPerRead
Especifica el número de bloques que se van a leer para cada fragmento de datos leídos desde el origen de datos.
reportProgress
Valor entero que especifica el nivel de informes sobre el progreso del procesamiento de filas:
-
0: no se notifica ningún progreso. -
1: el número de filas procesadas se imprime y actualiza. -
2: se notifican filas procesadas y tiempos. -
3: se notifican filas procesadas y todos los intervalos.
verbose
Valor entero que especifica la cantidad de salida deseada. Si 0es , no se imprime ninguna salida detallada durante los cálculos. Valores enteros de 1 para 4 proporcionar cantidades crecientes de información.
computeContext
Establece el contexto en el que se ejecutan los cálculos, especificados con un rxComputeContext válido. Actualmente se admiten contextos de proceso locales y RxInSqlServer.
ensemble
Parámetros de control para el montaje.
...
Argumentos adicionales que se van a pasar directamente al motor de proceso de Microsoft.
Detalles
la detección consiste en identificar valores atípicos que no pertenecen a alguna clase de destino. Este tipo de SVM es una clase porque el conjunto de entrenamiento contiene solo ejemplos de la clase de destino. Deduce qué propiedades son normales para los objetos de la clase de destino y de estas propiedades predice qué ejemplos son a diferencia de los ejemplos normales. Esto es útil para la detección de anomalías porque la escasez de ejemplos de entrenamiento es el carácter de definición de anomalías: normalmente hay muy pocos ejemplos de intrusión de red, fraude u otros tipos de comportamiento anómalo.
Importancia
rxOneClassSvm: un rxOneClassSvm objeto con el modelo entrenado.
OneClassSvm: objeto de especificación del aprendiz de clase maml para el instructor de Svm de OneClass.
Notas
Este algoritmo es de un solo subproceso y siempre intentará cargar todo el conjunto de datos en la memoria.
Autor(es)
Microsoft Corporation Microsoft Technical Support
Referencias
Azure Machine Learning Studio (classic): One-Class Support Vector Machine
Support of a High-Dimensional Distribution
Consulte también
rbfKernel, linearKernel, polynomialKernel, sigmoidKernelrxFastTrees, rxFastForest, rxFastLinear, rxLogisticRegression, rxNeuralNet, featurizeText, categorical, categoricalHash, rxPredict.mlModel.
Ejemplos
# 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)