
Framework Python de ponta a ponta para inteligência de séries temporais, oferecendo detecção de anomalias, previsão, detecção de pontos de mudança, AutoML, ensembles e pipelines de benchmark.
Merlion é uma biblioteca Python para inteligência de séries temporais. Ela fornece um framework de machine learning de ponta a ponta que inclui carregamento e transformação de dados, construção e treinamento de modelos, pós-processamento das saídas dos modelos e avaliação do desempenho dos modelos. Ela suporta várias tarefas de aprendizado de séries temporais, incluindo previsão (forecasting), detecção de anomalias e detecção de pontos de mudança para séries temporais univariadas e multivariadas. Esta biblioteca tem como objetivo fornecer a engenheiros e pesquisadores uma solução completa para desenvolver rapidamente modelos para suas necessidades específicas de séries temporais e compará-los em múltiplos conjuntos de dados de séries temporais.
Os principais recursos do Merlion são:
DefaultDetector e DefaultForecaster que são eficientes, alcançam consistentemente bom desempenho e fornecem um ponto de partida para novos usuários.A tabela abaixo fornece uma visão geral de como os principais recursos do Merlion se comparam a outras bibliotecas de detecção de anomalias e/ou previsão de séries temporais.
| Merlion | Prophet | Alibi Detect | Kats | darts | statsmodels | nixtla | GluonTS | RRCF | STUMPY | Greykite | pmdarima | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Previsão Univariada | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||
| Previsão Multivariada | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||
| Detecção de Anomalias Univariada | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |||
| Detecção de Anomalias Multivariada | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||
| Pré-processamento | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||
| Pós-processamento | ✅ | ✅ | ||||||||||
| AutoML | ✅ | ✅ | ✅ | |||||||||
| Ensembles | ✅ | ✅ | ✅ | ✅ | ||||||||
| Benchmarking | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||
| Visualização | ✅ | ✅ | ✅ | ✅ | ✅ |
Os seguintes recursos são novos no Merlion 2.0:
| Merlion | Prophet | Alibi Detect | Kats | darts | statsmodels | nixtla | GluonTS | RRCF | STUMPY | Greykite | pmdarima | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Regressores Exógenos | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ||||||
| Detecção de Pontos de Mudança | ✅ | ✅ | ✅ | ✅ | ✅ | |||||||
| Interface Visual Clicável | ✅ | |||||||||||
| Backend Distribuído | ✅ | ✅ |
O Merlion consiste em dois sub-repositórios: merlion implementa os recursos centrais de inteligência de séries temporais da biblioteca, e ts_datasets fornece data loaders padronizados para múltiplos conjuntos de dados de séries temporais. Esses loaders carregam séries temporais como objetos pandas.DataFrame com metadados associados.
Você pode instalar o merlion a partir do PyPI executando pip install salesforce-merlion. Você pode instalar a partir do código-fonte clonando este repositório e executando pip install Merlion/, ou pip install -e Merlion/ para instalar em modo editável. Você pode instalar dependências adicionais via pip install salesforce-merlion[all], ou executando pip install "Merlion/[all]" se estiver instalando a partir do código-fonte. Individualmente, as dependências opcionais incluem dashboard para um painel GUI, spark para um backend de computação distribuída com PySpark e deep-learning para todos os modelos de deep learning.
Para instalar o pacote de carregamento de dados ts_datasets, clone este repositório e execute pip install -e Merlion/ts_datasets/. Este pacote deve ser instalado em modo editável (ou seja, com a flag -e) se você não quiser especificar manualmente o diretório raiz de cada conjunto de dados ao inicializar seu data loader.
Observe as seguintes dependências externas:
Alguns de nossos modelos de previsão dependem de OpenMP. Se estiver usando conda, execute conda install -c conda-forge lightgbm antes de instalar nosso pacote. Isso garantirá que o OpenMP esteja configurado para funcionar com o pacote lightgbm (uma de nossas dependências) no seu ambiente conda. Se estiver usando Mac, instale o Homebrew e execute brew install libomp para que a biblioteca OpenMP esteja disponível para o modelo.
Alguns de nossos modelos de detecção de anomalias dependem do Java Development Kit (JDK). Para Ubuntu, execute sudo apt-get install openjdk-11-jdk. Para Mac OS, instale o Homebrew e execute brew tap adoptopenjdk/openjdk && brew install --cask adoptopenjdk11. Certifique-se também de que java possa ser encontrado no seu PATH e que a variável de ambiente JAVA_HOME esteja definida.