跳转到主要内容

Luminaire是一个Python包,提供针对时间序列数据的机器学习解决方案。

项目描述

Luminaire

无需手动干预的异常检测库

PyPI version PyPI - Python Version License build publish docs


目录

什么是Luminaire

Luminaire是一个Python包,提供针对时间序列数据的机器学习解决方案。Luminaire提供了多个异常检测和预测功能,这些功能结合了相关性、季节性模式以及数据随时间变化中的不可控变化。

快速入门

使用pipPyPI安装Luminaire

pip install luminaire

在Python中导入luminaire模块

import luminaire

参见示例以开始。同时,请参阅Luminaire文档以获取方法和用法的详细描述。

时间序列离群值检测工作流程

Luminaire Flow

Luminaire离群值检测工作流程可以分为3个主要组件

数据预处理和概要组件

该组件可用于在训练异常检测模型之前准备时间序列。此步骤应用了多种方法,使异常检测更加准确和可靠,包括缺失数据插补、从训练数据中识别和去除最近的数据异常值、必要的数学变换以及基于最近变化点的数据截断。它还生成了在训练过程中考虑的配置文件信息(历史变化点、趋势变化等)。

时间序列数据的配置文件信息可用于监控数据漂移和不规则的长周期波动。

建模组件

该组件根据用户指定的配置或优化配置(请参阅 Luminaire 超参数优化)进行时间序列模型训练。Luminaire 模型训练与不同的结构化时间序列模型以及基于滤波器的模型集成。有关更多信息,请参阅 Luminaire 异常检测

Luminaire 建模步骤可以在数据预处理和配置文件步骤之后调用,以在训练之前进行必要的数据准备。

配置优化组件

Luminaire 与配置优化的集成使异常检测过程变得简单,用户只需要提供非常少的配置即可监控任何类型的时间序列数据。此步骤可以与任何自动配置的异常检测用例的预处理和建模结合使用。请参阅 全自动异常检测 以获取详细说明。

高频时间序列的异常检测

Luminaire 还可以监控一段时间内的数据点集合,而不是跟踪单个数据点。这种方法非常适合关注持续波动而非单个波动的情况。请参阅 流数据异常检测 以获取详细信息。

示例

批量时间序列监控

import pandas as pd
from luminaire.optimization.hyperparameter_optimization import HyperparameterOptimization
from luminaire.exploration.data_exploration import DataExploration

data = pd.read_csv('Path to input time series data')
# Input data should have a time column set as the index column of the dataframe and a value column named as 'raw'

# Optimization
hopt_obj = HyperparameterOptimization(freq='D')
opt_config = hopt_obj.run(data=data)

# Profiling
de_obj = DataExploration(freq='D', **opt_config)
training_data, pre_prc = de_obj.profile(data)

# Identify Model
model_class_name = opt_config['LuminaireModel']
module = __import__('luminaire.model', fromlist=[''])
model_class = getattr(module, model_class_name)

# Training
model_object = model_class(hyper_params=opt_config, freq='D')
success, model_date, trained_model = model_object.train(data=training_data, **pre_prc)

# Scoring
trained_model.score(100, '2021-01-01')

流时间序列监控

import pandas as pd
from luminaire.model.window_density import WindowDensityHyperParams, WindowDensityModel
from luminaire.exploration.data_exploration import DataExploration

data = pd.read_csv('Path to input time series data')
# Input data should have a time column set as the index column of the dataframe and a value column named as 'raw'

# Configuration Specs and Profiling
config = WindowDensityHyperParams().params
de_obj = DataExploration(**config)
data, pre_prc = de_obj.stream_profile(df=data)
config.update(pre_prc)

# Training
wdm_obj = WindowDensityModel(hyper_params=config)
success, training_end, model = wdm_obj.train(data=data)

# Scoring
score, scored_window = model.score(scoring_data)    # scoring_data is data over a time-window instead of a datapoint

贡献

想帮助改进 Luminaire?请查看我们的 贡献文档

引用

如果 Luminaire 用于任何研究目的或科学出版物,请引用以下文章

Chakraborty, S., Shah, S., Soltani, K., Swigart, A., Yang, L., & Buckingham, K. (2020, December). Building an Automated and Self-Aware Anomaly Detection System. In 2020 IEEE International Conference on Big Data (Big Data) (pp. 1465-1475). IEEE. (arxiv 链接)

其他有用资源

  • Chakraborty, S., Shah, S., Soltani, K., & Swigart, A. (2019, December). Root Cause Detection Among Anomalous Time Series Using Temporal State Alignment. In 2019 18th IEEE International Conference On Machine Learning And Applications (ICMLA) (pp. 523-528). IEEE. (arxiv 链接)

博客

开发团队

Luminaire 由 Sayan ChakrabortySmit ShahKiumars SoltaniLuyao YangAnna SwigartKyle Buckingham 以及 Zillow Group A.I. 团队的其他许多贡献者开发和维护。

项目详情


下载文件

下载适用于您平台文件的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

luminaire-0.4.3.tar.gz (55.8 kB 查看哈希值)

上传 源代码

构建分发

luminaire-0.4.3-py3-none-any.whl (59.4 kB 查看哈希值)

上传 Python 3

由以下支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面