Compartilhar via


Detecção de anomalias baseada em PCA

Importante

O suporte para o Machine Learning Studio (clássico) terminará em 31 de agosto de 2024. É recomendável fazer a transição para o Azure Machine Learning até essa data.

A partir de 1º de dezembro de 2021, você não poderá criar recursos do Machine Learning Studio (clássico). Até 31 de agosto de 2024, você pode continuar usando os recursos existentes do Machine Learning Studio (clássico).

A documentação do ML Studio (clássico) está sendo desativada e pode não ser atualizada no futuro.

Cria um modelo de detecção de anomalias usando a Análise de Componente Principal

Categoria: Detecção de Anomalias

Observação

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

Módulos semelhantes do tipo "arrastar e soltar" estão disponíveis no designer do Azure Machine Learning.

Visão geral do módulo

Este artigo descreve como usar o módulo detecção de anomalias baseada em PCA no Machine Learning Studio (clássico) para criar um modelo de detecção de anomalias com base na PCA (Análise de Componente Principal).

Este módulo ajuda você a criar um modelo em cenários em que é fácil obter dados de treinamento de uma classe, como transações válidas, mas difícil de obter amostras suficientes das anomalias direcionadas.

Por exemplo, para detectar transações fraudulentas, muitas vezes você não tem exemplos suficientes de fraude para treinar, mas tem muitos exemplos de boas transações. O módulo detecção de anomalias baseada em PCA resolve o problema analisando os recursos disponíveis para determinar o que constitui uma classe "normal" e aplicando métricas de distância para identificar casos que representam anomalias. Isso permite treinar um modelo usando dados desequilibrados existentes.

Mais informações sobre Análise de Componente Principal

A Análise de Componente Principal, que é abreviada com frequência para PCA, é uma técnica estabelecida no aprendizado de máquina. O PCA é frequentemente usado na análise de dados exploratória porque revela a estrutura interna dos dados e explica a variação nos dados.

O PCA trabalha analisando dados que contêm muitas variáveis. Ele procura correlações entre as variáveis e determina a combinação de valores que melhor detecta as diferenças nos resultados. Esses valores de recursos combinados são usados para criar um espaço de recurso mais compacto chamado de componentes principais.

Para detecção de anomalias, cada nova entrada é analisada e o algoritmo de detecção de anomalias calcula sua projeção nos eigenvectors, junto com um erro de reconstrução normalizado. O erro normalizado é usado como a pontuação da anomalia. Quanto maior o erro, mais anormal é a instância.

Para obter informações adicionais sobre como funciona a PCA e sobre a implementação para detecção de anomalias, consulte estes artigos:

Como configurar a detecção de anomalias do PCA

  1. Adicione o módulo detecção de anomalias baseada em PCA ao seu experimento no Studio (clássico). Você pode encontrar este módulo em Machine Learning, Inicializar Modelo, na categoria Detecção de Anomalias.

  2. No painel Propriedades do módulo Detecção de Anomalias Baseada em PCA, clique na opção Modo de treinamento e indique se você deseja treinar o modelo usando um conjunto específico de parâmetros ou usar uma varredura de parâmetro para encontrar os melhores parâmetros.

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

    • Intervalo de Parâmetros: selecione essa opção se você não tiver certeza dos melhores parâmetros e quiser usar uma varredura de parâmetro, usando o módulo Ajustar Hiperparmetros do Modelo. O treinador itera em uma variedade de configurações especificadas e determina a combinação de configurações que produz os resultados ideais.

  3. Número de componentes a usar no PCA, Intervalo para o número de componentes pca: especifique o número de recursos de saída ou componentes que você deseja saída.

    A decisão de quantos componentes incluir é uma parte importante do design do experimento usando PCA. As diretrizes gerais são que você não deve incluir o mesmo número de componentes do PCA que as variáveis existentes. Em vez disso, você deve começar com um número menor de componentes e au incrementá-los até que alguns critérios sejam atendidos.

    Se você não tiver certeza de qual pode ser o valor ideal, recomendamos treinar o modelo de detecção de anomalias usando a opção Intervalo de Parâmetros.

    Os melhores resultados são obtidos quando o número de componentes de saída é menor que o número de colunas de recurso disponíveis no conjunto de dados.

  4. Especifique a quantidade de superamostragem a ser executada durante o treinamento aleatório do PCA. Em problemas de detecção de anomalias, os dados desequilibrados dificultam a aplicação das técnicas padrão do PCA. Ao especificar alguma quantidade de superamostragem, você pode aumentar o número de instâncias de destino.

    Se você especificar 1, nenhuma superamostragem será executada. Se você especificar qualquer valor maior que 1, serão geradas amostras adicionais para usar no treinamento do modelo.

    Há duas opções, dependendo se você está usando uma varredura de parâmetro ou não:

    • Parâmetro de superamostragem para o PCA aleatório: digite um único número inteiro que representa a proporção de superamostragem da classe minoritária sobre a classe normal. (Disponível ao usar o método de treinamento de parâmetro único.)
    • Intervalo para o parâmetro oversampling usado em PCA aleatória: digite uma série de números a tentar ou use o Construtor de Intervalos para selecionar valores usando um controle deslizante. (Disponível somente ao usar o método de treinamento Intervalo de parâmetros.)

    Observação

    Não é possível exibir o conjunto de dados com excesso deamplados. Para obter detalhes adicionais sobre como a sobreampling é usada com PCA, consulte Notas técnicas.

  5. Habilitar a normalização média do recurso de entrada: selecione esta opção para normalizar todos os recursos de entrada para uma média de zero. A normalização ou o dimensionamento para zero é geralmente recomendado para o PCA, pois a meta do PCA é maximizar a variação entre variáveis.

    Essa opção é habilitada por padrão. Desmarque essa opção se os valores já foram normalizados usando um método ou escala diferente.

  6. Conexão um conjuntos de dados de treinamento marcado e um dos módulos de treinamento:

    Observação

    Se você passar um intervalo de parâmetros para Treinar Modelo de Detecção de Anomalias, ele usará apenas o primeiro valor na lista de intervalos de parâmetros.

    Se você passar um único conjunto de valores de parâmetro para o módulo Ajustar Hiperparérmetros de Modelo, quando ele espera um intervalo de configurações para cada parâmetro, ele ignora os valores e usa os valores padrão para o aluno.

    Se você selecionar a opção Intervalo de Parâmetros e inserir um único valor para qualquer parâmetro, esse único valor será usado durante a varredura, mesmo se outros parâmetros mudarem em um intervalo de valores.

  7. Execute o experimento ou selecione o módulo e clique em Executar selecionado.

