top of page
Foto do escritorFran Mateus

Detecção de outliers com PyCaret



O objetivo deste experimento foi identificar outliers nos dados de acessos ao blog Viagem de Cinema, durante o período de 01/06/2022 até 30/04/2023, quando foram verificadas ocorrências de muitas dessas anomalias. Como base de comparação, o blog recebia 176 acessos diários, em média, mas chegou a ter um pico de 1.543 num único dia.


Para detectar as anomalias, foram utilizados os seguintes algoritmos:

  1. Histogram-Based Outlier Score (HBOS), que identifica outliers através do uso de histogramas;

  2. Isolation Forest, que identifica outliers através de árvores de isolamento;

  3. K-Nearest Neighbors Detector, que baseia-se no cálculo das distâncias entre os dados anômalos e seus vizinhos proximos;

  4. Local Outlier Factor (LOF), que compara a densidade dos dados em relação aos seus vizinhos locais.


Além da quantidade de acessos, os algoritmos receberam as variáveis 'dia da semana', 'mês' e 'ano' para realizarem os cálculos e gerarem os escores de anomalias; essas limitadas a 5% da base de dados.


Resultados:

Os quatro algoritmos identificaram 15 outliers numa base com 284 dias de acessos ao blog, com os seguintes resultados:

  • Concordância entre os algoritmos: HBOS, KNN e LOF classificaram os 6 maiores resultados em quantidade de acessos como outliers, inclusive atribuindo a mesma ordem de importância nos cálculos dos seus escores. O Isolation Forest, por sua vez, só concordou com 50% desses casos anômalos e não, necessariamente, na mesma ordem.

  • Discordância entre os algortimos: dos 9 outliers restantes, os quatro algoritmos, praticamente, divergiram em todos os seus resultados.


Conclusão:

Para o conjunto de dados usados neste experimento, o HBOS foi o que apresentou os resultados mais coerentes. No entanto, dependendo do problema de negócio e dos dados disponíveis, qualquer uma das quatro técnicas pode se destacar em relação às demais e oferecer melhores respostas.


 

Código dos modelos disponível no GitHub.


Comentarios


bottom of page