Search
Close this search box.
Isolation Forest para detecção de anomalias com IA
Isolation Forest

Posts Relacionados:

Conheça o Isolation Forest, um super algoritmo de machine learning ideal para detectar anomalias rapidamente nos mais diferentes e complexos cenários.

Receba nossa newsletter

Detecção de anomalias com Isolation Forest

Detecção de anomalias com Isolation Forest

A detecção de anomalias é uma habilidade extremamente poderosa. Ela possui aplicações em vários domínios. Entre eles, podemos destacar a detecção de transações bancárias fraudulentas, detecção de intrusão de rede, detecção de anomalias em exames médicos, aumento/queda repentina nas vendas, mudança no comportamento do cliente, etc.

Como esses cenários envolvem geralmente a análise de dados massivos, essa é uma das áreas onde os algoritmos superam a capacidade humana facilmente. Neste post, abordaremos um desses algorimos, o Isolation Forest.

Isolation Forest é uma técnica de machine learning não supervisionada. O algoritmo foi introduzido por Fei Tony Liu em 2008 para detecção de anomalias e se popularizou como um método rápido e confiável.

Entenda o conceito de anomalia

Qualquer ponto de dados que se desvie significativamente dos demais membros do conjunto é chamado de anomalia ou outlier. É muito difícil diferenciar um outiler de uma anomalia. Em consequência, não é incomum encontrar os dois serem usados como sinônimos. Porém, esses termos não se referem ao mesmo conceito.

Um ponto de dados real significativamente fora da média ou mediana de uma distribuição é um outlier. Ou seja, outliers podem ser entendidos como pontos de dados com baixa probabilidade, mas que pertencem ao conjunto de dados. Já uma anomalia é um ponto de dado falso ou errado. Portanto, a anomalia é um dado feito por um processo diferente do restante dos dados. 

Isolation Forest: a base do algoritmo

Para identificar anomalias, o Isolation Forest particiona aleatoriamente o espaço de dados. Partindo da ideia de que as anomalias são raras e diferentes, o algoritmo cria uma coleção de árvores de decisão. Esse procedimento lembra uma floresta aleatória, mas com uma abordagem diferente. As árvores usadas são chamadas de árvores de isolamento (iTree). Cada árvore é construída dividindo repetidamente os dados a partir de uma característica escolhida aleatoriamente (como tamanho ou renda) em um ponto randômico. As anomalias são mais fáceis de isolar porque diferem da maioria dos dados. Consequentemente, o número de divisões necessárias para isolar uma anomalia em uma árvore de isolamento tende a ser muito menor do que para um ponto de dados normal.

O passo a passo do algoritmo

Na prática, o Isolation Forest opera segundo os seguintes passos:

  1. Cria um conjunto de árvores de isolamento (iTrees) para um determinado conjunto de dados.
  2. A ramificação de cada iTree começa selecionando um recurso aleatório (do conjunto de todos os N recursos).
  3. Cada ramificação é feita a partir de um limite aleatório (qualquer valor no intervalo de valores mínimo e máximo do recurso selecionado). Se o valor de um ponto de dados for menor que o limite selecionado, ele vai para a ramificação esquerda ou para a direita. E assim um nó é dividido em ramificações.
  4. Este processo é aplicado recursivamente para cada iTree até que cada ponto de dados seja completamente isolado ou até que a profundidade máxima (se definida) seja atingida.
  5. As anomalias normalmente exigem menos divisões para isolar, resultando em caminhos mais curtos nas árvores de isolamento.
  6. O algoritmo mede o comprimento do caminho de isolamento para cada ponto de dados em várias árvores.
  7. Por fim, o algoritmo calcula uma pontuação de anomalia com base no comprimento médio do caminho na floresta. Pontos de dados com comprimentos médios de caminho mais curtos têm maior probabilidade de serem anomalias.

A base para usar Isolation Forest com Scikit-learn

Evidentemente, Isolation Forest é facilmente implementado com a excelente biblioteca Scikit-learn. A base para usá-lo é bem simples. Ele faz parte dos modelos de aprendizado em conjunto. Portanto, é importado do módulo ensemble:

				
					from sklearn.ensemble import IsolationForest
				
			

Para usá-lo, basta definir o modelo:

				
					isolation_forest = IsolationForest(n_estimators=100, contamination=0.1)
				
			

Neste trecho, o parâmetro n_estimators especifica o número de árvores de isolamento (iTrees) a serem criadas na floresta. Já o termo contamination é um parâmetro opcional que indica uma proporção de valores discrepantes esperados nos dados. Ele pode ser útil para definir um limite para pontuações de anomalias. Vários outros parâmetros podem ser especificados opcionalmente. Para saber mais detalhes, consulte a documentação oficial.

Após a definição do modelo, as etapas seguintes seguem os passos tradicionais de treinamento e validação.

Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.

Imagem com IA Generativa – Dia 199

IA generativa img 199

Arte com IA generativa: imagem do dia

Todos os dias, postamos um exemplo de imagem artística gerada com inteligência artificial.

Tutoriais

Postagens Mais Recentes

Outras Postagens Que Podem Interessar

Veja
Mais

Fique em contato

Se inscreva para receber nossa newsletter com novidades.

aprendiz artificial