Resultados

Quando o treinamento for concluído, você poderá salvar o modelo treinado ou conectá-lo ao módulo Modelo de Pontuação para prever pontuações de anomalias.

Para avaliar os resultados de modelos de detecção de anomalias, é necessário algumas etapas adicionais:

  1. Verifique se uma coluna de pontuação está disponível em ambos os conjuntos de dados

    Se você tentar avaliar um modelo de detecção de anomalias e receber o erro "Não há nenhuma coluna de pontuação no conjuntos de dados pontuado a ser comparado", isso significa que você está usando um conjuntos de dados de avaliação típico que contém uma coluna de rótulo, mas nenhuma pontuação de probabilidade. Você precisa escolher um conjuntos de dados que corresponde à saída do esquema para modelos de detecção de anomalias, que inclui uma coluna Rótulos Pontuados e Probabilidades Pontuadas.

  2. Verifique se as colunas de rótulo estão marcadas

    Às vezes, os metadados associados à coluna de rótulo são removidos no grafo do experimento. Se isso acontecer, quando você usar o módulo Avaliar Modelo para comparar os resultados de dois modelos de detecção de anomalias, poderá receber o erro " Não há nenhuma coluna de rótulo no conjuntos de dados pontuados" ou "Não há nenhuma coluna de rótulo no conjuntos de dados pontuado a ser comparado".

    Você pode evitar esse erro adicionando o módulo Editar Metadados antes do módulo Avaliar Modelo. Use o seletor de coluna para escolher a coluna de classe e, na lista suspenso Campos , selecione Rótulo.

  3. Normalizar pontuações de diferentes tipos de modelo

    Previsões do modelo de detecção de anomalias PCA sempre estão no intervalo [0,1]. Por outro lado, a saída do módulo SVM de classe única são pontuações nãocalibizadas que possivelmente não são unidas.

    Portanto, se você estiver comparando modelos com base em algoritmos diferentes, sempre deverá normalizar pontuações. Consulte o exemplo no Galeria de IA do Azure para ver um exemplo de normalização entre diferentes modelos de detecção de anomalias.

Exemplos

Para ver exemplos de como a PCA é usada na detecção de anomalias, consulte o Galeria de IA do Azure:

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

Observações técnicas

Esse algoritmo usa PCA para aproximar o subespaço que contém a classe normal. O subespaço é estendido por vetores próprios associado aos valores próprios superior da matriz de covariância de dados. Para cada nova entrada, o detector de anomalias primeiro calcula sua projeção nos vetores próprios, em seguida, calcula o erro de reconstrução normalizado. Esse erro é a pontuação da anomalia. Quanto maior o erro, mais anormal é a instância. Para obter detalhes sobre como o espaço normal é calculado, consulte Wikipédia: Análise de componente principal

Parâmetros do módulo

Nome Tipo Intervalo Opcional Descrição Padrão
Modo de treinamento CreateLearnerMode Lista:Parameter Único|Intervalo de Parâmetro 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.
Número de componentes para usar o PCA Inteiro modo:Parâmetro Único 2 Especifique o número de componentes para usar o PCA.
Parâmetro de sobreamostragem do PCA aleatório Inteiro modo:Parâmetro Único 2 Especifique o parâmetro de precisão para treinamento aleatório do PCA.
Habilite a normalização média do recurso de entrada Tipo de lógica Lista:True|False Obrigatório Falso Especifique se os dados de entrada são normalizados com média zero.
Intervalo de vários componentes do PCA ParameterRangeSettings [1;100] modo:Intervalo de Parâmetro 2; 4; 6; 8; 10 Especifique o intervalo de número de componentes para usar o PCA.
Intervalo para o parâmetro de sobreamostragem usado na PCA aleatório ParameterRangeSettings [1;100] modo:Intervalo de Parâmetro 2; 4; 6; 8; 10 Especifique o intervalo para o parâmetro de precisão usado no treinamento do PCA aleatório.

Saídas

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

Exceções

Exceção Descrição
Erro 0017 Ocorrerá uma exceção se uma ou mais das colunas especificadas tiver um tipo sem suporte por módulo atual.
Erro 0062 Ocorrerá uma exceção durante a tentativa de comparar dois modelos com tipos diferentes de aprendiz.
Erro 0047 Ocorrerá uma exceção se o número de colunas de recurso em alguns dos conjuntos de dados transmitidos para o módulo for muito pequeno.

Para ver uma lista de erros específicos dos módulos do Studio (clássico), consulte Machine Learning Códigos de erro.

Para ver uma lista de exceções de API, consulte Machine Learning códigos de erro da API REST.

Confira também

Máquina de vetor de suporte de uma classe