Máquina de vetor de suporte de uma classe

Cria um modelo de Máquina do Vetor de Suporte de uma classe para detecção de anomalias

Categoria: detecção de anomalias

Observação

Aplica-se a: Machine Learning Studio (clássico)

Esse conteúdo pertence apenas ao estúdio (clássico). Módulos de arrastar e soltar semelhantes foram adicionados ao designer de Azure Machine Learning. Saiba mais neste artigo comparando as duas versões.

Visão geral do módulo

Este artigo descreve como usar o módulo modelo de vetor de suporte de uma classe no Azure Machine Learning para criar um modelo de detecção de anomalias.

Esse módulo é particularmente útil em cenários em que você tem muitos dados "normais" e não muitos casos das anomalias que você está tentando detectar. Por exemplo, se você precisar detectar transações fraudulentas, talvez você não tenha muitos exemplos de fraudes que poderia usar para treinar um modelo de classificação típico, mas pode ter muitos exemplos de transações boas.

Use o módulo modelo de vetor de suporte de uma classe para criar o modelo e, em seguida, treine o modelo usando o modelo de detecção de anomalias de treinamento. O conjunto de os que você usa para treinamento pode conter todos ou casos normais.

Em seguida, você pode aplicar métricas diferentes para identificar possíveis anomalias. Por exemplo, você pode usar um grande conjunto de grandes transações para identificar casos que possivelmente representam transações fraudulentas.

Mais sobre SVM de uma classe

Suporte a máquinas de vetor (SVMs) são modelos de aprendizado supervisionado que analisam dados e reconhecem padrões e que podem ser usados para tarefas de classificação e de regressão.

Normalmente, o algoritmo SVM recebe um conjunto de exemplos de treinamento rotulados como pertencentes a uma das duas classes. Um modelo de SVM baseia-se na divisão dos pontos de exemplo de treinamento em categorias separadas por uma maior lacuna possível, enquanto penaliza as amostras de treinamento que se enquadram no lado errado da lacuna. Em seguida, o modelo SVM faz previsões atribuindo pontos a um lado da lacuna ou à outra.

Às vezes, a sobreamostragem é usada para replicar os exemplos existentes para que você possa criar um modelo de duas classes, mas é impossível prever todos os novos padrões de fraude ou falhas do sistema de exemplos limitados. Além disso, a coleção de exemplos limitados ainda pode ser cara.

Portanto, em SVM de uma classe, o modelo de vetor de suporte é treinado em dados que têm apenas uma classe, que é a classe "normal". Ele infere as propriedades de casos normais e essas propriedades podem prever quais exemplos são diferentes dos exemplos normais. Isso é útil para detecção de anomalias porque o escassez de exemplos de treinamento é o que define anomalias: ou seja, normalmente há poucos exemplos de intrusão na rede, fraude ou outro comportamento anormal.

Para obter mais informações, incluindo links para pesquisa básica, consulte a seção observações técnicas .

Observação

O módulo de Modelo de vetor de suporte de uma classe cria um modelo de kernel SVM, que significa que não é muito escalonável. Se o tempo de treinamento for limitado ou se você tiver muitos dados, poderá usar outros métodos para detectores de anomalias, como a detecção de anomalias baseada em PCA.

