Compartilhar via


rxOneClassSvm: SVM oneClass

Máquinas vetoriais de suporte de uma classe do Machine Learning One

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

A fórmula, conforme descrito em rxFormula. No momento, não há suporte para termos F() de interação no MicrosoftML.

data

Um objeto de fonte de dados ou uma cadeia de caracteres especificando um arquivo .xdf ou um objeto de quadro de dados.

cacheSize

O tamanho máximo em MB do cache que armazena os dados de treinamento. Aumente isso para conjuntos de treinamento grandes. O valor padrão é 100 MB.

kernel

Uma cadeia de caracteres que representa o kernel usado para computação de produtos internos. Para obter mais informações, consulte maKernel. As seguintes opções estão disponíveis:

  • rbfKernel(): kernel de função de base radial. Seu parâmetro representa gamma no termo exp(-gamma|x-y|^2. Se não for especificado, o padrão será dividido pelo número de recursos usados 1 . Por exemplo, rbfKernel(gamma = .1). Esse é o valor padrão.
  • linearKernel(): kernel linear.
  • polynomialKernel(): kernel polinomial com nomes abiasde parâmetro e deg no termo (a*<x,y> + bias)^deg. O biaspadrão 0é . O grau, dego padrão é 3. Se a não for especificado, ele será definido como 1 dividido pelo número de recursos. Por exemplo, maKernelPoynomial(bias = 0, deg = `` 3).
  • sigmoidKernel(): kernel Sigmoid com nomes gamma de parâmetro e coef0 no termo tanh(gamma*<x,y> + coef0). gamma, o padrão é 1 dividido pelo número de recursos. O parâmetro coef0 usa 0como padrão . Por exemplo, sigmoidKernel(gamma = .1, coef0 = 0).

epsilon

O limite de convergência do otimizador. Se a melhoria entre as iterações for menor que o limite, o algoritmo para e retorna o modelo atual. O valor deve ser maior ou igual a .Machine$double.eps. O valor padrão é 0,001.

nu

A troca entre a fração de exceções e o número de vetores de suporte (representados pela letra grega nu). Deve estar entre 0 e 1, normalmente entre 0,1 e 0,5. O valor padrão é 0,1.

shrink

Usa a heurística de redução se TRUE. Nesse caso, alguns exemplos serão "reduzidos" durante o procedimento de treinamento, o que pode acelerar o treinamento. O valor padrão é TRUE.

normalize

Especifica o tipo de normalização automática usado:

  • "auto": se a normalização for necessária, ela será executada automaticamente. Essa é a opção padrão.
  • "no": nenhuma normalização é executada.
  • "yes": a normalização é executada.
  • "warn": se a normalização for necessária, uma mensagem de aviso será exibida, mas a normalização não será executada.
    A normalização redimensiona intervalos de dados diferentes para uma escala padrão. O dimensionamento de recursos garante que as distâncias entre os pontos de dados sejam proporcionais e permite que vários métodos de otimização, como descendente de gradiente, convergam muito mais rapidamente. Se a normalização for executada, um MaxMin normalizador será usado. Normaliza valores em um intervalo [a, b] onde -1 <= a <= 0e 0 <= b <= 1b - a = 1. Esse normalizador preserva a moderação mapeando zero a zero.

mlTransforms

Especifica uma lista de transformações do MicrosoftML a serem executadas nos dados antes do treinamento ou NULL se nenhuma transformação deve ser executada. Consulte featurizeText, categórico e categórico para ver as transformações com suporte. Essas transformações são executadas após quaisquer transformações de R especificadas. O valor padrão é NULL.

mlTransformVars

Especifica um vetor de caractere de nomes de variáveis a ser usado ou mlTransformsNULL se nenhum deve ser usado. O valor padrão é NULL.

rowSelection

Especifica as linhas (observações) do conjunto de dados que devem ser usadas pelo modelo com o nome de uma variável lógica do conjunto de dados (entre aspas) ou com uma expressão lógica usando variáveis no conjunto de dados. Por exemplo, rowSelection = "old" usará apenas observações nas quais o valor da variável old é TRUE. rowSelection = (age > 20) & (age < 65) & (log(income) > 10) usa apenas observações nas quais o valor da age variável está entre 20 e 65 e o valor da logincome variável é maior que 10. A seleção de linha é executada após o processamento de transformações de dados (consulte os argumentos transforms ou transformFunc). Assim como acontece com todas as expressões, rowSelection pode ser definido fora da chamada de função usando a função de expressão.

transforms

Uma expressão do formulário list(name = expression, ``...) que representa a primeira rodada de transformações variáveis. Assim como acontece com todas as expressões, transforms (ou rowSelection) pode ser definido fora da chamada de função usando a função de expressão.

transformObjects

Uma lista nomeada que contém objetos que podem ser referenciados por transforms, transformsFunce rowSelection.

transformFunc

A função de transformação variável. Consulte rxTransform para obter detalhes.

transformVars

Um vetor de caractere das variáveis de conjunto de dados de entrada necessárias para a função de transformação. Consulte rxTransform para obter detalhes.

transformPackages

Um vetor de caracteres que especifica pacotes R adicionais (fora daqueles especificados em rxGetOption("transformPackages")) a serem disponibilizados e pré-carregados para uso em funções de transformação variável. Por exemplo, aqueles explicitamente definidos em funções RevoScaleR por meio de seus transforms argumentos ou transformFunc argumentos ou aqueles definidos implicitamente por meio de seus formula argumentos ou rowSelection argumentos. O transformPackages argumento também pode ser NULL, indicando que nenhum pacote externo rxGetOption("transformPackages") está pré-carregado.

transformEnvir

Um ambiente definido pelo usuário para servir como pai para todos os ambientes desenvolvidos internamente e usados para transformação de dados variáveis. Em transformEnvir = NULLvez disso, um novo ambiente "hash" com pai baseenv() será usado.

blocksPerRead

Especifica o número de blocos a serem lidos para cada parte dos dados lidos da fonte de dados.

reportProgress

Um valor inteiro que especifica o nível de relatório sobre o progresso do processamento de linhas:

  • 0: nenhum progresso é relatado.
  • 1: o número de linhas processadas é impresso e atualizado.
  • 2: linhas processadas e intervalos são relatados.
  • 3: linhas processadas e todos os intervalos são relatados.

verbose

Um valor inteiro que especifica a quantidade de saída desejada. Se 0, nenhuma saída detalhada será impressa durante os cálculos. Valores inteiros de 1 para 4 fornecer quantidades crescentes de informações.

computeContext

Define o contexto no qual os cálculos são executados, especificado com um RxComputeContext válido. Atualmente, há suporte para contextos de computação locais e RxInSqlServer.

ensemble

Controlar parâmetros para ensembling.

...

Argumentos adicionais a serem passados diretamente para o Mecanismo de Computação da Microsoft.

Detalhes

a detecção é identificar exceções que não pertencem a alguma classe de destino. Esse tipo de SVM é de uma classe porque o conjunto de treinamento contém apenas exemplos da classe de destino. Ele infere quais propriedades são normais para os objetos na classe de destino e dessas propriedades prevê quais exemplos são diferentes dos exemplos normais. Isso é útil para detecção de anomalias porque a escassez de exemplos de treinamento é o caractere definidor de anomalias: normalmente, há muito poucos exemplos de intrusão de rede, fraude ou outros tipos de comportamento anômalo.

Valor

rxOneClassSvm: um rxOneClassSvm objeto com o modelo treinado.

OneClassSvm: um objeto de especificação de aprendiz de classe maml para o treinador do OneClass Svm.

Anotações

Esse algoritmo é de thread único e sempre tentará carregar todo o conjunto de dados na memória.

Autor(s)

Microsoft Corporation Microsoft Technical Support

Referências

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

Consulte também

rbfKernel, linearKernel, polynomialKernel, sigmoidKernelrxFastTrees, rxFastForest, rxFastLinear, rxLogisticRegression, rxNeuralNet, featurizeText, categorical, categoricalHash, rxPredict.mlModel.

Exemplos


 # 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)