Detecção de Novidades e Valores Discrepantes com Scikit-Learn

Beginner

This tutorial is from open-source community. Access the source code

Introdução

A detecção de novidades e de valores discrepantes são técnicas utilizadas para identificar se uma nova observação pertence à mesma distribuição que as observações existentes ou se deve ser considerada diferente. Estas técnicas são frequentemente utilizadas para limpar conjuntos de dados reais, identificando observações anormais ou incomuns.

Existem duas distinções importantes neste contexto:

  1. Detecção de valores discrepantes: Os dados de treino contêm valores discrepantes, que são observações que estão distantes das outras. Os estimadores de detecção de valores discrepantes tentam ajustar as regiões onde os dados de treino estão mais concentrados, ignorando as observações desviantes.
  2. Detecção de novidades: Os dados de treino não estão contaminados por valores discrepantes, e o objetivo é detectar se uma nova observação é um valor discrepante. Neste contexto, um valor discrepante também é chamado de novidade.

O projeto scikit-learn fornece um conjunto de ferramentas de aprendizagem de máquina que podem ser utilizadas para detecção de novidades e de valores discrepantes. Estas ferramentas são implementadas utilizando algoritmos de aprendizagem não supervisionada, o que significa que aprendem padrões dos dados sem a necessidade de exemplos rotulados.

Dicas de Máquina Virtual

Após o arranque da máquina virtual, clique no canto superior esquerdo para mudar para a aba Notebook para aceder ao Jupyter Notebook para praticar.

Por vezes, pode ser necessário esperar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se tiver problemas durante a aprendizagem, não hesite em contactar o Labby. Forneça feedback após a sessão e resolveremos prontamente o problema para si.

Importar as bibliotecas necessárias

Primeiro, precisamos importar as bibliotecas necessárias. Neste exemplo, usaremos o módulo sklearn do scikit-learn.

from sklearn import neighbors

Carregar o conjunto de dados

Em seguida, precisamos carregar o conjunto de dados em que desejamos realizar a detecção de valores discrepantes. Pode usar qualquer conjunto de dados de sua escolha ou criar um conjunto de dados personalizado. Neste exemplo, usaremos um conjunto de dados de amostra chamado X_train.

X_train = [0.5, 1.5, 2.5, 3.5, 4.5, 10.5, 11.5, 12.5, 13.5, 14.5]

Criar um estimador de detecção de valores discrepantes

Agora, podemos criar um objeto estimador de detecção de valores discrepantes a partir da classe neighbors.LocalOutlierFactor. Esta classe implementa o algoritmo Local Outlier Factor, um método popular para detecção de valores discrepantes.

estimator = neighbors.LocalOutlierFactor()

Ajustar o modelo aos dados de treinamento

Em seguida, podemos ajustar o estimador de detecção de valores discrepantes aos nossos dados de treinamento usando o método fit.

estimator.fit(X_train)

Prever valores discrepantes

Depois de o modelo ser ajustado, podemos usar o método predict para prever se novas observações são valores discrepantes ou não. O método predict retorna 1 para pontos dentro do padrão e -1 para valores discrepantes.

X_test = [5.5, 8.5]
predictions = estimator.predict(X_test)
print(predictions)

Acessar pontuações de valores discrepantes

Além de prever valores discrepantes, também podemos acessar as pontuações de valores discrepantes para cada observação usando o atributo negative_outlier_factor_. Pontuações de valores discrepantes mais baixas indicam maior anormalidade.

outlier_scores = estimator.negative_outlier_factor_
print(outlier_scores)

Resumo

Neste laboratório, aprendemos como realizar a detecção de novidades e valores discrepantes utilizando a biblioteca scikit-learn. Criamos um estimador de detecção de valores discrepantes, ajustamos-o aos dados de treinamento, previmos valores discrepantes em novas observações e acessamos as pontuações de valores discrepantes. Essas técnicas podem ser usadas para identificar observações anormais ou incomuns em um conjunto de dados e são comumente utilizadas em tarefas de detecção de anomalias.