Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 representagammano termoexp(-gamma|x-y|^2. Se não for especificado, o padrão será1dividido pelo número de recursos usados. Por exemplo,rbfKernel(gamma = .1). Este é o valor padrão. -
linearKernel(): Kernel linear. -
polynomialKernel(): Kernel polinomial com nomesade parâmetros,bias, edegno termo(a*<x,y> + bias)^deg. Obiaspadrão , é .0O grau,deg, padrão para3. Seanão for especificado, ele será definido como1dividido pelo número de recursos. Por exemplo,maKernelPoynomial(bias = 0, deg = `` 3). -
sigmoidKernel(): Kernel sigmoide com nomesgammade parâmetros ecoef0no termotanh(gamma*<x,y> + coef0).gamma, o padrão é1dividido pelo número de recursos. O parâmetrocoef0assume como0padrã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, umMaxMinnormalizador é usado. Ele normaliza os valores em um intervalo [a, b] onde-1 <= a <= 0e0 <= b <= 1eb - 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
Azure Machine Learning Studio (classic): One-Class Support Vector Machine
Support of a High-Dimensional Distribution
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)