2.6.4
Isolation Forest
Resumo
- O Isolation Forest isola pontos através de árvores de particionamento aleatório e usa caminhos curtos como evidência de anomalia.
- Faz suposições fracas sobre a distribuição e escala bem para configurações de alta dimensão.
- A
contaminatione as configurações das árvores controlam a sensibilidade da detecção e o volume prático de alertas.
Intuição #
Anomalias são mais fáceis de isolar do que pontos normais. O Isolation Forest quantifica isso calculando a média de quão rapidamente as amostras são separadas em muitas árvores aleatórias.
Explicação Detalhada #
1. Como funciona #
- Sub-amostrar aleatoriamente os dados.
- Construir árvores de isolamento (Isolation Trees) dividindo em características e limiares escolhidos aleatoriamente.
- Amostras com comprimento médio de caminho mais curto são mais fáceis de isolar, portanto são mais propensas a serem anomalias.
A pontuação de anomalia é normalizada usando o comprimento de caminho esperado de uma árvore de busca binária aleatória, \(c(n)\), e o comprimento médio de caminho observado.
2. Exemplo em Python #
| |
3. Hiperparâmetros #
n_estimators: Número de árvores. Mais árvores fornecem resultados mais estáveis.max_samples: Amostras usadas por árvore. Padrão émin(256, n_samples).contamination: Fração estimada de anomalias; usada para definir o limiar.max_features: Características usadas em cada divisão.
4. Prós e contras #
| Prós | Contras |
|---|---|
| Relativamente rápido mesmo em alta dimensão | Os resultados podem variar com a semente aleatória |
| Escalonamento não é necessário (mas recomendado) | Pequenas anomalias locais podem não ser detectadas |
| Treinamento e inferência simples | A contamination pode ser difícil de definir |
5. Resumo #
- O Isolation Forest é um detector de anomalias baseado em árvores que usa caminhos curtos de isolamento como sinal de anomalia.
- É fácil de usar no scikit-learn, ajustando principalmente o número de árvores e amostras.
- É adequado quando se precisa de filtragem rápida de candidatos para logs ou dados de sensores.