componente de Deteção de Anomalias do PCA-Based

Este artigo descreve como utilizar o componente de Deteção de Anomalias PCA-Based no estruturador do Azure Machine Learning para criar um modelo de deteção de anomalias com base na análise de componentes principais (PCA).

Este componente ajuda-o a criar um modelo em cenários em que é fácil obter dados de preparação de uma classe, como transações válidas, mas é difícil obter amostras suficientes das anomalias direcionadas.

Por exemplo, para detetar transações fraudulentas, muitas vezes não tem exemplos suficientes de fraude para preparar. Mas poderá ter muitos exemplos de boas transações. O componente PCA-Based Deteção de Anomalias resolve o problema ao analisar as funcionalidades disponíveis para determinar o que constitui uma classe "normal". Em seguida, o componente aplica métricas de distância para identificar casos que representam anomalias. Esta abordagem permite-lhe preparar um modelo com dados desequilibrados existentes.

Mais informações sobre a análise de componentes principais

O PCA é uma técnica estabelecida no machine learning. É frequentemente utilizado na análise de dados exploratória porque revela a estrutura interna dos dados e explica a variância nos 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 funcionalidade combinados são utilizados para criar um espaço de funcionalidades mais compacto chamado componentes principais.

Para deteção de anomalias, cada nova entrada é analisada. O algoritmo de deteção de anomalias calcula a projeção nos eigenvectores, juntamente com um erro de reconstrução normalizado. O erro normalizado é utilizado como a pontuação de anomalias. Quanto maior for o erro, mais anómalo será a instância.

Para obter mais informações sobre como funciona o PCA e sobre a implementação da deteção de anomalias, veja estes documentos:

Como configurar a Deteção de Anomalias PCA-Based

  1. Adicione o componente de Deteção de Anomalias Baseado em PCA ao pipeline no estruturador. Pode encontrar este componente na categoria Deteção de Anomalias .

  2. No painel direito do componente, selecione a opção Modo de preparação . Indique se pretende preparar o modelo com um conjunto específico de parâmetros ou utilize uma varrimento de parâmetros para encontrar os melhores parâmetros.

    Se souber como pretende configurar o modelo, selecione a opção Parâmetro Único e forneça um conjunto específico de valores como argumentos.

  3. Para Número de componentes a utilizar no PCA, especifique o número de funcionalidades de saída ou componentes pretendidos.

    A decisão de quantos componentes incluir é uma parte importante do design de experimentação que utiliza PCA. A orientação geral é que não deve incluir o mesmo número de componentes PCA que existem variáveis. Em vez disso, deve começar com um número menor de componentes e auvê-los até que seja cumprido algum critério.

    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.

  4. Especifique a quantidade de sobreamplamento a executar durante a preparação de PCA aleatória. Em problemas de deteção de anomalias, os dados desequilibrados dificultam a aplicação de técnicas de PCA padrão. Ao especificar alguma quantidade de sobreamostratação, pode aumentar o número de instâncias de destino.

    Se especificar 1, não é efetuada nenhuma sobreamostração. Se especificar um valor superior a 1, serão gerados exemplos adicionais para utilizar na preparação do modelo.

    Existem duas opções, consoante esteja ou não a utilizar uma varredura de parâmetros:

    • Parâmetro de sobreaplicação para PCA aleatória: escreva um único número inteiro que represente a proporção de sobreamostração da classe minoritária em relação à classe normal. (Esta opção está disponível quando estiver a utilizar o método de preparação parâmetro único .)

    Nota

    Não pode ver o conjunto de dados sobreaproveitado. Para obter mais informações sobre como a sobreaplicação é utilizada com a PCA, veja Notas técnicas.

  5. Selecione a opção Ativar normalização média da funcionalidade de entrada para normalizar todas as funcionalidades de entrada para uma média de zero. A normalização ou o dimensionamento para zero são geralmente recomendados para PCA, uma vez que o objetivo da PCA é maximizar a variância entre variáveis.

    Esta opção está selecionada por predefinição. Desselecione-o se os valores já tiverem sido normalizados através de um método ou dimensionamento diferente.

  6. Ligue um conjunto de dados de preparação etiquetado e um dos componentes de preparação.

    Se definir a opção Criar modo de formador como Parâmetro Único, utilize o componente Preparar Modelo de Deteção de Anomalias .

  7. Submeta o pipeline.

Resultados

Quando a preparação estiver concluída, pode guardar o modelo preparado. Em alternativa, pode ligá-lo ao componente Modelo de Classificação para prever pontuações de anomalias.

Para avaliar os resultados de um modelo de deteção de anomalias:

  1. Certifique-se de que está disponível uma coluna de classificação em ambos os conjuntos de dados.

    Se tentar avaliar um modelo de deteção de anomalias e obtiver o erro "Não existe nenhuma coluna de pontuação no conjunto de dados classificado para comparar", está a utilizar um conjunto de dados de avaliação típico que contém uma coluna de etiqueta, mas sem pontuações de probabilidade. Escolha um conjunto de dados que corresponda à saída do esquema para modelos de deteção de anomalias, que inclui as colunas Etiquetas Classificadas e Probabilidades Classificadas .

  2. Certifique-se de que as colunas de etiquetas estão marcadas.

    Por vezes, os metadados associados à coluna de etiquetas são removidos no gráfico de pipeline. Se isto acontecer, quando utilizar o componente 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 com classificação". Em alternativa, poderá obter o erro "Não existe nenhuma coluna de etiqueta no conjunto de dados de classificação para comparar".

    Pode evitar estes erros ao adicionar o componente Editar Metadados antes do componente Avaliar Modelo . Utilize o seletor de colunas para escolher a coluna de classe e, na lista Campos , selecione Etiqueta.

  3. Utilize o componente Executar Script de Python para ajustar as categorias de colunas de etiqueta como 1 (positivo, normal) e 0 (negativo, anormal).

    label_column_name = 'XXX'
    anomaly_label_category = YY
    dataframe1[label_column_name] = dataframe1[label_column_name].apply(lambda x: 0 if x == anomaly_label_category else 1)
    

Notas técnicas

Este algoritmo utiliza o PCA para se aproximar do subespaço que contém a classe normal. O subespaço é alargado por eigenvectores associados aos valores eigenários superiores da matriz de covariância de dados.

Para cada nova entrada, o detetor de anomalias calcula primeiro a projeção nos eigenvectores e, em seguida, calcula o erro de reconstrução normalizado. Este erro é a pontuação de anomalias. Quanto maior for o erro, mais anómalo será a instância. Para obter detalhes sobre como o espaço normal é calculado, veja Wikipédia: Análise de componentes principais.

Passos seguintes

Veja o conjunto de componentes disponíveis para o Azure Machine Learning.

Veja Exceções e códigos de erro para o estruturador para obter uma lista de erros específicos dos componentes do estruturador.