Como configurar One-Class SVM

  1. Adicione o módulo modelo de vetor de suporte de uma classe ao seu experimento no estúdio (clássico). Você pode encontrar o módulo em Machine Learning-Initialize, na categoria detecção de anomalias .

  2. Clique duas vezes no módulo modelo de vetor de suporte de uma classe para abrir o painel Propriedades .

  3. Para criar modo de instrutor, selecione uma opção que indica como o modelo deve ser treinado:

    • Parâmetro único: Use essa opção se você souber como deseja configurar o modelo e fornecer um conjunto específico de valores como argumentos.

    • Intervalo de parâmetros: Use essa opção se você não tiver certeza dos melhores parâmetros e quiser executar uma limpeza de parâmetro para localizar a configuração ideal.

  4. η: digite um valor que represente o limite superior na fração de exceções. Esse parâmetro corresponde à propriedade nu descrita neste documento. A propriedade nu permite que você controle a compensação entre exceções e casos normais.

  5. ε (Épsilon): digite um valor a ser usado como a tolerância de interrupção. A tolerância de interrupção, afeta o número de iterações usadas ao otimizar o modelo e depende do valor de critério de interrupção. Quando o valor é excedido, o instrutor para a iteração em uma solução.

  6. Conecte um conjunto de e um dos módulos de treinamento:

    Observação

    Se você passar um intervalo de parâmetros para treinar o modelo de detecção de anomalias, ele usará apenas o primeiro valor na lista intervalo de parâmetros.

    Se você passar um único conjunto de valores de parâmetro para o módulo ajustar hiperparâmetros de modelo , quando ele esperar um intervalo de configurações para cada parâmetro, ele ignorará os valores e usará os valores padrão para o aprendiz.

    Se você selecionar a opção intervalo de parâmetros e inserir um único valor para qualquer parâmetro, esse valor único será usado em toda a varredura, mesmo que outros parâmetros sejam alterados em um intervalo de valores.

  7. Execute o experimento.

Resultados

O módulo retorna um modelo de detecção de anomalias treinado. Você pode salvar o modelo em seu espaço de trabalho ou pode conectar o módulo modelo de Pontuação e usar o modelo treinado para detectar possíveis anomalias.

Se você tiver treinado o modelo usando uma varredura de parâmetro, anote as configurações de parâmetro ideais a serem usadas ao configurar um modelo para uso na produção.

Exemplos

Para obter exemplos de como esse módulo é usado na detecção de anomalias, consulte o Galeria de ia do Azure:

  • Detecção de anomalias: risco de crédito: Este exemplo ilustra como encontrar exceções nos dados, usando uma limpeza de parâmetro para localizar o modelo ideal. Em seguida, ele aplica esse modelo aos novos dados para identificar as transações arriscadas que podem representar fraudes, comparando dois modelos de detecção de anomalias diferentes.

Observações técnicas

As previsões da SVM de uma classe são pontuações não calibradas que podem ser possivelmente desassociadas. Como o exemplo no Cortana Intelligence Gallery demonstra, não se esqueça de normalizar as pontuações se estiver comparando modelos com base em algoritmos diferentes.

Pesquisa

Essa implementação encapsula a biblioteca para computadores de vetor de suporte chamados libsvm. A teoria geral sobre a qual libsvm se baseia, e a abordagem para computadores de vetor de suporte de uma classe, é descrita nestes documentos por B. Schӧlkopf et al.

Parâmetros do módulo

Nome Tipo Intervalo Opcional Descrição Padrão
Criar modo de aprendizagem Criar Modo de aprendizagem List: intervalo de parâmetros de|de parâmetro único Necessária Parâmetro único Especifica opções do aprendiz.

Use a opção SingleParameter para especificar todos os valores manualmente.

Use a opção ParameterRange para limpar os parâmetros ajustáveis.
nu Float >= double.Épsilon modo:Parâmetro Único 0,1 Esse parâmetro (representado pela letra grega nu) determina a compensação entre a fração de exceções e o número de vetores de suporte.
épsilon Float >= double.Épsilon modo:Parâmetro Único 0,001 Especifica a tolerância de interrupção.
psnu ParameterRangeSettings [0,001; 1,0] modo:Intervalo de Parâmetro 0, 1; 0, 1; 0,1 Especifica o intervalo para a compensação entre a fração de exceções e o número de vetores de suporte.
psEpsilon ParameterRangeSettings [1e-6; 1.0] modo:Intervalo de Parâmetro 0, 1; 0, 1; 0,1 Especifica o intervalo para a tolerância de interrupção.

Saídas

Nome Tipo Descrição
Modelo não treinado Interface ILearner Um modelo de detecção de anomalias de treinamento

Consulte também

Classificação
Treinar um Modelo de Detecção de Anomalias