Partilhar via


rxOneClassSvm: OneClass SVM

Máquinas vetoriais de suporte de uma classe de aprendizado de máquina

Utilização

  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. Termos de interação e F() não são suportados atualmente 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 grandes conjuntos de treinamento. 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(): Núcleo da 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á 1 dividido pelo número de recursos usados. Por exemplo, rbfKernel(gamma = .1). Este é o valor padrão.
  • linearKernel(): Kernel linear.
  • polynomialKernel(): Kernel polinomial com nomes ade parâmetros, bias, e deg no termo (a*<x,y> + bias)^deg. O biaspadrão , é .0 O grau, deg, padrão para 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 sigmoide com nomes gamma de parâmetros e coef0 no termo tanh(gamma*<x,y> + coef0). gamma, o padrão é 1 dividido pelo número de recursos. O parâmetro coef0 assume como 0padrão . Por exemplo, sigmoidKernel(gamma = .1, coef0 = 0).

epsilon

O limiar para a convergência do otimizador. Se a melhoria entre 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

O trade-off entre a fração de outliers e o número de vetores de suporte (representado 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 encolhimento if TRUE. Neste caso, algumas amostras serão "encolhidas" durante o procedimento de treinamento, o que pode acelerar o treinamento. O valor predefinido é TRUE.

normalize

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

  • "auto": se a normalização for necessária, ela é executada automaticamente. Esta é a escolha padrão.
  • "no": nenhuma normalização é realizada.
  • "yes": a normalização é realizada.
  • "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 a descida de gradiente, convirjam muito mais rapidamente. Se a normalização for realizada, um MaxMin normalizador é usado. Ele normaliza os valores em um intervalo [a, b] onde -1 <= a <= 0e 0 <= b <= 1 e b - a = 1. Este normalizador preserva a parsidade mapeando de 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, categorical e categoricalHash, para obter transformações suportadas. Essas transformações são executadas após quaisquer transformações R especificadas. O valor predefinido é NULL.

mlTransformVars

Especifica um vetor de caractere de nomes de variáveis a serem usados ou mlTransformsNULL se nenhum deve ser usado. O valor predefinido é 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 em que o valor da variável old é TRUE. rowSelection = (age > 20) & (age < 65) & (log(income) > 10)utiliza apenas observações em que o age valor da variável está entre 20 e 65 e o valor da log variável é superior a income 10. A seleção de linha é realizada após o processamento de quaisquer transformações de dados (consulte os argumentos transforms ou transformFunc). Como em 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 da forma list(name = expression, ``...) que representa a primeira rodada de transformações variáveis. 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 caracteres de 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 especificando pacotes R adicionais (fora dos 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 através de seus transforms e transformFunc argumentos ou aqueles definidos implicitamente através de seus formula ou rowSelection argumentos. O transformPackages argumento também pode ser NULL, indicando que nenhum pacote fora rxGetOption("transformPackages") é 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. Se transformEnvir = NULL, um novo ambiente "hash" com pai baseenv() é usado em vez disso.

blocksPerRead

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

reportProgress

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

  • 0: não são comunicados quaisquer progressos.
  • 1: o número de linhas processadas é impresso e atualizado.
  • 2: linhas processadas e tempos são relatados.
  • 3: linhas processadas e todos os tempos são relatados.

verbose

Um valor inteiro que especifica a quantidade de saída desejada. Se 0, nenhuma saída detalhada é 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

Parâmetros de controlo para o conjunto.

...

Argumentos adicionais a serem passados diretamente para o Microsoft Compute Engine.

Detalhes

deteção é para identificar outliers 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, a partir dessas propriedades, prevê quais exemplos são diferentes dos exemplos normais. Isso é útil para a deteção de anomalias porque a escassez de exemplos de treinamento é o caráter definidor das anomalias: normalmente há muito poucos exemplos de intrusão na rede, fraude ou outros tipos de comportamento anômalo.

Valor

rxOneClassSvm: Um rxOneClassSvm objeto com o modelo treinado.

OneClassSvm: Um objeto de especificação do aluno da classe maml para o instrutor OneClass Svm.

Observações

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

Autor(es)

Corporação Microsoft 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

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