logo

TODS 异常检测

王哲峰 / 2023-03-05


目录

TODS 异常检测简介

TODS 是一个全栈的自动化机器学习系统,主要针对多变量时间序列数据的异常检测。 该系统可以处理三种常见的时间序列异常检测场景:点的异常检测(异常是时间点)、模式的异常检测(异常是子序列)、 系统的异常检测(异常是时间序列的集合)。TODS 提供了一系列相应的算法

TODS 特点

TODS 具有如下特点:

TODS 异常检测模块

TODS 提供了详尽的用于构建基于机器学习的异常检测系统的模块,它们包括:

img

这些模块所提供的功能包括常见的数据预处理、时间序列数据的平滑或变换、从时域或频域中抽取特征、多种多样的检测算法以及让人类专家来校准系统。 通过这些模块提供的功能包括:通用数据预处理、时间序列数据平滑/转换、从时域/频域中提取特征、各种检测算法,以及涉及人类专业知识来校准系统

TODS 异常检测场景

img

img

TODS 的这些模块功能可以让时间序列数据执行三种常见的异常值检测场景:

当数据中存在异常行为时,通常会出现模式异常值。模式异常值是指与其他子序列相比其行为异常的时间序列数据的子序列(连续点)。 检测模式异常值的常见做法,包括不和谐分析(例如,矩阵配置文件、HotSAX)和子序列聚类

Discords 分析利用滑动窗口将时间序列分割成多个子序列,并计算子序列之间的距离(例如,欧几里德距离)以找到时间序列数据中的不一致。 子序列聚类也将子序列分割应用于时间序列数据,并采用子序列作为每个时间点的特征,其中滑动窗口的大小为特征的数量。 然后,采用无监督机器学习方法,例如聚类(例如,KMeans、PCA)或逐点异常值检测算法来检测模式异常值

当许多系统之一处于异常状态时,系统异常值会不断发生,其中系统被定义为多元时间序列数据。 检测系统异常值的目标是从许多类似的系统中找出处于异常状态的系统。例如,从具有多条生产线的工厂检测异常生产线。 检测这种异常值的常用方法是执行逐点和模式异常值检测以获得每个时间点/子序列的异常值分数, 然后采用集成技术为每个系统生成整体异常值分数以进行比较和检测

TODS 使用

安装

$ pip install tods
$ pip install -e git+https://github.com/datamllab/tods.git@dev#egg=tods 

参考