rxOneClassSvm: OneClass SVM
Máquinas de vectores de soporte de una clase para el aprendizaje automático
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
Se refiere a la 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 este valor para los conjuntos de entrenamiento de gran tamaño. El valor predeterminado es 100 MB.
kernel
Cadena de caracteres que representa el kernel utilizado para calcular productos internos. Para más información, consulte maKernel. Están disponibles las siguientes opciones:
rbfKernel()
: kernel de función de base radial. Este parámetro representagamma
en el términoexp(-gamma|x-y|^2
. Si no se especifica, el valor predeterminado es1
dividido por el número de características usadas. Por ejemplo,rbfKernel(gamma = .1)
. Este es el valor predeterminado.linearKernel()
: kernel lineal.polynomialKernel()
: kernel polinómico con los nombres de parámetroa
,bias
ydeg
en el término(a*<x,y> + bias)^deg
. El valor predeterminado debias
es0
. El valor predeterminado dedeg
(grado) es3
. Si no se especificaa
, se establece en1
dividido por el número de características. Por ejemplo,maKernelPoynomial(bias = 0, deg = `` 3)
.sigmoidKernel()
: kernel sigmoide con los nombres de parámetrogamma
ycoef0
en el términotanh(gamma*<x,y> + coef0)
. El valor predeterminado degamma
es1
dividido por el número de características. El valor predeterminado decoef0
es0
. Por ejemplo,sigmoidKernel(gamma = .1, coef0 = 0)
.
epsilon
Umbral de 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
Equilibrio entre la fracción de los valores atípicos y el número de vectores de soporte (representado por la letra griega nu). Debe estar entre 0 y 1; normalmente, entre 0.1 y 0.5. El valor predeterminado es 0.1.
shrink
Usa heurística de reducción si es TRUE
. En este caso, algunos ejemplos se "reducen" durante el entrenamiento, lo que puede acelerar el procedimiento. El valor predeterminado es TRUE
.
normalize
Especifica el tipo de normalización automática que se usa:
"auto"
: si la normalización es necesaria, se realiza automáticamente. Esta es la opción predeterminada."no"
: no se realiza ninguna normalización."yes"
: se lleva a cabo la normalización."warn"
: si la normalización es necesaria, se muestra un mensaje de advertencia, pero no se lleva a cabo la normalización.
La normalización aplica una escala estándar a intervalos de datos dispares. El escalado de características asegura que las distancias entre los puntos de datos sean proporcionales y permite que varios métodos de optimización, como el descenso del gradiente, converjan mucho más rápido. Si se lleva a cabo la normalización, se usa un normalizadorMaxMin
. Normaliza los valores de un intervalo [a, b], donde-1 <= a <= 0
,0 <= b <= 1
yb - a = 1
. Este normalizador mantiene la dispersión asignando cero a cero.
mlTransforms
Especifica una lista de transformaciones de MicrosoftML que deben realizarse en los datos antes del entrenamiento, o bien NULL
si no hay que realizar ninguna transformación. Consulte featurizeText, categorical y categoricalHash para saber cuáles son las transformaciones compatibles. Estas transformaciones se realizan después de cualquier transformación de R especificada. El valor predeterminado es NULL
.
mlTransformVars
Especifica un vector de caracteres de nombres de variable que deben usarse en mlTransforms
, o NULL
si no hay que usar ninguno. El valor predeterminado es NULL
.
rowSelection
Especifica las filas (observaciones) del conjunto de datos que debe usar el modelo con el nombre de una variable lógica del conjunto de datos (entre comillas) o con una expresión lógica que usa variables en el conjunto de datos. Por ejemplo, rowSelection = "old"
solo usará observaciones en las que el valor de la variable old
sea TRUE
. rowSelection = (age > 20) & (age < 65) & (log(income) > 10)
solo usa observaciones en las que el valor de la variable age
está entre 20 y 65, y el valor de log
de la variable income
es mayor que 10. La selección de fila 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 de expresión.
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 de expresión.
transformObjects
Lista con nombre que contiene objetos a los que pueden hacer referencia transforms
, transformsFunc
y rowSelection
.
transformFunc
Función de transformación de variables. Consulte rxTransform para más detalles.
transformVars
Vector de caracteres de variables del conjunto de datos de entrada necesarias para la función de transformación. Consulte rxTransform para más detalles.
transformPackages
Vector de caracteres que especifica paquetes de R adicionales (aparte de los especificados en rxGetOption("transformPackages")
) que deben cargarse previamente y estar disponibles para usarlos en las funciones de transformación de variables. Por ejemplo, los definidos explícitamente en las funciones de RevoScaleR mediante los argumentos transforms
y transformFunc
, o los definidos implícitamente con los argumentos formula
o rowSelection
. El argumento transformPackages
también puede ser NULL
, que indica que no se cargan previamente más paquetes aparte de los de rxGetOption("transformPackages")
.
transformEnvir
Entorno definido por el usuario que sirve como primario de todos los entornos desarrollados internamente y que se usa para la transformación de datos variables. Si transformEnvir = NULL
, un entorno "hash" nuevo con baseenv()
primario se usa en su lugar.
blocksPerRead
Especifica el número de bloques que se leerán para cada fragmento de datos leídos del origen de datos.
reportProgress
Valor entero que especifica el nivel de notificación del progreso del procesamiento de filas:
0
: no se notifica el progreso.1
: se imprime y actualiza el número de filas procesadas.2
: se notifican las filas procesadas y los intervalos.3
: se notifican las filas procesadas y todos los intervalos.
verbose
Valor entero que especifica la cantidad de salida deseada. Si es 0
, no se imprime ninguna salida detallada durante los cálculos. Los valores enteros de 1
a 4
proporcionan cantidades crecientes de información.
computeContext
Establece el contexto en el que se ejecutan los cálculos, especificado con un RxComputeContext válido. Actualmente, se admiten los contextos de proceso local y RxInSqlServer.
ensemble
Parámetros de control para la formación de conjuntos.
...
Argumentos adicionales que se pasarán directamente al motor de proceso de Microsoft.
Detalles
detección de anomalías es identificar valores atípicos que no pertenecen a ninguna clase de destino. Este tipo de SVM es de 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, a partir de estas propiedades, predice qué ejemplos son diferentes de los ejemplos normales. Esto es útil para la detección de anomalías porque la escasez de ejemplos de entrenamiento es lo que caracteriza a las anomalías. Normalmente, hay muy pocos ejemplos de intrusiones de red, fraudes u otros tipos de comportamiento anómalo.
Value
rxOneClassSvm
: objeto rxOneClassSvm
con el modelo entrenado.
OneClassSvm
: objeto de especificación de aprendiz de clase maml
para el instructor de OneClass Svm.
Notas
Este algoritmo es uniproceso y siempre intentará cargar todo el conjunto de datos en la memoria.
Autores
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)