Deteção de Anomalias Baseada em PCA
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 deteção de anomalias utilizando a Análise principal de Componentes
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 deteção de anomalias baseada em PCA no Machine Learning Studio (clássico), para criar um modelo de deteção de anomalias baseado na Análise principal de Componentes (PCA).
Este módulo ajuda a construir um modelo em cenários onde é fácil obter dados de formação de uma classe, como transações válidas, mas difícil de obter amostras suficientes das anomalias direcionadas.
Por exemplo, para detetar transações fraudulentas, muitas vezes não tem exemplos suficientes de fraude para treinar, mas tem muitos exemplos de boas transações. O módulo de deteção de anomalias baseada em PCA resolve o problema analisando as funcionalidades disponíveis para determinar o que constitui uma classe "normal", e aplicando métricas de distância para identificar casos que representam anomalias. Isto permite-lhe treinar um modelo utilizando dados desequilibrados existentes.
Mais sobre a Análise principal de Componentes
A Análise principal de Componentes, que é frequentemente abreviada para OPC, é uma técnica estabelecida na aprendizagem automática. O PCA é frequentemente utilizado na análise de dados exploratórios porque revela a estrutura interna dos dados e explica a variação dos dados.
O PCA funciona através da análise de dados que contêm múltiplas variáveis. Procura correlações entre as variáveis e determina a combinação de valores que melhor captura diferenças nos resultados. Estes valores de característica combinada são usados para criar um espaço de característica mais compacto chamado os principais componentes.
Para a deteção de anomalias, cada nova entrada é analisada, e o algoritmo de deteção de anomalias calcula a sua projeção nos eigenvectors, juntamente com um erro de reconstrução normalizado. O erro normalizado é usado como a pontuação da anomalia. Quanto maior for o erro, mais anómalo é o caso.
Para obter informações adicionais sobre o funcionamento do APC e sobre a implementação para deteção de anomalias, consulte estes trabalhos:
Um algoritmo aleatório para análise de componentes principais. Rokhlin, Szlan e Tygert
Estrutura de descoberta com aleatoriedade: Algoritmos probabilísticos para a construção de decomposições de matriz aproximadas (download PDF). Halko, Martinsson e Tropp.
Como configurar a deteção de anomalias do PCA
Adicione o módulo de deteção de anomalias baseadas em PCA à sua experiência em Studio (clássico). Pode encontrar este módulo em Machine Learning, Modelo Inicialize, na categoria deteção de anomalias.
No painel de propriedades para o módulo de deteção de anomalias baseada em PCA , clique na opção modo Training e indique se pretende treinar o modelo usando um conjunto específico de parâmetros, ou use uma varredura de parâmetros para encontrar os melhores parâmetros.
Parâmetro único: Selecione esta opção se souber como pretende configurar o modelo e fornecer um conjunto específico de valores como argumentos.
Intervalo de parâmetros: Selecione esta opção se não tiver a certeza dos melhores parâmetros e quiser utilizar uma varredura de parâmetros, utilizando o módulo Tune Model Hyperparameters . O treinador itera sobre uma gama de configurações que especifica e determina a combinação de configurações que produzem os melhores resultados.
Número de componentes a utilizar em PCA, Gama para o número de componentes de APC: Especifique o número de características de saída, ou componentes, que pretende obter.
A decisão de quantos componentes incluir é uma parte importante do design de experiências usando OPC. A orientação geral é que não deve incluir o mesmo número de componentes de APC que existem variáveis. Em vez disso, deve começar com um número menor de componentes e aumentá-los até que alguns critérios sejam cumpridos.
Se não tiver a certeza de qual poderá ser o valor ideal, recomendamos que treine o modelo de deteção de anomalias utilizando a opção De alcance de parâmetros .
Os melhores resultados são obtidos quando o número de componentes de saída é inferior ao número de colunas de funcionalidades disponíveis no conjunto de dados.
Especifique a quantidade de sobresmaltamento a realizar durante o treino aleatório de APC. Em problemas de deteção de anomalias, os dados desequilibrados dificultam a aplicação de técnicas padrão de APC. Ao especificar alguma quantidade de sobresmalte, pode aumentar o número de casos-alvo.
Se especificar 1, não é efetuada uma sobresmaldição. Se especificar qualquer valor superior a 1, são geradas amostras adicionais para utilizar no treino do modelo.
Existem duas opções, dependendo se está a usar ou não uma varredura de parâmetros:
- Parâmetro de sobresmaltamento para PCA aleatório: Escreva um único número inteiro que represente a relação de sobresmaltamento da classe minoritária em relação à classe normal. (Disponível ao utilizar o método de treino de parâmetro único .)
- Gama para o parâmetro de sobresmaltamento utilizado em PCA aleatório: Digite uma série de números para experimentar, ou use o Range Builder para selecionar valores utilizando um slider. (Disponível apenas quando utilizar o método de treino de intervalo de parâmetros .)
Nota
Não é possível visualizar o conjunto de dados sobre-amplificados. Para obter mais detalhes sobre como a sobresmaldição é usada com APC, consulte notas técnicas.
Ativar a normalização média da função de entrada: Selecione esta opção para normalizar todas as funcionalidades de entrada para uma média de zero. A normalização ou a escala para zero é geralmente recomendada para OPC, porque o objetivo do APC é maximizar a variação entre variáveis.
Esta opção está selecionada por predefinição. Desmarcar esta opção se os valores já tiverem sido normalizados utilizando um método ou escala diferente.
Ligação um conjunto de dados de formação marcado, e um dos módulos de treino:
- Se definir a opção modo de formação Criar para O Parâmetro Único, utilize o módulo modelo de deteção de anomalias de comboio .
- Se definir a opção modo de formação Criar para a Gama de Parâmetros, utilize o módulo De Hiperparametros tune Model .
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.
Executar a experiência, ou selecionar o módulo e clicar em Executar selecionado.
Resultados
Quando o treino estiver completo, pode guardar o modelo treinado ou conectá-lo ao módulo 'Modelo de Pontuação' para prever pontuações de anomalias.
Para avaliar os resultados de um modelo de deteção de anomalias requer algumas etapas adicionais:
Certifique-se de que uma coluna de pontuação está disponível em ambos os conjuntos de dados
Se tentar avaliar um modelo de deteção de anomalias e obter o erro, "Não existe nenhuma coluna de pontuação no conjunto de dados pontuado para comparar", significa que está a usar um conjunto de dados de avaliação típico que contém uma coluna de etiquetas, mas sem pontuações de probabilidade. É necessário escolher um conjunto de dados que corresponda à saída do esquema para modelos de deteção de anomalias, que inclui uma coluna de etiquetas pontuadas e probabilidades pontuadas .
Certifique-se de que as colunas de etiquetas estão marcadas
Por vezes, os metadados associados à coluna do rótulo são removidos no gráfico de experiência. Se isso acontecer, quando utilizar o módulo 'Avaliar Modelo' para comparar os resultados de dois modelos de deteção de anomalias, poderá obter o erro: "Não existe nenhuma coluna de etiqueta no conjunto de dados pontuado", ou "Não existe nenhuma coluna de etiquetas no conjunto de dados pontuado para comparar".
Pode evitar este erro adicionando o módulo de metadados de edição antes do módulo Modelo de Avaliação . Utilize o seletor de colunas para escolher a coluna de classe e na lista de retirada de campos , selecione Label.
Normalizar pontuações de diferentes tipos de modelos
As previsões do modelo de deteção de anomalias do PCA estão sempre na gama [0,1]. Em contraste, a saída do módulo SVM de classe única não é calibrada que possivelmente não são ilimitadas.
Portanto, se estiver a comparar modelos com base em algoritmos diferentes, deve sempre normalizar as pontuações. Veja o exemplo na Galeria Azure AI para um exemplo de normalização entre diferentes modelos de deteção de anomalias.
Exemplos
Por exemplo, como o APC é utilizado na deteção de anomalias, consulte a Galeria Azure AI:
- Deteção de anomalias: risco de crédito: Ilustra como descobrir os mais distantes dados. Este exemplo usa 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
Este algoritmo utiliza O PCA para aproximar o subespaço que contém a classe normal. O subespaço é abrangedo por eigenvectors associados aos valores de topo da matriz de covariância de dados. Para cada nova entrada, o detetor de anomalias calcula primeiro a sua projeção nos eigenvectors e, em seguida, calcula o erro de reconstrução normalizado. Este erro é a pontuação da anomalia. Quanto maior o erro, mais anómalo o caso. Para mais detalhes sobre como o espaço normal é calculado, consulte a Wikipédia: Análise principal de componentes
Parâmetros do módulo
Nome | Tipo | Intervalo | Opcional | Descrição | Predefinição |
---|---|---|---|---|---|
Modo de treino | CreateLearnerMode | 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. |
Número de componentes a utilizar no APC | Número inteiro | modo:Parâmetro único | 2 | Especificar o número de componentes a utilizar em APC. | |
Parâmetro de sobreamdição para APC aleatório | Número inteiro | modo:Parâmetro único | 2 | Especifique o parâmetro de precisão para o treino aleatório de APC. | |
Ativar a normalização média da função de entrada | Tipo de lógica | Lista:Verdade| Falso | Necessário | Falso | Especifique se os dados de entrada estão normalizados para ter zero média. |
Gama para o número de componentes do APC | ParâmetroRangeSettings | [1;100] | modo:Intervalo de parâmetros | 2; 4; 6; 8; 10 | Especifique a gama para o número de componentes a utilizar em APC. |
Gama para o parâmetro de sobreamcosão utilizado no APC aleatório | ParâmetroRangeSettings | [1;100] | modo:Intervalo de parâmetros | 2; 4; 6; 8; 10 | Especifique o intervalo para o parâmetro de precisão utilizado no treino aleatório de APC. |
Saídas
Nome | Tipo | Description |
---|---|---|
Modelo destreinado | Interface ILearner | Um modelo de deteção de anomalias não treinados com base em PCA |
Exceções
Exceção | Description |
---|---|
Erro 0017 | A exceção ocorre se uma ou mais colunas especificadas tiverem o tipo não suportado pelo módulo atual. |
Erro 0062 | A exceção ocorre quando se tenta comparar dois modelos com diferentes tipos de aprendizes. |
Erro 0047 | A exceção ocorre se o número de colunas de funcionalidades em alguns dos conjuntos de dados passados para o módulo for demasiado pequeno. |
Para obter uma lista de erros específicos dos módulos Studio (clássicos), consulte Machine Learning Códigos de Erro.
Para obter uma lista de exceções da API, consulte Machine Learning CÓDIGOs de Erro da API REST.