CN111931868A - 时间序列数据异常检测方法和装置 - Google Patents
时间序列数据异常检测方法和装置 Download PDFInfo
- Publication number
- CN111931868A CN111931868A CN202011012234.XA CN202011012234A CN111931868A CN 111931868 A CN111931868 A CN 111931868A CN 202011012234 A CN202011012234 A CN 202011012234A CN 111931868 A CN111931868 A CN 111931868A
- Authority
- CN
- China
- Prior art keywords
- feature
- data
- time
- detection result
- time sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
- G06F18/2135—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on approximation criteria, e.g. principal component analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
- G06F18/254—Fusion techniques of classification results, e.g. of results related to same input data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
- G06F18/259—Fusion by voting
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Testing And Monitoring For Control Systems (AREA)
Abstract
本发明提供一种时间序列数据异常检测方法和装置,所述方法包括:获取多个时间序列数据,并对多个时间序列数据进行预处理;通过Tsfresh对预处理后的多个时间序列数据进行特征提取,并获取所提取的时间序列特征的贡献度信息;根据贡献度信息对时间序列特征进行PCA降维;通过IForest对降维后的时间序列特征进行标注,以构成样本集,其中,样本集包括训练集和测试集;通过训练集训练得到多种分类模型;通过测试集测试每种分类模型的异常检测准确率;获取待检测时间序列数据,并将待检测时间序列数据分别输入每种分类模型,以得到相应的异常检测结果;根据每种分类模型的异常检测准确率和异常检测结果对多种分类模型进行投票融合,以确定最终的异常检测结果。
Description
技术领域
本发明涉及数据检测技术领域,具体涉及一种时间序列数据异常检测方法、一种时间序列数据异常检测装置、一种计算机设备、一种非临时性计算机可读存储介质和一种计算机程序产品。
背景技术
时间序列数据异常点是指序列中模式存在不一致的点,如突然的上升或下降、趋势改变、层级变换、超出历史最大值/最小值等。时间序列数据的异常检测旨在快速准确的找到这些异常点。目前时间序列数据异常检测主要可以分为有监督和无监督的异常检测方式。
有监督的方式将异常检测直接转化为二分类问题,正常数据为一个类,异常数据为一个类。这样可以直接利用现成的分类方法。但是需要人工标记异常数据,在许多实际应用中往往不太现实。
无监督的方式相对比较实用,主要分为三类:基于规则的方式,如3σ准则;基于聚类的方式,将数据聚为多个类,如果某个数据和类中心都比较远,则该数据为异常,或是将数据量少于某个阈值的类中所有数据认为是异常;基于重建的方式,这类的方法主要基于auto-encoder(AE,自编码器)或variational auto-encoder(VAE,变分自编码器),先训练一个模型,得到数据的隐空间,对于测试数据,若该数据的重建误差较大,说明该数据不能和其他数据的分布吻合,即为异常数据。
然而,基于规则或算法本身的缺陷和不完善,上述的时间序列数据异常检测方式的检测效率和准确率还都有待进一步提高。
发明内容
本发明为解决上述技术问题,提供了一种时间序列数据异常检测方法和装置,通过准确高效的时间序列特征选择、无标签时间序列数据的自动标签化,结合模型投票融合策略,能够大大提高时间序列数据异常检测的效率和准确率。
本发明采用的技术方案如下:
一种时间序列数据异常检测方法,包括以下步骤:获取多个时间序列数据,并对所述多个时间序列数据进行预处理;通过Tsfresh对预处理后的多个时间序列数据进行特征提取,并获取所提取的时间序列特征的贡献度信息;根据所述贡献度信息对所述时间序列特征进行PCA(Principal Components Analysis,主成分分析)降维;通过IForest(IsolationForest,孤立森林)对降维后的时间序列特征进行标注,以构成样本集,其中,所述样本集包括训练集和测试集;通过所述训练集训练得到多种分类模型;通过所述测试集测试每种分类模型的异常检测准确率;获取待检测时间序列数据,并将所述待检测时间序列数据分别输入每种分类模型,以得到相应的异常检测结果;根据每种分类模型的异常检测准确率和异常检测结果对所述多种分类模型进行投票融合,以确定最终的异常检测结果。
对所述多个时间序列数据进行预处理,具体包括:判断每个所述时间序列数据是否存在缺失值;如果任一所述时间序列数据存在缺失值,则补齐该时间序列数据。
获取所提取的时间序列特征的贡献度信息,具体包括:通过所述Tsfresh获取所提取的时间序列特征的贡献度排名。
根据所述贡献度信息对所述时间序列特征进行PCA降维,具体包括:建立时间序列特征的相关系数矩阵;计算所述相关系数矩阵的特征值和特征向量;根据所述贡献度排名选择预设数量的特征向量;根据所述预设数量的特征向量进行特征映射以实现特征降维。
通过IForest对降维后的时间序列特征进行标注,具体包括:通过IForest确定多个降维后的时间序列特征中的被孤立特征和未被孤立特征;在确认所述被孤立特征为异常特征后,为该被孤立特征打上异常标签;在确认所述未被孤立特征为正常特征后,为该未被孤立特征打上正常标签。
根据每种分类模型的异常检测准确率和异常检测结果对所述多种分类模型进行投票融合,以确定最终的异常检测结果,具体包括:比较所述多种分类模型得到的异常检测结果是否相同;如果所述多种分类模型得到的异常检测结果各不相同,则以异常检测准确率最高的分类模型得到的异常检测结果作为所述最终的异常检测结果;如果所述多种分类模型得到的异常检测结果均相同,则以任一分类模型得到的异常检测结果作为所述最终的异常检测结果;如果所述多种分类模型得到的异常检测结果部分相同、部分不同,则判断所述多种分类模型之间异常检测准确率的差异度;如果所述多种分类模型之间异常检测准确率在预设差异度之内,则以数量最多的异常检测结果作为所述最终的异常检测结果;如果所述多种分类模型之间异常检测准确率在预设差异度之外,则将得到同一种异常检测结果的至少一个分类模型分为一组,并比较每组的平均异常检测准确率,以及以平均异常检测准确率最高的组中任一分类模型得到的异常检测结果作为所述最终的异常检测结果。
一种时间序列数据异常检测装置,包括:数据获取模块,所述数据获取模块用于获取多个时间序列数据,并对所述多个时间序列数据进行预处理;特征提取模块,所述特征提取模块用于通过Tsfresh对预处理后的多个时间序列数据进行特征提取,并获取所提取的时间序列特征的贡献度信息;特征降维模块,所述特征降维模块用于根据所述贡献度信息对所述时间序列特征进行PCA降维;标注模块,所述标注模块用于通过IForest对降维后的时间序列特征进行标注,以构成样本集,其中,所述样本集包括训练集和测试集;训练模块,所述训练模块通过所述训练集训练得到多种分类模型;测试模块,所述测试模块用于通过所述测试集测试每种分类模型的异常检测准确率;初始检测模块,所述初始检测模块用于获取待检测时间序列数据,并将所述待检测时间序列数据分别输入每种分类模型,以得到相应的异常检测结果;融合检测模块,所述融合检测模块用于根据每种分类模型的异常检测准确率和异常检测结果对所述多种分类模型进行投票融合,以确定最终的异常检测结果。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现上述时间序列数据异常检测方法。
一种非临时性计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述时间序列数据异常检测方法。
一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,执行上述时间序列数据异常检测方法。
本发明的有益效果:
本发明首先通过Tsfresh对预处理后的多个时间序列数据进行特征提取,并获取所提取的时间序列特征的贡献度信息,再根据贡献度信息对时间序列特征进行PCA降维,并通过IForest对降维后的时间序列特征进行标注,以构成训练集和测试集,然后通过训练集训练得到多种分类模型,通过测试集测试每种分类模型的异常检测准确率,最后根据每种分类模型的异常检测准确率和异常检测结果对多种分类模型进行投票融合,以确定最终的异常检测结果,由此,通过准确高效的时间序列特征选择、无标签时间序列数据的自动标签化,结合模型投票融合策略,能够大大提高时间序列数据异常检测的效率和准确率。
附图说明
图1为本发明实施例的时间序列数据异常检测方法的流程图;
图2为本发明一个实施例的IForest的孤立实例示意图;
图3为本发明一个实施例的投票融合流程示意图;
图4为本发明一个具体实施例的时间序列数据的曲线图;
图5为本发明实施例的时间序列数据异常检测装置的方框示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例的时间序列数据异常检测方法包括以下步骤:
S1,获取多个时间序列数据,并对多个时间序列数据进行预处理。
本发明实施例的时间序列数据可以为任一领域的时序数据,以工业领域的时序数据为例,可以为汽车装配中的螺栓拧紧过程曲线等。本发明实施例在该步骤中所获取的多个时间序列数据可均为无标签数据,即不知道正常或异常情况的数据。
应该理解的是,在计算和存储能力允许的条件下,本发明实施例在该步骤中所获取的时间序列数据的数量越大,对于后续模型的训练效果越好。
连续性对于合格的时间序列数据来说尤为重要,因此,本发明在获取到时间序列数据后对其进行的预处理主要包括缺失值处理。具体地,可判断每个时间序列数据是否存在缺失值,如果任一时间序列数据存在缺失值,则补齐该时间序列数据。补齐数据的方式可以为采用Spline插值、指数平滑法等。
S2,通过Tsfresh对预处理后的多个时间序列数据进行特征提取,并获取所提取的时间序列特征的贡献度信息。
Tsfresh是一个Python的时序数据特征挖掘的模块,能自动地计算出大量的时间序列特征,包括时间序列的基本特征,如峰数、平均值或最大值等,以及更复杂的特征,如时间反转对称统计等。
同时,Tsfresh可获取所提取的时间序列特征的贡献度排名,具体地,Tsfresh可通过extract_relevant_features函数获取每个时间序列特征的贡献度,并得到特征贡献度排名。
S3,根据贡献度信息对时间序列特征进行PCA降维。
具体地,可建立时间序列特征的相关系数矩阵,并计算相关系数矩阵的特征值和特征向量,然后根据贡献度排名选择预设数量的特征向量,并根据预设数量的特征向量进行特征映射以实现特征降维。
对于提取的时间序列特征,首先可依据常规的PCA降维步骤,将多个时间序列数据的时间序列特征按列组成矩阵,然后计算其相关系数矩阵,并计算相关系数矩阵的特征值和特征向量。接下来,对于特征向量的选择,可依据上述Tsfresh获取的特征贡献度排名,选取排名靠前的预设数量的特征对应的特征向量,以该预设数量的特征向量进行特征映射,将时间序列特征降低到预设维度。也就是说,本发明实施例可直接利用上述Tsfresh获取的特征贡献度排名实现主成分选取,取代了常规PCA降维中的主成分计算过程。由此,使得特征构建和特征降维紧密结合,能够降低计算量,提高时间序列特征选择的效率和准确度。
S4,通过IForest对降维后的时间序列特征进行标注,以构成样本集,其中,样本集包括训练集和测试集。
在IForest中,异常被定义为“容易被孤立的离群点(more likely to beseparated)”,可以将其理解为分布稀疏且离密度高的群体较远的点。在特征空间里,分布稀疏的区域表示事件发生在该区域的概率很低,因而可以认为落在这些区域里的数据是异常的。孤立森林是一种适用于连续数据的无监督异常检测方法,即不需要有标记的样本来训练,但特征需要是连续的。对于如何查找哪些点容易被孤立,IForest使用了一套非常高效的策略,在孤立森林中,递归地随机分割数据集,直到所有的样本点都是孤立的。在这种随机分割的策略下,异常点通常具有较短的路径。
直观上来讲,那些密度很高的簇是需要被切很多次才能被孤立,但是那些密度很低的点很容易就可以被孤立。如图2所示,正常点x i 需要更多次的分割才能被孤立,而异常点x o 需要较少的分割次数就能被孤立。图中直线表分割,分割方式采用的是随机选择一个特征以及拆分的值(这个值位于该特征的最小值和最大值之间)。
在本发明的一个实施例中,首先可通过IForest确定多个降维后的时间序列特征中的被孤立特征和未被孤立特征,即初步确定异常特征和正常特征。然后,将异常特征和正常特征分别画出时序图,分别与预存的标准数据库中的异常特征时序图和正常特征时序图进行比较,以确认上述被孤立特征,即初步确定的异常特征是否真的为异常特征,以及上述未被孤立特征,即初步确定的正常特征是否真的为正常特征。在确认被孤立特征为异常特征后,可为该被孤立特征打上异常标签,在确认未被孤立特征为正常特征后,可为该未被孤立特征打上正常标签。
优选地,可根据需求选取一定数量的被孤立特征进行异常确认和标注,并选取一定数量的未被孤立特征进行正常确认和标注,这样不必确认和标注海量数据中的每个特征,能够降低数据处理量。
大量的时间序列数据在选择了特征并标注了相应的标签后,可构成样本集,样本集中含正常标签的为正样本,含异常标签的为负样本。样本集又可分为训练集和测试集,其中,训练集和测试集中均含有一定数量的正样本和负样本。
本发明实施例通过IForest对时间序列数据的特征进行标注,能够方便、准确地实现无标签时间序列数据的标签化,并且相对于人工标注来说,能够节省人工成本。
S5,通过训练集训练得到多种分类模型。
通过训练集对相应的分类网络进行训练,可得到相应的分类模型,具体地,以训练集中的时间序列特征作为输入,并以对应的标签作为输出,训练分类网络,得到分类模型。
在本发明的一个实施例中,分类模型为三种,分别为XGBoost模型、LightGBM模型和CatBoost模型。
其中,XGBoost是一个优化的分布式梯度增强库,旨在实现高效,灵活和便携。XGBoost在Gradient Boosting框架下实现机器学习算法,提供了并行树提升,可以快速准确地解决许多数据科学问题。更重要的是,XGBoost在系统优化和机器学习原理方面都得到了深入的考虑。该库的目标是推动机器计算限制的极端,以提供可扩展,可移植和准确的库。XGBoost成功背后最重要的因素是它在所有场景中的可扩展性。该优化的系统在单台机器上运行速度比现有流行解决方案快十倍以上,并且在分布式或内存限制设置中可扩展至数十亿个示例。XGBoost的可扩展性归功于几个重要的系统和算法优化。这些优化包括:一种新颖的用于处理稀疏数据的树学习算法;理论上合理的weighted quantile sketch过程使得能够在近似树学习中处理实例权重;引入一个新颖的稀疏感知(sparsity-aware)算法用于并行树学习,并行和分布式计算使学习更快,从而实现更快的模型探索;提出了一种有效地缓存感知块结构用于核外树学习。更重要的是,XGBoost利用了核外计算并且能够使数据科学家在一个主机上处理数亿的样本数据。最终,将这些技术进行结合来做一个端到端的系统以最少的集群系统来扩展到更大的数据集上。
LightGBM能够解决GBDT(Gradient Boost Decision Tree,梯度提升树)在海量数据遇到的问题,让GBDT可以更好更快地用于工业实践。LightGBM主要有以下特点:基于Histogram的决策树算法;带深度限制的Leaf-wise的叶子生长策略;直方图做差加速;直接支持类别特征(Categorical Feature);Cache命中率优化;基于直方图的稀疏特征优化;多线程优化。XGBoost使用的是pre-sorted算法,能够更精确的找到数据分隔点。LightGBM使用的是histogram算法,占用的内存更低,数据分隔的复杂度更低。其思想是将连续的浮点特征离散成多个离散值,并构造宽度为离散值数量的Histogram。然后遍历训练数据,统计每个离散值在直方图中的累计统计量。在进行特征选择时,只需要根据直方图的离散值,遍历寻找最优的分割点。XGBoost采用的是按层生长level(depth)-wise生长策略,能够同时分裂同一层的叶子,从而进行多线程优化,不容易过拟合;但不加区分的对待同一层的叶子,带来了很多没必要的开销。因为实际上很多叶子的分裂增益较低,没必要进行搜索和分裂。LightGBM采用leaf-wise生长策略,每次从当前所有叶子中找到分裂增益最大(一般也是数据量最大)的一个叶子,然后分裂,如此循环。因此同Level-wise相比,在分裂次数相同的情况下,Leaf-wise可以降低更多的误差,得到更好的精度。Leaf-wise的缺点是可能会长出比较深的决策树,产生过拟合。因此LightGBM在Leaf-wise之上增加了一个最大深度的限制,在保证高效率的同时防止过拟合。
CatBoost模型的优点为:它自动采用特殊的方式处理类别型特征(categoricalfeatures),首先对categorical features做一些统计,计算某个类别特征(category)出现的频率,之后加上超参数,生成新的数值型特征(numerical features);CatBoost还使用了组合类别特征,可以利用到特征之间的联系,这极大的丰富了特征维度;CatBoost的基模型采用的是对称树,同时计算leaf-value方式和传统的boosting算法也不一样,传统的boosting算法计算的是平均数,而CatBoost在这方面做了优化采用了其他的算法,这些改进都能防止模型过拟合。
S6,通过测试集测试每种分类模型的异常检测准确率。
通过将测试集中的时间序列特征输入某分类模型,并将得到的输出结果与实际的标签进行比较,判断该分类模型的异常检测结果是否准确,由此,可计算出每种分类模型的异常检测准确率。
S7,获取待检测时间序列数据,并将待检测时间序列数据分别输入每种分类模型,以得到相应的异常检测结果。
待检测时间序列数据与上述时间序列数据属于同类数据,例如均为汽车装配中的螺栓拧紧过程曲线。提取待检测时间序列数据的特征并将其输入分类模型,分类模型可输出异常或正常的检测结果。
S8,根据每种分类模型的异常检测准确率和异常检测结果对多种分类模型进行投票融合,以确定最终的异常检测结果。
具体地,可比较多种分类模型得到的异常检测结果是否相同。如果多种分类模型得到的异常检测结果各不相同,则以异常检测准确率最高的分类模型得到的异常检测结果作为最终的异常检测结果;如果多种分类模型得到的异常检测结果均相同,则以任一分类模型得到的异常检测结果作为最终的异常检测结果;如果多种分类模型得到的异常检测结果部分相同、部分不同,则判断多种分类模型之间异常检测准确率的差异度。如果多种分类模型之间异常检测准确率在预设差异度之内,则以数量最多的异常检测结果作为最终的异常检测结果;如果多种分类模型之间异常检测准确率在预设差异度之外,则将得到同一种异常检测结果的至少一个分类模型分为一组,并比较每组的平均异常检测准确率,以及以平均异常检测准确率最高的组中任一分类模型得到的异常检测结果作为最终的异常检测结果。
以上述三个分类模型XGBoost模型、LightGBM模型和CatBoost模型(下称A、B和C)为例,最终的异常检测结果由投票器中的投票算法确定,如图3所示,在将A、B和C的异常检测结果输入投票器后,可判断A、B和C的异常检测结果是否相同。
如果A、B和C的异常检测结果各不相同,则根据三种分类模型各自的异常检测准确率排序,输出异常检测准确率最高的分类模型的异常检测结果。
如果A、B和C的异常检测结果均相同,则输出任一分类模型的异常检测结果。
如果有两个分类模型的异常检测结果相同且与另一个分类模型的异常检测结果不同,例如B和C的异常检测结果相同、A的异常检测结果不同,假设A、B、C的异常检测准确率分别为P1、P2、P3,则存在以下两种情况。
(1)如果|P1-((P2+P3)/2)|<ξ,说明三个分类模型的异常检测准确率差异较小,故采取少数服从多数的原则,选取输出结果多的一类,即以B和C的异常检测结果为准,输出B或C的异常检测结果。
(2)如果|P1-((P2+P3)/2)|≥ξ,说明A与其他两个分类模型的异常检测准确率差异较大,可进一步对P1和(P2+P3)/2的大小进行讨论。若P1>(P2+P3)/2,则以A的异常检测结果为准,输出A的异常检测结果;若P1≤(P2+P3)/2,则以B和C的异常检测结果为准,输出B或C的异常检测结果。
上述的ξ为表示各模型间异常检测准确率的差异度的设定值,可根据对差异度大小的要求而设定。
根据本发明实施例的时间序列数据异常检测方法,首先通过Tsfresh对预处理后的多个时间序列数据进行特征提取,并获取所提取的时间序列特征的贡献度信息,再根据贡献度信息对时间序列特征进行PCA降维,并通过IForest对降维后的时间序列特征进行标注,以构成训练集和测试集,然后通过训练集训练得到多种分类模型,通过测试集测试每种分类模型的异常检测准确率,最后根据每种分类模型的异常检测准确率和异常检测结果对多种分类模型进行投票融合,以确定最终的异常检测结果,由此,通过准确高效的时间序列特征选择、无标签时间序列数据的自动标签化,结合模型投票融合策略,能够大大提高时间序列数据异常检测的效率和准确率。
随着汽车工业的发展,拧紧工艺被作为总装工厂的核心技术一直在不断提升。作为成品车制造的最后一道工序,如何将各零部件以最恰当、最经济的方式结合在一起就显得尤为重要,这不仅仅关系着制造的成本,也决定着驾乘人员的生命财产安全。
拧紧作业的检测是不可再现的,在紧固件拧紧完毕、动力工具作业完毕后,螺纹副之间的摩擦由动摩擦变为静摩擦,并且在断开动力工具输出之后还存在一定的力矩衰减,工件之间产生细微的形变。总装厂内常见的基本的拧紧控制方式包括:扭矩控制法、扭矩控制—角度监测法、扭矩+角度控制法、斜率法等。每一种方都须结合现场硬件等级情况实施,最终目的都是期望得到合适的预紧力(也称张紧力、夹紧力等),保证零部件之间能够存在可靠的连接。但因预紧力往往不易测得,并且也很少有具备直接测量预紧力的生产型设备,所以需通过运用各种拧紧控制方法,来达到最终形成合适的预紧力这一目的。
动态扭矩是指在紧固件紧固过程中,由紧固动力工具设定或由其传感器测得的紧固过程扭矩峰值,动态扭矩不能在紧固件被紧固完之后测量。静态扭矩是指在紧固件紧固完成之后,在一定时间内由扭矩检定工具在规定的转动幅度下继续在紧固方向上转动测得的扭矩值。
动态扭矩用于生产,静态扭矩用于检验。研发给出的扭矩值需提前确认好属于哪一类,然后进行另一套标准的建立。由于技术等原因市场上对拧紧过程的检测大都为静态检测,这样的检测手段需要大量的操作,耗时又费力,效果因人而异,成为了市场急需解决的问题。
本发明实施例的时间序列数据异常检测方法,待检测时间序列数据可为拧紧工艺的过程数据,即属于一种动态检测方式,能够大大提高装配工艺的检测效率,推动汽车等行业的发展。
下面以汽车装配中的螺栓拧紧过程数据为例,详细说明本发明实施例的时间序列数据异常检测方法。
首先可获取表格形式的螺栓拧紧过程数据,数据包含51个xlsx文件,文件中的字段介绍如表1所示。
表1
由于螺栓拧紧过程主要与扭矩有关,因此可将每个字段中除扭矩和能够表示是否为同一过程的结果ID之外的量删除,并将51个xlsx文件中保留扭矩和结果ID的字段合并,按照结果ID分组,然后判断合并后的数据是否存在缺失值,如果存在,则补齐数据,最终得到一个包含近154万行数据的文件。
一组数据的时序图如图4所示,图中存在多种特征点,如波峰值、波谷值、最大值、最小值、均值、中位数等,这些特征经过数据平滑等一般的特征提取方式不能将原始时间序列的特征很好的提取出来,而Tsfresh则可将时间序列当中的所有时域和频域特征都一一提取出来。在本发明的一个实施例中,通过Tsfresh提取的特征主要包括绝对能量值、一阶差分绝对和、均值、中位数等。具体地,Tsfresh通过对2518个时间序列数据进行特征提取,每个时间序列数据对应提取200个特征,得到2518行、763列的特征数据表,共含2518个763维特征数据。
Tsfresh进行特征提取之后会有对时间序列特征的贡献度描述,接下来可依据该特征贡献度描述进行PCA降维,每个时间序列数据的特征由763维降维到200维,即得到2518行、200列的特征数据,共含2518个200维特征数据。
经IForest被孤立的特征数据中,抽取100个特征数据,画出时序图,与标准的异常时序图进行比对,确认其为异常特征后打上异常标签;经IForest未被孤立的特征数据中,抽取400个特征数据,画出时序图,与标准的正常时序图进行比对,确认其为正常特征后打上正常标签。由此,构成了含有400个正样本和100个负样本的样本集。
将上述样本集分为含有320个正样本、80个负样本的训练集和含有80个正样本、20个负样本的测试集。
接下来,通过上述训练集分别训练XGBoost模型、LightGBM模型和CatBoost模型,并通过上述测试集分别测试XGBoost模型、LightGBM模型和CatBoost模型的分类准确率,也即异常检测准确率,分别为95.12%、91.77%和90.08%。
在模型应用中,以待检测的螺栓拧紧过程数据分别输入训练好的XGBoost模型、LightGBM模型和CatBoost模型。ξ设为2。
如果XGBoost模型的检测结果为正常,LightGBM模型的检测结果为正常,CatBoost模型的检测结果为检测失败无法确定,则由于XGBoost模型的准确率最高,可得该待检测的螺栓拧紧过程数据正常。
如果XGBoost模型、LightGBM模型和CatBoost模型的检测结果均为正常,则可得该待检测的螺栓拧紧过程数据正常。
如果XGBoost模型的检测结果为正常,LightGBM模型和CatBoost模型的检测结果均为异常,则由于|95.12%-(91.77%+90.08%)/2|>2,又由于95.12%>(91.77%+90.08%)/2,即XGBoost模型与另两个模型的准确度差异较大,且其准确度大于另两个模型的准确度均值,可得该待检测的螺栓拧紧过程数据正常。
对应上述实施例的时间序列数据异常检测方法,本发明还提出一种时间序列数据异常检测装置。
如图5所示,本发明实施例的时间序列数据异常检测装置包括:数据获取模块10、特征提取模块20、特征降维模块30、标注模块40、训练模块50、测试模块60、初始检测模块70和融合检测模块80。其中,数据获取模块10用于获取多个时间序列数据,并对多个时间序列数据进行预处理;特征提取模块20用于通过Tsfresh对预处理后的多个时间序列数据进行特征提取,并获取所提取的时间序列特征的贡献度信息;特征降维模块30用于根据贡献度信息对时间序列特征进行PCA降维;标注模块40用于通过IForest对降维后的时间序列特征进行标注,以构成样本集,其中,样本集包括训练集和测试集;训练模块50通过训练集训练得到多种分类模型;测试模块60用于通过测试集测试每种分类模型的异常检测准确率;初始检测模块70用于获取待检测时间序列数据,并将待检测时间序列数据分别输入每种分类模型,以得到相应的异常检测结果;融合检测模块80用于根据每种分类模型的异常检测准确率和异常检测结果对多种分类模型进行投票融合,以确定最终的异常检测结果。
本发明实施例的时间序列数据可以为任一领域的时序数据,以工业领域的时序数据为例,可以为汽车装配中的螺栓拧紧过程曲线等。本发明实施例的数据获取模块10所获取的多个时间序列数据可均为无标签数据,即不知道正常或异常情况的数据。
应该理解的是,在计算和存储能力允许的条件下,本发明实施例的数据获取模块10所获取的时间序列数据的数量越大,对于后续模型的训练效果越好。
连续性对于合格的时间序列数据来说尤为重要,因此,本发明的数据获取模块10在获取到时间序列数据后对其进行的预处理主要包括缺失值处理。具体地,数据获取模块10可判断每个时间序列数据是否存在缺失值,如果任一时间序列数据存在缺失值,则补齐该时间序列数据。补齐数据的方式可以为采用Spline插值、指数平滑法等。
Tsfresh是一个Python的时序数据特征挖掘的模块,能自动地计算出大量的时间序列特征,包括时间序列的基本特征,如峰数、平均值或最大值等,以及更复杂的特征,如时间反转对称统计等。
同时,Tsfresh可获取所提取的时间序列特征的贡献度排名,具体地,Tsfresh可通过extract_relevant_features函数获取每个时间序列特征的贡献度,并得到特征贡献度排名。
特征降维模块30具体可建立时间序列特征的相关系数矩阵,并计算相关系数矩阵的特征值和特征向量,然后根据贡献度排名选择预设数量的特征向量,并根据预设数量的特征向量进行特征映射以实现特征降维。
对于提取的时间序列特征,特征降维模块30首先可依据常规的PCA降维步骤,将多个时间序列数据的时间序列特征按列组成矩阵,然后计算其相关系数矩阵,并计算相关系数矩阵的特征值和特征向量。接下来,对于特征向量的选择,特征降维模块30可依据上述Tsfresh获取的特征贡献度排名,选取排名靠前的预设数量的特征对应的特征向量,以该预设数量的特征向量进行特征映射,将时间序列特征降低到预设维度。也就是说,本发明实施例可直接利用上述Tsfresh获取的特征贡献度排名实现主成分选取,取代了常规PCA降维中的主成分计算过程。由此,使得特征构建和特征降维紧密结合,能够降低计算量,提高时间序列特征选择的效率和准确度。
在IForest中,异常被定义为“容易被孤立的离群点(more likely to beseparated)”,可以将其理解为分布稀疏且离密度高的群体较远的点。在特征空间里,分布稀疏的区域表示事件发生在该区域的概率很低,因而可以认为落在这些区域里的数据是异常的。孤立森林是一种适用于连续数据的无监督异常检测方法,即不需要有标记的样本来训练,但特征需要是连续的。对于如何查找哪些点容易被孤立,IForest使用了一套非常高效的策略,在孤立森林中,递归地随机分割数据集,直到所有的样本点都是孤立的。在这种随机分割的策略下,异常点通常具有较短的路径。
直观上来讲,那些密度很高的簇是需要被切很多次才能被孤立,但是那些密度很低的点很容易就可以被孤立。如图2所示,正常点x i 需要更多次的分割才能被孤立,而异常点x o 需要较少的分割次数就能被孤立。图中直线表分割,分割方式采用的是随机选择一个特征以及拆分的值(这个值位于该特征的最小值和最大值之间)。
在本发明的一个实施例中,标注模块40首先可通过IForest确定多个降维后的时间序列特征中的被孤立特征和未被孤立特征,即初步确定异常特征和正常特征。然后,将异常特征和正常特征分别画出时序图,分别与预存的标准数据库中的异常特征时序图和正常特征时序图进行比较,以确认上述被孤立特征,即初步确定的异常特征是否真的为异常特征,以及上述未被孤立特征,即初步确定的正常特征是否真的为正常特征。在确认被孤立特征为异常特征后,可为该被孤立特征打上异常标签,在确认未被孤立特征为正常特征后,可为该未被孤立特征打上正常标签。
优选地,标注模块40可根据需求选取一定数量的被孤立特征进行异常确认和标注,并选取一定数量的未被孤立特征进行正常确认和标注,这样不必确认和标注海量数据中的每个特征,能够降低数据处理量。
大量的时间序列数据在选择了特征并标注了相应的标签后,可构成样本集,样本集中含正常标签的为正样本,含异常标签的为负样本。样本集又可分为训练集和测试集,其中,训练集和测试集中均含有一定数量的正样本和负样本。
本发明实施例通过IForest对时间序列数据的特征进行标注,能够方便、准确地实现无标签时间序列数据的标签化,并且相对于人工标注来说,能够节省人工成本。
训练模块50通过训练集对相应的分类网络进行训练,可得到相应的分类模型,具体地,以训练集中的时间序列特征作为输入,并以对应的标签作为输出,训练分类网络,得到分类模型。
在本发明的一个实施例中,分类模型为三种,分别为XGBoost模型、LightGBM模型和CatBoost模型。
其中,XGBoost是一个优化的分布式梯度增强库,旨在实现高效,灵活和便携。XGBoost在Gradient Boosting框架下实现机器学习算法,提供了并行树提升,可以快速准确地解决许多数据科学问题。更重要的是,XGBoost在系统优化和机器学习原理方面都得到了深入的考虑。该库的目标是推动机器计算限制的极端,以提供可扩展,可移植和准确的库。XGBoost成功背后最重要的因素是它在所有场景中的可扩展性。该优化的系统在单台机器上运行速度比现有流行解决方案快十倍以上,并且在分布式或内存限制设置中可扩展至数十亿个示例。XGBoost的可扩展性归功于几个重要的系统和算法优化。这些优化包括:一种新颖的用于处理稀疏数据的树学习算法;理论上合理的weighted quantile sketch过程使得能够在近似树学习中处理实例权重;引入一个新颖的稀疏感知(sparsity-aware)算法用于并行树学习,并行和分布式计算使学习更快,从而实现更快的模型探索;提出了一种有效地缓存感知块结构用于核外树学习。更重要的是,XGBoost利用了核外计算并且能够使数据科学家在一个主机上处理数亿的样本数据。最终,将这些技术进行结合来做一个端到端的系统以最少的集群系统来扩展到更大的数据集上。
LightGBM能够解决GBDT在海量数据遇到的问题,让GBDT可以更好更快地用于工业实践。LightGBM主要有以下特点:基于Histogram的决策树算法;带深度限制的Leaf-wise的叶子生长策略;直方图做差加速;直接支持类别特征(Categorical Feature);Cache命中率优化;基于直方图的稀疏特征优化;多线程优化。XGBoost使用的是pre-sorted算法,能够更精确的找到数据分隔点。LightGBM使用的是histogram算法,占用的内存更低,数据分隔的复杂度更低。其思想是将连续的浮点特征离散成多个离散值,并构造宽度为离散值数量的Histogram。然后遍历训练数据,统计每个离散值在直方图中的累计统计量。在进行特征选择时,只需要根据直方图的离散值,遍历寻找最优的分割点。XGBoost采用的是按层生长level(depth)-wise生长策略,能够同时分裂同一层的叶子,从而进行多线程优化,不容易过拟合;但不加区分的对待同一层的叶子,带来了很多没必要的开销。因为实际上很多叶子的分裂增益较低,没必要进行搜索和分裂。LightGBM采用leaf-wise生长策略,每次从当前所有叶子中找到分裂增益最大(一般也是数据量最大)的一个叶子,然后分裂,如此循环。因此同Level-wise相比,在分裂次数相同的情况下,Leaf-wise可以降低更多的误差,得到更好的精度。Leaf-wise的缺点是可能会长出比较深的决策树,产生过拟合。因此LightGBM在Leaf-wise之上增加了一个最大深度的限制,在保证高效率的同时防止过拟合。
CatBoost模型的优点为:它自动采用特殊的方式处理类别型特征(categoricalfeatures),首先对categorical features做一些统计,计算某个类别特征(category)出现的频率,之后加上超参数,生成新的数值型特征(numerical features);CatBoost还使用了组合类别特征,可以利用到特征之间的联系,这极大的丰富了特征维度;CatBoost的基模型采用的是对称树,同时计算leaf-value方式和传统的boosting算法也不一样,传统的boosting算法计算的是平均数,而CatBoost在这方面做了优化采用了其他的算法,这些改进都能防止模型过拟合。
测试模块60通过将测试集中的时间序列特征输入某分类模型,并将得到的输出结果与实际的标签进行比较,判断该分类模型的异常检测结果是否准确,由此,可计算出每种分类模型的异常检测准确率。
待检测时间序列数据与上述时间序列数据属于同类数据,例如均为汽车装配中的螺栓拧紧过程曲线。初始检测模块70提取待检测时间序列数据的特征并将其输入分类模型,分类模型可输出异常或正常的检测结果。
融合检测模块80具体可比较多种分类模型得到的异常检测结果是否相同。如果多种分类模型得到的异常检测结果各不相同,则以异常检测准确率最高的分类模型得到的异常检测结果作为最终的异常检测结果;如果多种分类模型得到的异常检测结果均相同,则以任一分类模型得到的异常检测结果作为最终的异常检测结果;如果多种分类模型得到的异常检测结果部分相同、部分不同,则判断多种分类模型之间异常检测准确率的差异度。如果多种分类模型之间异常检测准确率在预设差异度之内,则以数量最多的异常检测结果作为最终的异常检测结果;如果多种分类模型之间异常检测准确率在预设差异度之外,则将得到同一种异常检测结果的至少一个分类模型分为一组,并比较每组的平均异常检测准确率,以及以平均异常检测准确率最高的组中任一分类模型得到的异常检测结果作为最终的异常检测结果。
以上述三个分类模型XGBoost模型、LightGBM模型和CatBoost模型(下称A、B和C)为例,最终的异常检测结果由投票器中的投票算法确定,如图3所示,在将A、B和C的异常检测结果输入投票器后,可判断A、B和C的异常检测结果是否相同。
如果A、B和C的异常检测结果各不相同,则根据三种分类模型各自的异常检测准确率排序,输出异常检测准确率最高的分类模型的异常检测结果。
如果A、B和C的异常检测结果均相同,则输出任一分类模型的异常检测结果。
如果有两个分类模型的异常检测结果相同且与另一个分类模型的异常检测结果不同,例如B和C的异常检测结果相同、A的异常检测结果不同,假设A、B、C的异常检测准确率分别为P1、P2、P3,则存在以下两种情况。
(1)如果|P1-((P2+P3)/2)|<ξ,说明三个分类模型的异常检测准确率差异较小,故采取少数服从多数的原则,选取输出结果多的一类,即以B和C的异常检测结果为准,输出B或C的异常检测结果。
(2)如果|P1-((P2+P3)/2)|≥ξ,说明A与其他两个分类模型的异常检测准确率差异较大,可进一步对P1和(P2+P3)/2的大小进行讨论。若P1>(P2+P3)/2,则以A的异常检测结果为准,输出A的异常检测结果;若P1≤(P2+P3)/2,则以B和C的异常检测结果为准,输出B或C的异常检测结果。
上述的ξ为表示各模型间异常检测准确率的差异度的设定值,可根据对差异度大小的要求而设定。
根据本发明实施例的时间序列数据异常检测装置,首先通过Tsfresh对预处理后的多个时间序列数据进行特征提取,并获取所提取的时间序列特征的贡献度信息,再根据贡献度信息对时间序列特征进行PCA降维,并通过IForest对降维后的时间序列特征进行标注,以构成训练集和测试集,然后通过训练集训练得到多种分类模型,通过测试集测试每种分类模型的异常检测准确率,最后根据每种分类模型的异常检测准确率和异常检测结果对多种分类模型进行投票融合,以确定最终的异常检测结果,由此,通过准确高效的时间序列特征选择、无标签时间序列数据的自动标签化,结合模型投票融合策略,能够大大提高时间序列数据异常检测的效率和准确率。
对应上述实施例,本发明还提出一种计算机设备。
本发明实施例的计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行该计算机程序时,可实现根据本发明上述实施例所述的时间序列数据异常检测方法。
根据本发明实施例的计算机设备,处理器执行存储在存储器上的计算机程序时,首先通过Tsfresh对预处理后的多个时间序列数据进行特征提取,并获取所提取的时间序列特征的贡献度信息,再根据贡献度信息对时间序列特征进行PCA降维,并通过IForest对降维后的时间序列特征进行标注,以构成训练集和测试集,然后通过训练集训练得到多种分类模型,通过测试集测试每种分类模型的异常检测准确率,最后根据每种分类模型的异常检测准确率和异常检测结果对多种分类模型进行投票融合,以确定最终的异常检测结果,由此,通过准确高效的时间序列特征选择、无标签时间序列数据的自动标签化,结合模型投票融合策略,能够大大提高时间序列数据异常检测的效率和准确率。
对应上述实施例,本发明还提出一种非临时性计算机可读存储介质。
本发明实施例的非临时性计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可实现根据本发明上述实施例所述的时间序列数据异常检测方法。
根据本发明实施例的非临时性计算机可读存储介质,处理器执行存储在其上的计算机程序时,首先通过Tsfresh对预处理后的多个时间序列数据进行特征提取,并获取所提取的时间序列特征的贡献度信息,再根据贡献度信息对时间序列特征进行PCA降维,并通过IForest对降维后的时间序列特征进行标注,以构成训练集和测试集,然后通过训练集训练得到多种分类模型,通过测试集测试每种分类模型的异常检测准确率,最后根据每种分类模型的异常检测准确率和异常检测结果对多种分类模型进行投票融合,以确定最终的异常检测结果,由此,通过准确高效的时间序列特征选择、无标签时间序列数据的自动标签化,结合模型投票融合策略,能够大大提高时间序列数据异常检测的效率和准确率。
对应上述实施例,本发明还提出一种计算机程序产品。
当本发明实施例的计算机程序产品中的指令由处理器执行时,可执行根据本发明上述实施例所述的时间序列数据异常检测方法。
根据本发明实施例的计算机程序产品,处理器执行其中的指令时,首先通过Tsfresh对预处理后的多个时间序列数据进行特征提取,并获取所提取的时间序列特征的贡献度信息,再根据贡献度信息对时间序列特征进行PCA降维,并通过IForest对降维后的时间序列特征进行标注,以构成训练集和测试集,然后通过训练集训练得到多种分类模型,通过测试集测试每种分类模型的异常检测准确率,最后根据每种分类模型的异常检测准确率和异常检测结果对多种分类模型进行投票融合,以确定最终的异常检测结果,由此,通过准确高效的时间序列特征选择、无标签时间序列数据的自动标签化,结合模型投票融合策略,能够大大提高时间序列数据异常检测的效率和准确率。
在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一和第二特征直接接触,或第一和第二特征通过中间媒介间接接触。而且,第一特征在第二特征“之上”、“上方”和“上面”可是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度小于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种时间序列数据异常检测方法,其特征在于,包括以下步骤:
获取多个时间序列数据,并对所述多个时间序列数据进行预处理;
通过Tsfresh对预处理后的多个时间序列数据进行特征提取,并获取所提取的时间序列特征的贡献度信息;
根据所述贡献度信息对所述时间序列特征进行PCA降维;
通过IForest对降维后的时间序列特征进行标注,以构成样本集,其中,所述样本集包括训练集和测试集;
通过所述训练集训练得到多种分类模型;
通过所述测试集测试每种分类模型的异常检测准确率;
获取待检测时间序列数据,并将所述待检测时间序列数据分别输入每种分类模型,以得到相应的异常检测结果;
根据每种分类模型的异常检测准确率和异常检测结果对所述多种分类模型进行投票融合,以确定最终的异常检测结果。
2.根据权利要求1所述的时间序列数据异常检测方法,其特征在于,对所述多个时间序列数据进行预处理,具体包括:
判断每个所述时间序列数据是否存在缺失值;
如果任一所述时间序列数据存在缺失值,则补齐该时间序列数据。
3.根据权利要求2所述的时间序列数据异常检测方法,其特征在于,获取所提取的时间序列特征的贡献度信息,具体包括:
通过所述Tsfresh获取所提取的时间序列特征的贡献度排名。
4.根据权利要求3所述的时间序列数据异常检测方法,其特征在于,根据所述贡献度信息对所述时间序列特征进行PCA降维,具体包括:
建立时间序列特征的相关系数矩阵;
计算所述相关系数矩阵的特征值和特征向量;
根据所述贡献度排名选择预设数量的特征向量;
根据所述预设数量的特征向量进行特征映射以实现特征降维。
5.根据权利要求4所述的时间序列数据异常检测方法,其特征在于,通过IForest对降维后的时间序列特征进行标注,具体包括:
通过IForest确定多个降维后的时间序列特征中的被孤立特征和未被孤立特征;
在确认所述被孤立特征为异常特征后,为该被孤立特征打上异常标签;
在确认所述未被孤立特征为正常特征后,为该未被孤立特征打上正常标签。
6.根据权利要求5所述的时间序列数据异常检测方法,其特征在于,根据每种分类模型的异常检测准确率和异常检测结果对所述多种分类模型进行投票融合,以确定最终的异常检测结果,具体包括:
比较所述多种分类模型得到的异常检测结果是否相同;
如果所述多种分类模型得到的异常检测结果各不相同,则以异常检测准确率最高的分类模型得到的异常检测结果作为所述最终的异常检测结果;
如果所述多种分类模型得到的异常检测结果均相同,则以任一分类模型得到的异常检测结果作为所述最终的异常检测结果;
如果所述多种分类模型得到的异常检测结果部分相同、部分不同,则判断所述多种分类模型之间异常检测准确率的差异度;
如果所述多种分类模型之间异常检测准确率在预设差异度之内,则以数量最多的异常检测结果作为所述最终的异常检测结果;
如果所述多种分类模型之间异常检测准确率在预设差异度之外,则将得到同一种异常检测结果的至少一个分类模型分为一组,并比较每组的平均异常检测准确率,以及以平均异常检测准确率最高的组中任一分类模型得到的异常检测结果作为所述最终的异常检测结果。
7.一种时间序列数据异常检测装置,其特征在于,包括:
数据获取模块,所述数据获取模块用于获取多个时间序列数据,并对所述多个时间序列数据进行预处理;
特征提取模块,所述特征提取模块用于通过Tsfresh对预处理后的多个时间序列数据进行特征提取,并获取所提取的时间序列特征的贡献度信息;
特征降维模块,所述特征降维模块用于根据所述贡献度信息对所述时间序列特征进行PCA降维;
标注模块,所述标注模块用于通过IForest对降维后的时间序列特征进行标注,以构成样本集,其中,所述样本集包括训练集和测试集;
训练模块,所述训练模块通过所述训练集训练得到多种分类模型;
测试模块,所述测试模块用于通过所述测试集测试每种分类模型的异常检测准确率;
初始检测模块,所述初始检测模块用于获取待检测时间序列数据,并将所述待检测时间序列数据分别输入每种分类模型,以得到相应的异常检测结果;
融合检测模块,所述融合检测模块用于根据每种分类模型的异常检测准确率和异常检测结果对所述多种分类模型进行投票融合,以确定最终的异常检测结果。
8.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时,实现根据权利要求1-6中任一项所述的时间序列数据异常检测方法。
9.一种非临时性计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现根据权利要求1-6中任一项所述的时间序列数据异常检测方法。
10.一种计算机程序产品,其特征在于,当所述计算机程序产品中的指令由处理器执行时,执行根据权利要求1-6中任一项所述的时间序列数据异常检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011012234.XA CN111931868B (zh) | 2020-09-24 | 2020-09-24 | 时间序列数据异常检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011012234.XA CN111931868B (zh) | 2020-09-24 | 2020-09-24 | 时间序列数据异常检测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111931868A true CN111931868A (zh) | 2020-11-13 |
CN111931868B CN111931868B (zh) | 2021-01-05 |
Family
ID=73335129
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011012234.XA Active CN111931868B (zh) | 2020-09-24 | 2020-09-24 | 时间序列数据异常检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111931868B (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112560994A (zh) * | 2020-12-26 | 2021-03-26 | 东软睿驰汽车技术(沈阳)有限公司 | 一种基于时序的车辆工况分类方法及装置 |
CN112633427A (zh) * | 2021-03-15 | 2021-04-09 | 四川大学 | 一种基于离群点检测的超高次谐波发射信号检测方法 |
CN112668318A (zh) * | 2021-03-15 | 2021-04-16 | 常州微亿智造科技有限公司 | 基于时间序列的作品作者识别方法 |
CN112836645A (zh) * | 2021-02-04 | 2021-05-25 | 浙江工业大学 | 面向大规模运动心率序列的代跑检测方法 |
CN112905671A (zh) * | 2021-03-24 | 2021-06-04 | 北京必示科技有限公司 | 时间序列异常处理方法、装置、电子设备及存储介质 |
CN112925785A (zh) * | 2021-03-29 | 2021-06-08 | 中国建设银行股份有限公司 | 数据清洗方法和装置 |
CN112971797A (zh) * | 2021-02-07 | 2021-06-18 | 北京海思瑞格科技有限公司 | 连续生理信号质量评估方法 |
CN113204569A (zh) * | 2021-03-30 | 2021-08-03 | 联想(北京)有限公司 | 一种信息处理方法及装置 |
CN113218537A (zh) * | 2021-05-25 | 2021-08-06 | 中国南方电网有限责任公司超高压输电公司广州局 | 温度异常检测模型的训练方法、装置、设备和存储介质 |
CN113268372A (zh) * | 2021-07-21 | 2021-08-17 | 中国人民解放军国防科技大学 | 一种一维时间序列异常检测方法、装置及计算机设备 |
CN113328908A (zh) * | 2021-05-10 | 2021-08-31 | 广东电网有限责任公司广州供电局 | 异常数据的检测方法、装置、计算机设备和存储介质 |
CN113570453A (zh) * | 2021-09-24 | 2021-10-29 | 中国光大银行股份有限公司 | 一种异常行为识别方法及装置 |
CN113626502A (zh) * | 2021-08-13 | 2021-11-09 | 南方电网深圳数字电网研究院有限公司 | 基于集成学习的电网数据异常检测方法及装置 |
CN114511399A (zh) * | 2022-02-15 | 2022-05-17 | 电子科技大学 | 用于互联网金融风控的异常数据筛选方法 |
CN114722061A (zh) * | 2022-04-08 | 2022-07-08 | 中国电信股份有限公司 | 数据处理方法及装置、设备、计算机可读存储介质 |
CN114817850A (zh) * | 2021-01-27 | 2022-07-29 | 华晨宝马汽车有限公司 | 用于螺栓拧紧数据的异常检测的方法和系统 |
CN115438035A (zh) * | 2022-10-27 | 2022-12-06 | 江西师范大学 | 一种基于kpca和混合相似度的数据异常处理方法 |
CN115982557A (zh) * | 2023-02-24 | 2023-04-18 | 深圳市特安电子有限公司 | 一种气体浓度检测用数据处理系统 |
CN116860977A (zh) * | 2023-08-21 | 2023-10-10 | 之江实验室 | 一种面向矛盾纠纷调解的异常检测系统及方法 |
WO2024036727A1 (zh) * | 2022-08-17 | 2024-02-22 | 深圳前海微众银行股份有限公司 | 数据异常检测方法、装置、设备、介质及程序产品 |
CN117647587A (zh) * | 2024-01-30 | 2024-03-05 | 浙江大学海南研究院 | 一种声发射信号分类方法、计算机设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102473301A (zh) * | 2010-05-27 | 2012-05-23 | 松下电器产业株式会社 | 动作解析装置及动作解析方法 |
CN106411597A (zh) * | 2016-10-14 | 2017-02-15 | 广东工业大学 | 一种网络流量异常检测方法及系统 |
CN109934354A (zh) * | 2019-03-12 | 2019-06-25 | 北京信息科技大学 | 基于主动学习的异常数据检测方法 |
CN109991500A (zh) * | 2019-04-29 | 2019-07-09 | 中国水电工程顾问集团有限公司 | 一种风电故障预警预测的方法 |
AU2019101183A4 (en) * | 2019-10-02 | 2020-01-16 | Han, Yining MISS | Feature Extraction and Fusion for Industrial Data |
-
2020
- 2020-09-24 CN CN202011012234.XA patent/CN111931868B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102473301A (zh) * | 2010-05-27 | 2012-05-23 | 松下电器产业株式会社 | 动作解析装置及动作解析方法 |
CN106411597A (zh) * | 2016-10-14 | 2017-02-15 | 广东工业大学 | 一种网络流量异常检测方法及系统 |
CN109934354A (zh) * | 2019-03-12 | 2019-06-25 | 北京信息科技大学 | 基于主动学习的异常数据检测方法 |
CN109991500A (zh) * | 2019-04-29 | 2019-07-09 | 中国水电工程顾问集团有限公司 | 一种风电故障预警预测的方法 |
AU2019101183A4 (en) * | 2019-10-02 | 2020-01-16 | Han, Yining MISS | Feature Extraction and Fusion for Industrial Data |
Non-Patent Citations (3)
Title |
---|
LEADAI学院: "时间序列异常检测", 《HTTPS://BLOG.CSDN.NET/LEADAI/ARTICLE/DETAILS/79165559?UTM_SOURCE=BLOGXGWZ4》 * |
MAXIMILIAN CHRISTA等: "Distributed and parallel time series feature extraction for industrial big data applications", 《HTTPS://ARXIV.ORG/PDF/1610.07717.PDF》 * |
熊智翔 等: "使用少量有标签样本学习的方法", 《计算机应用》 * |
Cited By (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112560994A (zh) * | 2020-12-26 | 2021-03-26 | 东软睿驰汽车技术(沈阳)有限公司 | 一种基于时序的车辆工况分类方法及装置 |
CN112560994B (zh) * | 2020-12-26 | 2024-05-03 | 东软睿驰汽车技术(沈阳)有限公司 | 一种基于时序的车辆工况分类方法及装置 |
CN114817850A (zh) * | 2021-01-27 | 2022-07-29 | 华晨宝马汽车有限公司 | 用于螺栓拧紧数据的异常检测的方法和系统 |
CN112836645A (zh) * | 2021-02-04 | 2021-05-25 | 浙江工业大学 | 面向大规模运动心率序列的代跑检测方法 |
CN112836645B (zh) * | 2021-02-04 | 2024-03-29 | 浙江工业大学 | 面向大规模运动心率序列的代跑检测方法 |
CN112971797A (zh) * | 2021-02-07 | 2021-06-18 | 北京海思瑞格科技有限公司 | 连续生理信号质量评估方法 |
CN112633427A (zh) * | 2021-03-15 | 2021-04-09 | 四川大学 | 一种基于离群点检测的超高次谐波发射信号检测方法 |
CN112668318A (zh) * | 2021-03-15 | 2021-04-16 | 常州微亿智造科技有限公司 | 基于时间序列的作品作者识别方法 |
CN112633427B (zh) * | 2021-03-15 | 2021-05-28 | 四川大学 | 一种基于离群点检测的超高次谐波发射信号检测方法 |
CN112905671A (zh) * | 2021-03-24 | 2021-06-04 | 北京必示科技有限公司 | 时间序列异常处理方法、装置、电子设备及存储介质 |
CN112925785A (zh) * | 2021-03-29 | 2021-06-08 | 中国建设银行股份有限公司 | 数据清洗方法和装置 |
CN113204569A (zh) * | 2021-03-30 | 2021-08-03 | 联想(北京)有限公司 | 一种信息处理方法及装置 |
CN113328908A (zh) * | 2021-05-10 | 2021-08-31 | 广东电网有限责任公司广州供电局 | 异常数据的检测方法、装置、计算机设备和存储介质 |
CN113218537A (zh) * | 2021-05-25 | 2021-08-06 | 中国南方电网有限责任公司超高压输电公司广州局 | 温度异常检测模型的训练方法、装置、设备和存储介质 |
CN113218537B (zh) * | 2021-05-25 | 2024-04-05 | 中国南方电网有限责任公司超高压输电公司广州局 | 温度异常检测模型的训练方法、装置、设备和存储介质 |
CN113268372A (zh) * | 2021-07-21 | 2021-08-17 | 中国人民解放军国防科技大学 | 一种一维时间序列异常检测方法、装置及计算机设备 |
CN113268372B (zh) * | 2021-07-21 | 2021-09-24 | 中国人民解放军国防科技大学 | 一种一维时间序列异常检测方法、装置及计算机设备 |
CN113626502B (zh) * | 2021-08-13 | 2024-05-14 | 南方电网数字平台科技(广东)有限公司 | 基于集成学习的电网数据异常检测方法及装置 |
CN113626502A (zh) * | 2021-08-13 | 2021-11-09 | 南方电网深圳数字电网研究院有限公司 | 基于集成学习的电网数据异常检测方法及装置 |
CN113570453A (zh) * | 2021-09-24 | 2021-10-29 | 中国光大银行股份有限公司 | 一种异常行为识别方法及装置 |
CN114511399B (zh) * | 2022-02-15 | 2023-12-15 | 电子科技大学 | 异常数据的识别剔除方法 |
CN114511399A (zh) * | 2022-02-15 | 2022-05-17 | 电子科技大学 | 用于互联网金融风控的异常数据筛选方法 |
CN114722061B (zh) * | 2022-04-08 | 2023-11-14 | 中国电信股份有限公司 | 数据处理方法及装置、设备、计算机可读存储介质 |
CN114722061A (zh) * | 2022-04-08 | 2022-07-08 | 中国电信股份有限公司 | 数据处理方法及装置、设备、计算机可读存储介质 |
WO2024036727A1 (zh) * | 2022-08-17 | 2024-02-22 | 深圳前海微众银行股份有限公司 | 数据异常检测方法、装置、设备、介质及程序产品 |
CN115438035A (zh) * | 2022-10-27 | 2022-12-06 | 江西师范大学 | 一种基于kpca和混合相似度的数据异常处理方法 |
CN115982557B (zh) * | 2023-02-24 | 2023-05-23 | 深圳市特安电子有限公司 | 一种气体浓度检测用数据处理系统 |
CN115982557A (zh) * | 2023-02-24 | 2023-04-18 | 深圳市特安电子有限公司 | 一种气体浓度检测用数据处理系统 |
CN116860977A (zh) * | 2023-08-21 | 2023-10-10 | 之江实验室 | 一种面向矛盾纠纷调解的异常检测系统及方法 |
CN116860977B (zh) * | 2023-08-21 | 2023-12-08 | 之江实验室 | 一种面向矛盾纠纷调解的异常检测系统及方法 |
CN117647587A (zh) * | 2024-01-30 | 2024-03-05 | 浙江大学海南研究院 | 一种声发射信号分类方法、计算机设备及介质 |
CN117647587B (zh) * | 2024-01-30 | 2024-04-09 | 浙江大学海南研究院 | 一种声发射信号分类方法、计算机设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111931868B (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111931868B (zh) | 时间序列数据异常检测方法和装置 | |
Chadha et al. | Time series based fault detection in industrial processes using convolutional neural networks | |
CN115343676B (zh) | 密封电子设备内部多余物定位技术的特征优化方法 | |
CN111967535A (zh) | 一种储粮管理场景温度传感器故障诊断方法及其诊断装置 | |
CN112287980B (zh) | 基于典型特征向量的动力电池筛选方法 | |
CN112070155A (zh) | 时间序列数据标注方法和装置 | |
CN108038211A (zh) | 一种基于上下文的无监督关系数据异常检测方法 | |
CN117273489A (zh) | 光伏状态评估方法及装置 | |
CN117171702A (zh) | 一种基于深度学习的多模态电网故障检测方法和系统 | |
Wang et al. | Dynamic early recognition of abnormal lithium-ion batteries before capacity drops using self-adaptive quantum clustering | |
Sharma et al. | A semi-supervised generalized vae framework for abnormality detection using one-class classification | |
CN113204894B (zh) | 一种电能计量异常诊断模型的构建方法及应用 | |
Abedin et al. | Vibration signal for bearing fault detection using random forest | |
CN113554079A (zh) | 一种基于二次检测法的电力负荷异常数据检测方法及系统 | |
CN113822336A (zh) | 一种云硬盘故障预测方法、装置、系统及可读存储介质 | |
CN117591860A (zh) | 一种数据异常检测方法及装置 | |
CN113157561A (zh) | 一种数控系统软件模块的缺陷预测方法 | |
CN116611003A (zh) | 一种变压器故障诊断方法、装置、介质 | |
CN111026075A (zh) | 一种基于误差匹配的中低压燃气调压器故障检测方法 | |
CN116910526A (zh) | 模型训练方法、装置、通信设备及可读存储介质 | |
EP4360015A1 (en) | Method and system for optimizing training of a machine learning model | |
CN113919237B (zh) | 一种风机设备在线工况分割及故障诊断的方法 | |
CN113255810B (zh) | 基于关键决策逻辑设计测试覆盖率的网络模型测试方法 | |
CN115616408A (zh) | 电池热管理数据处理方法及系统 | |
CN114580982B (zh) | 一种工业设备的数据质量的评估方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |