One-Class máquina de vetor de suporte
Importante
O suporte para o Estúdio de ML (clássico) terminará a 31 de agosto de 2024. Recomendamos a transição para o Azure Machine Learning até essa data.
A partir de 1 de dezembro de 2021, não poderá criar novos recursos do Estúdio de ML (clássico). Até 31 de agosto de 2024, pode continuar a utilizar os recursos existentes do Estúdio de ML (clássico).
- Consulte informações sobre projetos de machine learning em movimento de ML Studio (clássico) para Azure Machine Learning.
- Saiba mais sobre Azure Machine Learning.
A documentação do Estúdio de ML (clássico) está a ser descontinuada e poderá não ser atualizada no futuro.
Cria um modelo de máquina de vetor de suporte de uma classe para deteção de anomalias
Categoria: Deteção de Anomalias
Nota
Aplica-se a: Machine Learning Studio (clássico) apenas
Módulos semelhantes de arrasto e queda estão disponíveis em Azure Machine Learning designer.
Visão geral do módulo
Este artigo descreve como usar o módulo de modelo de vetor de suporte de uma classe no Machine Learning Studio (clássico), para criar um modelo de deteção de anomalias.
Este módulo é particularmente útil em cenários onde você tem um monte de dados "normais" e poucos casos das anomalias que você está tentando detetar. Por exemplo, se precisar de detetar transações fraudulentas, pode não ter muitos exemplos de fraude que poderia usar para formar um modelo de classificação típico, mas pode ter muitos exemplos de boas transações.
Você usa o módulo de modelo de vetor de suporte de uma classe para criar o modelo e, em seguida, treinar o modelo usando o modelo de deteção de anomalias de comboio. O conjunto de dados que utiliza para o treino pode conter todos ou na sua maioria casos normais.
Em seguida, pode aplicar métricas diferentes para identificar anomalias potenciais. Por exemplo, pode utilizar um grande conjunto de dados de boas transações para identificar casos que possivelmente representem transações fraudulentas.
Mais sobre SVM de uma classe
As máquinas vetoriais de suporte (SVMs) são modelos de aprendizagem supervisionados que analisam dados e reconhecem padrões, e que podem ser usados tanto para tarefas de classificação como de regressão.
Tipicamente, o algoritmo SVM recebe um conjunto de exemplos de treino rotulados como pertencentes a uma de duas classes. Um modelo SVM baseia-se na divisão dos pontos de amostra de formação em categorias separadas por uma lacuna o mais ampla possível, ao mesmo tempo que penaliza as amostras de treino que caem do lado errado da lacuna. O modelo SVM faz então previsões atribuindo pontos a um lado da lacuna ou ao outro.
Por vezes, a sobresmaldição é usada para replicar as amostras existentes para que possa criar um modelo de duas classes, mas é impossível prever todos os novos padrões de fraude ou falhas do sistema a partir de exemplos limitados. Além disso, a recolha de exemplos mesmo limitados pode ser dispendiosa.
Portanto, em SVM de uma classe, o modelo vetorial de suporte é treinado em dados que têm apenas uma classe, que é a classe "normal". Infere as propriedades dos casos normais e destas propriedades podem prever quais exemplos são diferentes dos exemplos normais. Isto é útil para a deteção de anomalias porque a escassez de exemplos de formação é o que define anomalias: isto é, normalmente existem muito poucos exemplos de intrusão de rede, fraude ou outro comportamento anómalo.
Para obter mais informações, incluindo ligações à investigação básica, consulte a secção de notas técnicas .
Nota
O módulo de modelo de vetor de suporte de uma classe cria um modelo kernel-SVM, o que significa que não é muito escalável. Se o tempo de treino for limitado, ou tiver demasiados dados, pode utilizar outros métodos para detetores de anomalias, tais como deteção de anomalias baseadas em PCA.
Como configurar One-Class SVM
Adicione o módulo de modelo de vetor de suporte de uma classe à sua experiência em Studio (clássico). Pode encontrar o módulo em Machine Learning - Inicializar, na categoria deteção de anomalias.
Clique duas vezes no módulo do modelo de vetor de suporte de uma classe para abrir o painel de propriedades .
Para criar o modo de treinador, selecione uma opção que indique como o modelo deve ser treinado:
Parâmetro único: Utilize esta opção se souber como pretende configurar o modelo e fornecer um conjunto específico de valores como argumentos.
Intervalo de parâmetros: Utilize esta opção se não tiver a certeza dos melhores parâmetros e quiser executar uma varredura de parâmetros para encontrar a configuração ideal.
η: Digite um valor que represente o limite superior na fração de outliers. Este parâmetro corresponde à nu-propriedade descrita neste papel. A nu-propriedade permite-lhe controlar a troca entre os casos mais estranhos e os casos normais.
ε (epsilon): Escreva um valor a utilizar como tolerância de paragem. A tolerância de paragem afeta o número de iterações utilizadas na otimização do modelo, e depende do valor do critério de paragem. Quando o valor é ultrapassado, o treinador para de iterar sobre uma solução.
Ligação um conjunto de dados de formação, e um dos módulos de treino:
- Se definir Criar modo de treinador para um único parâmetro, utilize o módulo modelo de deteção de anomalias de comboio .
- Se definir Criar modo de treinador para intervalo de parâmetros, utilize o módulo de hiperparametros do modelo de melodia .
Nota
Se passar uma gama de parâmetros para o Modelo de Deteção de Anomalias de Comboio, utiliza apenas o primeiro valor na lista de parâmetros.
Se passar um único conjunto de valores de parâmetros para o módulo Tune Model Hyperparameters , quando espera uma gama de definições para cada parâmetro, ignora os valores e utiliza os valores predefinidos para o aluno.
Se selecionar a opção De Alcance de Parâmetros e introduzir um único valor para qualquer parâmetro, esse valor único é utilizado ao longo da varredura, mesmo que outros parâmetros se alterem através de uma gama de valores.
Execute a experimentação.
Resultados
O módulo devolve um modelo de deteção de anomalias treinado. Pode guardar o modelo no seu espaço de trabalho ou pode ligar o módulo 'Marca Modelo ' e utilizar o modelo treinado para detetar possíveis anomalias.
Se treinou o modelo utilizando uma varredura de parâmetros, tome nota das definições ideais para utilizar quando configurar um modelo para utilização na produção.
Exemplos
Por exemplo, como este módulo é usado na deteção de anomalias, consulte a Galeria Azure AI:
- Deteção de Anomalias: Risco de Crédito: Esta amostra ilustra como descobrir os mais distantes dados, utilizando uma varredura de parâmetros para encontrar o modelo ideal. Em seguida, aplica este modelo a novos dados para identificar transações de risco que possam representar fraudes, comparando dois modelos diferentes de deteção de anomalias.
Notas técnicas
As previsões do SVM de classe única são pontuações não calibradas que podem ser possivelmente ilimitadas. Como demonstra o exemplo na Cortana Intelligence Gallery, certifique-se de normalizar as pontuações se estiver a comparar modelos com base em diferentes algoritmos.
Investigação
Esta implementação envolve a biblioteca para máquinas vetores de apoio chamadas libsvm. A teoria geral sobre a qual libsvm
se baseia, e a abordagem para máquinas vetoriais de suporte de uma classe, é descrita nestes trabalhos por B. Schӧlkopf et al.
Parâmetros do módulo
Nome | Tipo | Intervalo | Opcional | Descrição | Predefinição |
---|---|---|---|---|---|
Criar modo de treinador | Criar Modo de Treinador | Lista:Parâmetro único| Intervalo de parâmetros | Necessário | Parâmetro único | Especifique as opções do aprendiz. Utilize a opção SingleParameter para especificar manualmente todos os valores. Utilize a opção ParâmetroRange para varrer os parâmetros incapazes. |
nu | Float | >=duplo. Epsilon | modo:Parâmetro único | 0.1 | Este parâmetro (representado pela letra nu grega) determina a compensação entre a fração de outliers e o número de vetores de apoio. |
epsilon | Float | >=duplo. Epsilon | modo:Parâmetro único | 0.001 | Especifica a tolerância de paragem. |
psnu | ParâmetroRangeSettings | [0.001;1.0] | modo:Intervalo de parâmetros | 0.001; 0.01; 0.1 | Especifica o intervalo para a compensação entre a fração de outliers e o número de vetores de suporte. |
psEpsilon | ParâmetroRangeSettings | [1e-6;1.0] | modo:Intervalo de parâmetros | 0.001; 0.01; 0.1 | Especifica o intervalo para parar a tolerância. |
Saídas
Nome | Tipo | Description |
---|---|---|
Modelo destreinado | Interface ILearner | Um modelo de deteção de anomalias não treinados |