Luminaire是一个Python包,提供针对时间序列数据的机器学习解决方案。
项目描述
无需手动干预的异常检测库
目录
什么是Luminaire
Luminaire是一个Python包,提供针对时间序列数据的机器学习解决方案。Luminaire提供了多个异常检测和预测功能,这些功能结合了相关性、季节性模式以及数据随时间变化中的不可控变化。
快速入门
使用pip
从PyPI安装Luminaire
pip install luminaire
在Python中导入luminaire
模块
import luminaire
参见示例以开始。同时,请参阅Luminaire文档以获取方法和用法的详细描述。
时间序列离群值检测工作流程
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 链接)
博客
- Zillow Tech Hub: 在 Zillow 使用 Luminaire 进行自动和自我感知的异常检测
开发团队
Luminaire 由 Sayan Chakraborty、Smit Shah、Kiumars Soltani、Luyao Yang、Anna Swigart、Kyle Buckingham 以及 Zillow Group A.I. 团队的其他许多贡献者开发和维护。
项目详情
下载文件
下载适用于您平台文件的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源代码分发
构建分发
luminaire-0.4.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 253b91851ca6f1685c8974d94a260727b53981e2dab883bdfe99d4b43a10dae5 |
|
MD5 | a77a73f91cddbb8cbb410b8904359037 |
|
BLAKE2b-256 | e73a816aaf27f1ab83c53672148f8b61d298e7c4bfa731de2841b89603eda1cc |
luminaire-0.4.3-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f1caf580a060549a298e4828cd01a2e69928820ec7f0611619d4a64325a4e42a |
|
MD5 | 6f3d7e79760b030c2b7340f3c809c1bc |
|
BLAKE2b-256 | 86802bce1ea66a2687b78fca103671175b5ca04410fb2eb864c2f1c8d017f313 |