
Lista de ferramentas e conjuntos de dados para detecção de anomalias em dados de séries temporais.
Lista de ferramentas e conjuntos de dados para detecção de anomalias em dados de séries temporais.
Todas as listas estão em ordem alfabética. Nas listas, os projetos mantidos têm prioridade sobre os não mantidos. Um repositório é considerado "não mantido" se o último commit tiver mais de 1 ano, ou se explicitamente mencionado pelos autores.
🎓 Se você achou esta coleção útil e quiser citá-la, siga a política de citação.
| Nome | Linguagem | Descrição | Licença | Mantido |
|---|---|---|---|---|
| Cuebook's CueObserve | Python3 | Detecção de anomalias em data warehouses e bancos de dados SQL. | Apache-2.0 | ✔️ |
| Yahoo's EGADS | Java | GADS é uma biblioteca que contém várias técnicas de detecção de anomalias aplicáveis a muitos casos de uso em um único pacote, com a única dependência sendo Java. | GPL | ✔️ |
| AIStream's flow-forecast | Python | Biblioteca de deep learning PyTorch para previsão de séries temporais, classificação e detecção de anomalias (originalmente para previsão de enchentes). | GPL-3 | ✔️ |
| Hastic | Python + node.js | Ferramenta de detecção de anomalias para dados de séries temporais com UI baseada em Grafana. | GPL | ✔️ |
| Zillow's Luminaire | Python | Luminaire é um pacote Python que fornece soluções de detecção de anomalias e previsão orientadas por ML para dados de séries temporais. | Apache-2.0 | ✔️ |
| MIDAS | C++ | MIDAS, abreviação de Microcluster-Based Detector of Anomalies in Edge Streams, detecta anomalias de microclusters em um fluxo de arestas em tempo e memória constantes. | Apache-2.0 | ✔️ |
| Orion | Python | Orion é uma biblioteca de machine learning construída para detecção não supervisionada de anomalias em séries temporais, fornecendo uma série de pipelines de ML "verificados" (também conhecidos como pipelines Orion) que identificam padrões raros e os sinalizam para revisão por especialistas. |
Esta seção inclui alguns softwares de séries temporais para tarefas relacionadas à detecção de anomalias, como previsão, análise genérica de séries temporais e rotulagem.
NAB é um benchmark inovador para avaliar algoritmos de detecção de anomalias em aplicações de streaming em tempo real. É composto por mais de 50 arquivos de dados de séries temporais rotulados, reais e artificiais, além de um mecanismo de pontuação inovador projetado para aplicações em tempo real.
O conjunto de dados consiste em séries temporais reais e sintéticas com pontos de anomalia marcados. O conjunto de dados testa a precisão da detecção de vários tipos de anomalias, incluindo outliers e pontos de mudança.
SKAB (Skoltech Anomaly Benchmark) é projetado para avaliar algoritmos de detecção de anomalias. O benchmark atualmente inclui mais de 30 conjuntos de dados, além de módulos Python para avaliação de algoritmos. Cada conjunto de dados representa uma série temporal multivariada coletada dos sensores instalados na bancada de testes. Todas as instâncias são rotuladas para avaliar os resultados da resolução de problemas de detecção de outliers e detecção de pontos de mudança.
O conjunto de dados consiste em dados de séries temporais de KPIs (key performance index) de muitos cenários reais de empresas de Internet com rótulo de ground truth. Clique abaixo para uma descrição mais detalhada.
O conjunto de dados consiste em dados de séries temporais de KPI (key performance index) de muitos cenários reais de empresas de Internet com rótulo de ground truth. Os KPIs se enquadram em duas grandes categorias: KPIs de serviço e KPIs de máquina. KPIs de serviço são métricas de desempenho que refletem o tamanho e a qualidade de um serviço Web, como tempo de resposta da página, visualizações de página e número de erros de conexão. KPIs de máquina são indicadores de desempenho que refletem a saúde da máquina (servidor, roteador, switch), como utilização de CPU, utilização de memória, IO de disco, throughput da placa de rede, etc.
Descrições dos conjuntos de dados:
Para treinar o algoritmo de detecção de anomalias, os dados de treinamento de KPI fornecidos por nós são mostrados na tabela 1, incluindo quatro colunas: ID do KPI, timestamp, o valor do KPI naquele momento e se o momento é anormal (rótulo).
Tabela 1 caso de dados de KPI de treinamento
Se você quiser citar este repositório, use o seguinte DOI:
ou use este BibTex
@article{medico2020,
title={rob-med/awesome-TS-anomaly-detection},
DOI={10.5281/zenodo.3972944},
abstractNote={A collection of tools and datasets for anomaly detection on time-series data.},
publisher={Zenodo}, author={Roberto Medico}, year={2020}, month={Aug}}
| MIT |
| ✔️ |
| OutlierDetection.jl | Julia | Detecção de outliers rápida, escalável e flexível com Julia. | MIT | ✔️ |
| PyOD | Python | PyOD é um toolkit Python abrangente e escalável para detectar objetos discrepantes em dados multivariados. | BSD 2-Clause | ✔️ |
| ruptures | Python | Ruptures é uma biblioteca Python para detecção de pontos de mudança offline. Este pacote fornece métodos para análise e segmentação de sinais não estacionários. | BSD 2-Clause | ✔️ |
| EarthGecko Skyline | Python3 | Skyline é um sistema de detecção de anomalias em tempo real, construído para permitir o monitoramento passivo de centenas de milhares de métricas. | MIT | ✔️ |
| Expedia.com's Adaptive Alerting | Java | Detecção de anomalias em streaming com seleção e ajuste automatizados de modelos. | Apache-2.0 | ❌ |
| Arundo's ADTK | Python | Anomaly Detection Toolkit (ADTK) é um pacote Python para detecção de anomalias em séries temporais não supervisionada / baseada em regras. | MPL 2.0 | ❌ |
| Twitter's AnomalyDetection | R | AnomalyDetection é um pacote R de código aberto para detectar anomalias que é robusto, do ponto de vista estatístico, na presença de sazonalidade e de uma tendência subjacente. | GPL | ❌ |
| Lytics' Anomalyzer | Go | Anomalyzer implementa um conjunto de testes estatísticos que produzem a probabilidade de um determinado conjunto de entradas numéricas, normalmente uma série temporal, conter comportamento anômalo. | Apache-2.0 | ❌ |
| banpei | Python | Detecção de outliers (teoria de Hotelling) e detecção de pontos de mudança (transformação de espectro singular) para séries temporais. | MIT | ❌ |
| Ele.me's banshee | Go | Sistema de detecção de anomalias para métricas periódicas. | MIT | ❌ |
| CAD | Python | Detecção Contextual de Anomalias para detecção de anomalias em tempo real em dados de streaming (algoritmo vencedor da competição NAB de 2016). | AGPL | ❌ |
| Chaos Genius | Python | Mecanismo de análise orientado por ML para detecção de outliers/anomalias e análise de causa raiz. | MIT | ❌ |
| Mentat's datastream.io | Python | Um framework de código aberto para detecção de anomalias em tempo real usando Python, Elasticsearch e Kibana. | Apache-2.0 | ❌ |
| DeepADoTS | Python | Implementação e avaliação de 7 técnicas baseadas em deep learning para Detecção de Anomalias em dados de Séries Temporais. | MIT | ❌ |
| Donut | Python | Donut é um algoritmo não supervisionado de detecção de anomalias para KPIs sazonais, baseado em Variational Autoencoders. | - | ❌ |
| LoudML | Python | Loud ML é um mecanismo de inferência de séries temporais de código aberto construído sobre o TensorFlow. É útil para prever dados, detectar outliers e automatizar seu processo usando conhecimento futuro. | MIT | ❌ |
| Linkedin's luminol | Python | Luminol é uma biblioteca Python leve para análise de dados de séries temporais. As duas principais funcionalidades que suporta são detecção de anomalias e correlação. Pode ser usado para investigar possíveis causas de anomalias. | Apache-2.0 | ❌ |
| Numenta's Nupic | C++ | Numenta Platform for Intelligent Computing é uma implementação de Hierarchical Temporal Memory (HTM). | AGPL | ❌ |
| oddstream | R | oddstream (Outlier Detection in Data Streams) fornece suporte em tempo real para detecção precoce de séries anômalas dentro de uma grande coleção de dados de séries temporais em streaming. | GPL-3 | ❌ |
| PyOdds | Python | PyODDS é um sistema Python de ponta a ponta para detecção de outliers com suporte a banco de dados. PyODDS fornece algoritmos de detecção de outliers que suportam dados estáticos e de séries temporais. | MIT | ❌ |
| PySAD | Python | PySAD é um framework de detecção de anomalias em streaming com vários modelos online e um conjunto completo de ferramentas para experimentação. | BSD 3-Clause | ❌ |
| rrcf | Python | Implementação do algoritmo Robust Random Cut Forest para detecção de anomalias em fluxos. | MIT | ❌ |
| Netflix's Surus | Java | Robust Anomaly Detection (RAD) - Uma implementação do Robust PCA. | Apache-2.0 | ❌ |
| NASA's Telemanom | Python | Um framework para usar LSTMs para detectar anomalias em dados de séries temporais multivariadas. Inclui dados de anomalias de espaçonaves e experimentos das missões Mars Science Laboratory e SMAP. | personalizada | ❌ |
| Nome | Linguagem | Descrição | Licença | Mantido |
|---|
| darts | Python | darts é uma biblioteca Python para fácil manipulação e previsão de séries temporais. Contém uma variedade de modelos, desde clássicos como ARIMA até redes neurais. | Apache-2.0 | ✔️ |
| ETNA | Python | etna é uma biblioteca Python para previsão e análise de séries temporais, sempre tendo em mente a estrutura temporal dos dados. Inclui uma variedade de modelos preditivos com interface unificada, juntamente com métodos de EDA e validação. | Apache-2.0 | ✔️ |
| Amazon's GluonTS | Python | GluonTS é um toolkit Python para modelagem probabilística de séries temporais, construído em torno do MXNet. GluonTS fornece utilitários para carregar e iterar sobre conjuntos de dados de séries temporais, modelos state of the art prontos para treinamento e blocos de construção para definir seus próprios modelos. | Apache-2.0 | ✔️ |
| pmdarima | Python | Porte do auto.arima do R com uma interface amigável ao scikit-learn. | MIT | ✔️ |
| Facebook's Prophet | Python/R | Prophet é um procedimento para previsão de dados de séries temporais. É baseado em um modelo aditivo onde tendências não lineares são ajustadas com sazonalidade anual e semanal, além de feriados. | BSD | ✔️ |
| PyFlux | Python | A biblioteca possui um bom conjunto de modelos modernos de séries temporais, bem como uma gama flexível de opções de inferência (frequentista e bayesiana) que podem ser aplicadas a esses modelos. | BSD 3-Clause | ❌ |
| Nome | Linguagem | Descrição | Licença | Mantido |
|---|
| Facebook's Kats | Python | Kats tem como objetivo fornecer uma solução completa para análise de séries temporais, incluindo detecção, previsão, extração/embedding de features, análise multivariada, etc. | MIT | ✔️ |
| MatrixProfile | Python | Uma biblioteca Python 3 que torna as tarefas de mineração de dados de séries temporais, utilizando algoritmos de matrix profile, acessíveis a todos. | Apache-2.0 | ✔️ |
| Salesforce's Merlion | Python | Merlion: Um Framework de Machine Learning para Inteligência de Séries Temporais, suporta múltiplos modelos incluindo ARIMA | BSD 3-Clause | ✔️ |
| SaxPy | Python | Implementação geral do SAX, bem como HOTSAX para detecção de anomalias. | GPLv2.0 | ✔️ |
| sktime | Python | Um framework unificado para machine learning com séries temporais. Fornece algoritmos especializados de séries temporais e ferramentas compatíveis com scikit-learn para construir, ajustar e validar modelos de séries temporais para múltiplos problemas de aprendizado. | BSD 3-Clause | ✔️ |
| sktime-dl | Python | Um pacote de extensão para deep learning com Tensorflow/Keras para sktime. | BSD 3-Clause | ✔️ |
| Squey | C++ | Software de visualização que permite exploração aprofundada de séries temporais exibindo todos os outliers. | MIT | ✔️ |
| Tigramite | Python | Tigramite é um pacote Python de análise causal de séries temporais. Permite reconstruir eficientemente grafos causais a partir de conjuntos de dados de séries temporais de alta dimensão e modelar as dependências causais obtidas para análises de mediação causal e predição. | GPLv3.0 | ✔️ |
| tsflex | Python | tsflex é um toolkit de séries temporais para extração e processamento de features que é flexível e eficiente. Este pacote suporta extração de features em janelas deslizantes em dados de sequência multivariados e amostrados irregularmente. | MIT | ✔️ |
| tslearn | Python | tslearn é um pacote Python que fornece ferramentas de machine learning para a análise de séries temporais. Este pacote é construído sobre as bibliotecas scikit-learn, numpy e scipy. | BSD 2-Clause | ✔️ |
| seglearn | Python | Seglearn é um pacote Python para machine learning de séries temporais ou sequências. Fornece um pipeline integrado para segmentação, extração de features, processamento de features e estimador final. | BSD 3-Clause | ❌ |
| Nome | Linguagem | Descrição | Licença | Mantido |
|---|
| Baidu's Curve | Python | Curve é uma ferramenta de código aberto para ajudar a rotular anomalias em dados de séries temporais. | Apache-2.0 | ❌ |
| Microsoft's Taganomaly | R (aplicativo web dockerizado) | Ferramenta simples para etiquetar dados de séries temporais. Funciona para dados univariados e multivariados e fornece uma previsão de anomalia de referência usando o pacote AnomalyDetection do Twitter. | MIT | ❌ |
| KPI ID | Timestamp | Value | Label |
|---|
| 0 | 1503831000 | 10.8 | 0 |
| 0 | 1503831060 | 12.3 | 1 |
| ... | ... | ... | ... |
Para avaliar o algoritmo de detecção de anomalias, os dados de teste de KPI fornecidos por nós são mostrados na tabela 2, incluindo duas colunas: ID do KPI, timestamp e o valor correspondente ao KPI naquele momento.
Tabela 2 caso de dados de KPI de teste
| KPI ID | Timestamp | Value |
|---|---|---|
| 0 | 1503831000 | 10.8 |
| 0 | 1503831060 | 12.3 |
| ... | ... | ... |