CN117763305A - 一种计及行为共性的电力时序数据异常检测与修复方法 - Google Patents
一种计及行为共性的电力时序数据异常检测与修复方法 Download PDFInfo
- Publication number
- CN117763305A CN117763305A CN202311729543.2A CN202311729543A CN117763305A CN 117763305 A CN117763305 A CN 117763305A CN 202311729543 A CN202311729543 A CN 202311729543A CN 117763305 A CN117763305 A CN 117763305A
- Authority
- CN
- China
- Prior art keywords
- data
- cluster
- point
- points
- abnormal
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 147
- 230000008439 repair process Effects 0.000 title claims abstract description 59
- 238000001514 detection method Methods 0.000 title claims abstract description 47
- 230000002159 abnormal effect Effects 0.000 claims abstract description 99
- 230000005856 abnormality Effects 0.000 claims abstract description 64
- 238000004458 analytical method Methods 0.000 claims abstract description 22
- 239000012634 fragment Substances 0.000 claims description 70
- 238000004364 calculation method Methods 0.000 claims description 39
- 230000008569 process Effects 0.000 claims description 38
- 230000011218 segmentation Effects 0.000 claims description 25
- 230000008859 change Effects 0.000 claims description 24
- 230000000694 effects Effects 0.000 claims description 20
- 238000006073 displacement reaction Methods 0.000 claims description 19
- 238000003780 insertion Methods 0.000 claims description 14
- 230000037431 insertion Effects 0.000 claims description 14
- 238000010606 normalization Methods 0.000 claims description 12
- 238000012937 correction Methods 0.000 claims description 9
- 230000001186 cumulative effect Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 8
- 238000000638 solvent extraction Methods 0.000 claims description 5
- 238000012935 Averaging Methods 0.000 claims description 3
- 238000012790 confirmation Methods 0.000 claims description 3
- 230000006870 function Effects 0.000 claims description 3
- 230000009466 transformation Effects 0.000 claims 1
- 238000010200 validation analysis Methods 0.000 claims 1
- 238000013523 data management Methods 0.000 abstract description 4
- 238000011156 evaluation Methods 0.000 abstract description 2
- 230000006399 behavior Effects 0.000 description 53
- 238000004422 calculation algorithm Methods 0.000 description 33
- 230000005611 electricity Effects 0.000 description 20
- 230000000052 comparative effect Effects 0.000 description 7
- 239000000306 component Substances 0.000 description 7
- 230000004927 fusion Effects 0.000 description 7
- 230000003542 behavioural effect Effects 0.000 description 6
- 238000009499 grossing Methods 0.000 description 6
- 238000012549 training Methods 0.000 description 6
- 230000007423 decrease Effects 0.000 description 5
- 238000002955 isolation Methods 0.000 description 5
- 230000000737 periodic effect Effects 0.000 description 5
- 238000012706 support-vector machine Methods 0.000 description 5
- 241001123248 Arma Species 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- YHXISWVBGDMDLQ-UHFFFAOYSA-N moclobemide Chemical compound C1=CC(Cl)=CC=C1C(=O)NCCN1CCOCC1 YHXISWVBGDMDLQ-UHFFFAOYSA-N 0.000 description 3
- 238000007619 statistical method Methods 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000000691 measurement method Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000035772 mutation Effects 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 230000003749 cleanliness Effects 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000013210 evaluation model Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种计及行为共性的电力时序数据异常检测与修复方法,包括如下步骤:根据电力时序数据进行行为共性分析,获取到电力时序数据的群体聚类结果;根据电力时序数据计算时序异常得分,生成所有数据的异常得分集合;根据聚类结果和异常得分集合,进行计及行为共性的电力时序数据异常识别;根据异常识别结果和聚类结果,进行计及行为共性的电力时序数据异常修复。本发明从行为共性分析、时序异常评估、异常值修复三方面提出了创新性方案,有效提高了对于电力时序数据的异常检测与修复的准确度,解决了现有方法难以精准识别异常并修复的问题,这一完整流程对电力系统中的智能数据治理具有重要意义。
Description
技术领域
本发明属于电力行业数据治理领域,涉及电力时间序列数据的特征处理以及聚类、异常检测、异常修复等机器学习技术,具体涉及一种计及行为共性的电力时序数据异常检测与修复方法。
背景技术
电网元件运行的量测数据表现出典型的时间序列特征,是电网运行健康的重要表征,因此电力时间序列数据也是电力企业数据资产的核心组成。电网运行时间序列数据的异常检测与修复是保证电网稳定运行、提升电力数据资产价值的核心任务之一。在电力时间序列数据中,异常数据的产生可能源自多个因素,包括电网元件自身运行异常、元件故障、数据采集或传输故障、人为因素以及外界因素影响等等。在电网运行监测以及电力数据治理过程中对电力时间序列数据的异常进行及时有效的检测、识别与修复,有助于维护电力系统运营的稳定性和安全性、提高电网数据资产质量并加速电力数据要素价值发挥。
电力时间序列数据的异常的种类可分为全局异常、上下文异常与集合异常。全局异常是指该数据相对于全局中其他时间点的数据具有明显偏差。上下文异常通常是指在它们自己的上下文中具有相对较大或较小的值,但这种异常不是全局的。集合异常是指在整条时序数据中,具有一系列明显偏离的连续时间点片段,集合异常可以是全局异常,也可以是上下文异常。
目前常用的时间序列异常检测技术有以下几种:
基于回归预测的方法:基于回归预测的方法常用模型是自回归移动平均模型ARMA和自回归移动平均模型ARIMA。ARMA包括两个主要组成部分,自回归部分(AR)表示当前观测值与过去观测值之间的关系,移动平均部分(MA)表示当前观测值与过去观测值的误差之间的关系,适用于具有一定自相关和平稳性的时间序列数据。ARIMA相较于ARMA加入了差分操作,用于将非平稳时间序列转化为平稳时间序列。在使用ARMA或ARIMA模型拟合时间序列后,可以对模型的残差进行分析,异常通常表现为大幅度的残差,即偏离了模型的预期分布。
基于机器学习的方法:孤立森林IForest是最常用的无监督异常检测方法之一,在时序数据中也有所应用,将不同时间点的数据作为独立数据,通过构建多棵随机生成的二叉树,在树中不断划分特征空间来隔离异常数据点。One-Class SVM是一种支持向量机(SVM)的变种,其目标在整体数据空间中构建一个边界,将正常的样本从异常样本分离出来,可以将正常数据视为单个类别,识别偏离正常模式的时间点。
基于深度学习的方法:深度学习技术能够自动学习时间序列数据中的抽象特征,从而有效地捕捉其中的复杂异常现象。常见的方法包括长短时记忆网络LSTM、自编码器AE等。LSTM可以捕捉时间序列中的复杂依赖关系,使用时序数据训练模型,再使用模型预测待检测数据,通过预测误差检测异常。AE由编码器和解码器两部分组成,编码器提取特征维编码表示,解码器将其重构为尽可能接近原始数据的形式。其检测过程与LSTM类似,通过训练模型提取特征,再重构待检测数据计算重构误差。
时序异常修复是在时间序列数据中纠正异常值的过程,修复方法通常包括统计方法和基于模型的方法。统计方法主要有插值和平滑,插值是通过使用相邻数据点的信息来估计异常值的值,常用的插值方法包括线性插值、样条插值、拉格朗日插值等。平滑则通过使用时间序列的移动平均、指数平滑等技术来平滑异常值。基于模型的方法一般结合异常检测过程,利用算法或者神经网络训练预测模型,在模型预测或重构数据后,使用预测值或重构值对异常数据进行修复。
孤立森林算法是最为常见的数值型数据的异常检测算法。孤立森林IForest的基本思想是,异常数据点更容易从正常样本点中分离出来,并通过构建一组隔离树的方法在数据中寻找孤立点,具体步骤为:
1)随机选择一个特征和一个切分点。从样本集中随机选择一个特征,在该特征的最小值和最大值之间随机选择一个切分点。
2)划分子集。通过选择的特征和切分点将数据集划分为两个子集,分别在切分点两侧。
3)构建隔离树。对于每个子集,重复步骤1和步骤2,直到满足终止条件,如树的深度达到预定值或子集中的样本数量小于等于1。
4)重复步骤1-3多次,构建多棵隔离树形成孤立森林。
5)根据隔离树的路径长度计算样本的异常分数。如果点在大多数隔离树上所处的叶子节点的深度较浅,则有较大概率为离群点。对于给定的样本,计算其在每棵隔离决策树上的路径长度,计算公式如下:
其中,h(x)是样本x在每棵孤立树中从根节点到叶子节点的平均路径长度,n表示构建树时输入样本的数据量,c(n)是一个调整因子,取值为平均路径长度的期望值。
IForest为数据中的每个样本计算异常分数,根据异常分数排序及设置的异常比例来确定异常数据。
电力时间序列数据相较于普通数据通常具有更高的复杂性,使时间序列异常的检测与修复更难于普通数据。IForest方法比较适合于各维度独立的数值型数据的异常检测,但是对于时间序列数据,各时间点因为蕴含着变化趋势并不是相互独立的,在检测时无法考虑时间点的先后顺序,因此无法满足实际业务需求;One-Class SVM会对时序数据整体进行建模,同样没有考虑到时序的上下文关系,因而只能识别出时序中的全局异常;同时IForest和One-Class SVM等机器学习方法也无法对异常数据进行修复。
而基于深度学习的异常检测及修复方法,如LSTM模型预测方法和AE模型重构方法,其效果依赖于训练数据的干净程度,学习到的特征会因为训练数据中不常见的规律、异常值或噪声而产生偏差,并且需要大量历史数据来进行训练和建模,训练及预测或重构过程计算成本较高,在海量的电力数据上难以大规模应用。基于插值和平滑的修复方法未考虑时序的变化与发展趋势,仅根据统计学方法进行修复,合理性有待考究。
尤为关键的是,现有异常检测与修复方法在建模处理过程中,仅仅关注分析样本自身数据随时间的序列变化情况,而忽视了行为共性在异常检测与数据修复中的影响。实际上在电力系统中,不同的量测数据所反映的电力元件在运行时具有行为共性,即在受到同一外部因素的影响时,相关或者同类的元件会有相似的行为状态变化。这时虽然对于单个元件的自身来说,其时序数据会突然变化,但对于群体来说都同步产生了类似变化,因而属于群体共性行为,故在业务上往往会认为其不属于异常(例如数量众多的居民用户在天气剧烈变化造成极端高温或者低温时,用电量会有异于平常,但是因为居民户整体上都呈现出这种行为,因此这期间的数据不应判为异常)。然而现有电力时序数据的异常识别方法对此未做区分,完全不考虑行为共性问题,仅能够识别其自身的全局异常,无法考虑外界影响下群体行为的变化,容易出现假异常现象,不尽符合业务需要;同时在异常数据修复的过程中,现有方法仅考虑分析样本自身的行为,而没有考虑群体共性,从而也会导致修复效果不佳。
发明内容
发明目的:针对现有电力时间序列数据异常检测方法均只关心待分析样本自身数据表现、而不考虑群体行为共性从而导致难以精准识别异常并修复的问题,本发明提出了一种计及行为共性的电力时间序列数据异常检测与修复方法。首先,为了解决群体划分准确性问题,提出了一种两阶段融合的时间序列聚类算法,用于群体聚类与电力时序样本的行为共性分析;其次,为了消除因外界影响出现的共性突变异常,提出一种时序异常检测算法,同时考虑行为共性进一步修正异常检测的结果;最后,为了提升时序修复的效果与效率,提出一种基于时序匹配电力数据异常修复算法,能够兼顾行为共性进行修复。
技术方案:为实现上述目的,本发明提供一种计及行为共性的电力时序数据异常检测与修复方法,包括如下步骤:
S1:根据电力时序数据进行行为共性分析,获取到电力时序数据的群体聚类结果;
S2:根据电力时序数据计算时序异常得分,生成所有数据的异常得分集合;
S3:根据步骤S1的聚类结果和步骤S2的异常得分集合,进行计及行为共性的电力时序数据异常识别;
S4:根据步骤S3的异常识别结果与步骤S1的聚类结果,进行计及行为共性的电力时序数据异常修复。
进一步地,所述步骤S1中本发明提出了一种两阶段融合的时间序列数据聚类算法KMeans-Shape,旨在对电力时序数据开展更为精细的群体划分和行为共性分析。每条时序数据都有形状差异与数值差异两种明显的可区分特征,以用电数据为例,对应的群体行为可以通过用电趋势特征(时序形状)和用电量(数值大小)特征进行区分。基于此,在算法第一阶段中区分不同形状的时序数据,由于欧式距离对时序形状的区分能力较弱尤其是在长时序下的聚类效果差,提出一种时间序列形状的相似度量方法改进KMeans算法的距离计算方式,记为KMeans-shape;在第二阶段采用一种快速无监督的层次聚类方法进一步划分不同数值大小的时序数据。
所述步骤S1包括如下步骤:
A1:区分不同形状的时间序列;
A2:进一步区分不同数值大小的时间序列;
A3:整合步骤A1和A2的两阶段聚类结果。
进一步地,所述步骤A1~A3的具体过程为:
A1:区分不同形状的时间序列,包括如下步骤:
A1-1:时序数据标准化:设电力数据集D=(x(1),x(2),…,x(n))中共包含n个样本,每一个样本的数据x(i)共包含d个时间点的值,即对每一条时序数据分别进行标准化处理,消除量纲的影响,以更好的识别出时序形状;
标准化方法如下:
x′=(x1′,x2′,…,xd′)
其中,xi是x的第i个维度,Mean(x)是原始数据x的均值,Std(x)是原始数据x的标准差,x′是标准化后的电力数据,对所有数据标准化生成标准化数据集D′=(x(1)',x(2)',…,x(n)');
A1-2:初始化质心:在标准化数据集D′中任意选取若干个样本点作为聚类的簇质心;A1-3:计算所有点与质心间的形状距离:
提出一种用于计算时间序列形状距离的方法,时序形状根据其变化趋势与变化幅度体现出不同的差异性,数据中每个点与其后点的斜率反应了此种差异。因此,将一阶差分应用于每个标准化后的数据点x',生成一阶差分结果t,其计算方式如下:
t=(x2′-x1′,x3′-x2′,…,xd′-xd-1′)
依据差分结果,计算任意序列与质心间形状差异,其计算方式如下:
其中,μl是第l个质心,和/>分别是x(j)'和μl的差分序列,d是x(j)'的维度,即时间点的数量,θ为时间差异因子,用于控制单个时间点差异的影响程度;
A1-4:重新分配点,生成新的质心:
依据形状距离的计算结果,将每个数据点分配到最接近的质心所在的簇,根据新划分的数据点重新计算每个簇的质心,计算方式如下:
其中,μi为簇Ci的质心,ni为簇Ci的包含点的个数;
A1-5:重复步骤A1-3至A1-4,直到质心收敛,也即质心不再变化或变化幅度极小;
A1-6:使用手肘法选择合适的聚类数:
手肘法是一种用于帮助确定聚类算法中聚类数k的一种启发式方法。首先,选择一系列可能的k值,即步骤A1-2中初始化质心的数量;其次,对每个k值执行步骤A1-1至A1-5得到聚类结果,并计算对应的误差平方和,计算方式如下:
其中,μi为簇Ci的质心,x为簇Ci中的点;
随着k值的增大,SSE不断减小,选择k值与SSE形成的曲线拐点对应的k值作为最佳的聚类数,此时SSE的值随着k值的继续增大而趋于平缓,最终形成若干个形状聚类簇C=(C1,C2,…,Ck);
A2:进一步区分不同数值大小的时间序列,包括如下步骤:
A2-1:寻找切分维度与切分点对数据进行切分:
切分过程从待切分数据整体开始,即步骤A1任意聚类结果Ci所属的数据样本;将数据整体逐步切分为一个个簇块,切分以最小化每个的分块的簇内距离平方和(WCSS)为目标,簇内距离平方和越大,被切分的优先级越高;WCSS的计算公式如下:
其中,Qi为簇内点第i维度的距离平方和,si为簇内点第i维度的累积分布和,n为点的数量;
为了找到待切分簇的最佳分割点,即找到切分前后WCSS变化最大的点,通过线性扫描并计算空间中每个点的累积边际分布,快速计算WCSS变化并确认划分的维度和位置,簇S中的边际分布的计算方式如下:
mci(h)=|x∈S∧xi=h|
其中,mci(h)和msi(h)分别表示在第i维度坐标为h的点的边际计数与边际分布,|·|代表计数函数;则累积边际计数cmci(h)与累积边际分布计算cmsi(h)为:
cmci(h)=|x∈S∧xi≤h|
使用CH-Index判断分裂的合理性,其值越大表示聚类效果越好;如果它因分裂而增加,则继续分裂阶段,否则认为分裂无效,不执行该次分裂;设数据已被划分为k个簇,则CH-Index的计算方式为:
其中,BCSS(S)为簇间距离和,为第i簇的质心,/>为所有数据的质心,WCSS(S)为所有簇的簇内距离和,||·||2代表欧式距离,n为数据的总数量;
在分裂过程结束后,生成若干个分裂区块(簇)S=(S1,S2,...,Sl);
A2-2:识别噪声簇并重新分配点:
由于噪声的随机性,一般认为噪声簇内的点分布较为分散,而在一个正常簇中,质心周围的密度很可能是簇整体密度的若干倍,因此依据密度识别只包含噪声点的簇,其中,簇Si的密度计算方式如下:
Wj=max(xj)-min(xj) x∈Si
其中,Wj为簇Si在第j维度分布的范围,|Si|为簇内点的数量;
计算每个簇Si的质心mi,计算方式同步骤A1-4,通过在每个簇质心周围取一个很小的区间块,同样使用上述方式计算密度,若其密度明显小于整个簇密度,则判定为噪声区块,后续的步骤将排除这些簇以改善聚类效果并节省计算时间;
由于在步骤A2-1中采用切分点进行切割时,一些零散的点可能会被强行切分到另一簇中,因此需要根据现有簇的划分重新分配数据点,恢复可能被分裂阶段中所割裂的周边点。依次计算每个点到所有簇的质心间的欧氏距离,并将每个点分配给距离最近的簇;A2-3:合并步骤A2-2中重新分配后的集群区块:
与步骤A2-1对称,只要可以提高整体聚类质量,就会合并在步骤A2-2中生成的簇;在每一次迭代中,选择合并后WCSS增加最少的两个簇,以CH-index判定合并效果,如果合并后使CH-index增加,则将这两个簇合并为一个新的簇,否则整个合并阶段结束;通常只需要考虑将相邻的簇进行合并,因为它们合并对WCSS的增幅较小;
A2-4:为合并后的簇重新分配点,生成聚类簇;
A3:整合步骤A1和A2的两阶段聚类结果:
在步骤A1生成的每一个簇Ci中,其时序形状较为相似,但是对于原始数据集D,簇内数据的数值分布仍比较广泛。因此在生成聚类集合C后,在数据集D中根据聚类结果C分组,生成对应的聚类集合C′=(C1′,C2′,…,Ck′),对C′中的每一个簇执行步骤A2-1至A2-4,进一步划分数值不同的簇;经过两阶段聚类后,将相似形状与相似数值的序列都划分到同一簇中,生成最终聚类集合Cl,代表了具有相似行为状态的群体。
进一步地,所述步骤S2中本发明提出了一种基于分割树模型的时间序列异常检测算法,用于识别出时序数据中的全局异常与上下文异常,且能够计算出每个时间点对应的异常得分;
所述步骤S2包括如下步骤:
B1:初始化树;
B2:插入新的叶节点;
B3:计算节点异常得分;
B4:删除最早节点;
B5:对时序数据中的数据点依次执行步骤B2至B4,计算每个时间点的异常得分;
B6:重复步骤B1至B5,建立多个树模型并计算最终得分;
B7:对于每条数据x,执行步骤B1至B6,计算所有数据的异常得分。
进一步地,所述步骤B1~B7的具体过程为:
B1:初始化树:
设树的叶节点数量为t,则选取时序数据x中前t个点进行初始化,初始化的步骤与IForest类似,在t个点的值域范围内随机选取一个切分点,将数据划分为两个子集,不断迭代划分直到每个叶子结点都只包含一个数据点;
B2:插入新的叶节点:
通过插入叶节点,对新增时间点进行检测,能够在流处理下应对时序异常检测问题,弥补了IForest在面对流式数据时,每次新增数据需要重新构建树,整体耗时较高的问题。在插入节点时,需要满足插入前后树模型的状态分布十分接近。将数据点xt+1插入树中,其具体步骤为:
B2-1:判断树中是否有重复叶子节点:
重复叶子节点即值相同的节点,若有则直接插入该节点中,若无,则继续下一步骤;
B2-2:搜索插入范围:
搜索插入范围是一个递归过程,首先从树的根节点开始向下搜索。设树的根节点为Q,Q下属所有点的边界为B={[l1,h1],[l2,h2],...,[lc,hc]},其中l1代表点第一维度的最小值,h1代表点第一维度的最大值,根据插入点更新Q的边界,具体为:
其中,xt+1,i为xt+1点的第i维度,为更新后的边界;
通过一个随机数同时确定待搜索维度与划分点,具体如下:
其中,j为搜索维度,c为搜索的切分点;
依据搜索维度和切分点进行节点判断插入点的位置;
B2-3:插入叶节点:
当步骤B2-2结束后,生成新父节点C,将数据点作为C的子节点插入树中,具体为:
其中,Cl和Cr分别为C的左子节点和右子节点,Pt+1为当前数据点xt+1对应的叶节点,S为搜索结束时所在的节点;
B3:计算节点异常得分:
异常性质判定的思想是如果一个点随着该点的加入而使模型的复杂性大幅增加,则认为该点是异常点。将点从树中删除后,树模型复杂度的变化量即为点的位移,点的位移代表了该点的异常程度,位移越大,则点的异常程度越大;
点位移的计算如下:
其中,Z代表当前树T中所有的点的集合,Z-{xt+1}代表将xt+1从Z中排除,T′为T删除xt+1点形成的树,d(y,Z,T)代表点y在树T中的深度;
考虑到异常值可能存在的重复或近似重复的情况,此时删除异常点对整棵树的结构影响可能不会很大,使异常点的位移程度降低。为了解决这个问题,使用点的共同位移扩展位移的概念,设x为要移除的点,为包含xt+1的节点,即xt+1对应的父节点,祖父节点等,则共同移位的定义是:当逐个移除点集/>中的节点时,树中点的位移预期变化的最大值,其公式定义为:
其中,代表点集/>中节点的数量,T″为T删除/>形成的树;
B4:删除最早节点:
当树中叶节点的数量大于最大值t时,删除插入最早的叶节点;首先找到需要删除节点的兄弟节点R与父节点P,将该节点与父节点P从树中移除,并使用R取代父节点P,形成新的树;
B5:对时序数据中的数据点依次执行步骤B2至B4,计算每个时间点的异常得分;
B6:重复步骤B1至B5,建立多个树模型并计算得分,使用所有树得分的平均值代表每个点的最终得分,表示如下:
其中,代表数据x对应的最终异常得分,/>为第i个点的平均得分,Nt为建立树的总数量,/>为第l棵树第i个点的得分;
B7:对于每条数据x,执行步骤B1至B6,检测该条数据每个时间点对应的异常得分,生成所有数据的异常得分集合
进一步地,所述步骤B2-2中依据搜索维度和切分点进行插入节点判断的方式为:
(1)若创建一个父节点C,其属性对应搜索维度j和切分点c,使用C替换当前节点;
(2)若设根节点Q划分子树的维度和值分别为p、q,则若xt+1,p≤q,则继续搜索Q的左子节点Ql;若xt+1,p>q,则继续搜索Q的右子节点Qr;搜索流程与上述相同,将节点Q替换为当前的搜索节点,直到搜索流程满足判断条件(1)时结束。
进一步地,所述步骤S3中当电网中的电器元件或用电客户等受到外部因素的影响时,其行为状态会发生变化。以用电行为为例,在节假日期间工厂停工可能导致用电量急剧下降。如果仅考虑单一用户,这可能被视为异常状况。然而,在整个工厂群体中,出现的共同用电下降趋势是由于外部环境因素引起的正常波动,不应被视为异常情况。类似的,周末与节假日期间的居民户日间用电量可能会呈突然增长趋势,从而被视为异常。因此仅根据对单一元件或用户的异常检测及识别可能会导致假异常的增多,需要结合行为共性来具体考虑。本发明提出了一种计及行为共性的异常判定方法,进一步识别出时序中的集合异常;
所述步骤S3包括如下步骤:
C1:计及行为共性的异常识别;
C2:根据共性异常结果进行异常修正;
C3:集合异常识别。
进一步地,所述步骤C1~C3的具体过程为:
C1:计及行为共性的异常计算:
根据步骤S1的行为共性分析的结果Cl,将时序数据分为若干簇;计算每簇样本的时间序列数据均值,均值可以体现每个簇的行为共性,计算方式如下:
其中,mi是簇Ci的时序均值,|Ci|代表簇Ci的大小;
对Cl中每个簇的时序均值mi执行步骤B1至B6,得到每个簇的共性异常得分,代表了每个簇的所有时间点的整体异常情况;
C2:根据共性异常结果进行异常修正:
依据上述描述,若群体内呈现统一的异常趋势则不认为是异常,因此通过群体异常得分修正时间序列自身的异常得分。设时序数据x(j)∈Ci,簇Ci的共性异常得分为对得分进行归一化并计算差异得到修正后的异常得分,归一化计算方式为:
S′=(s1′,s2′,…,s′m)
其中,max(S)和min(S)分为别序列S的最大值和最小值,si为第i个维度,S′为归一化结果;
则点x(j)的修正异常得分的计算方式为:
其中,Abs(*)代表取绝对值操作,和/>为归一化后的得分;
通过修正后的异常得分,消除了单条数据与群体之间的差异性,可以避免由于群体共性趋势变化导致的假异常的出现;
C3:集合异常识别,由于时序数据中不仅仅有单点异常,还存在集合异常,需要进一步处理。包括如下步骤:
C3-1:异常点确认:
对于修正后的异常得分给定一个概率阈值p1,使用分位数方法初步确认最异常的时间点集合,即:
其中,li代表第i点是否异常,1为异常,0为正常;t(p)代表在概率p1下的分位数的值,如90分位数表示在数据正序排列下,位于第90%数据处对应的值;
选出所有结果为1的点,形成包含q个异常时间点的集合A={a1,a2,…,aq},其中ai为具体的时间点,下标{1,2…,q}代表时间点的先后顺序;
C3-2:异常片段划分:
由于集合异常通常位于相邻时间点,其异常值较为相似,根据步骤B3中的理论,相似异常点的异常得分可能会降低,即使在步骤B3中有所改进,仍会造成一定影响。因此,对于步骤C3-1结果A中的异常点ai,分别向其前后时间点搜索,给定阈值p2且p2<p1,使用步骤C3-1中的方法确认异常点,直到前后都为正常点,将新的异常点与ai合并为一个异常片段Seqi;类似的,对A中所有点进行搜索,生成异常片段集合A′,表示为:
A′={Seq1,Seq2,…,Seqq}
Seqi={*′,ai,*″}
其中,*代表可能存在若干个点,也可能为空,*′和*″分别代表点ai前和后可能存在的异常点;若存在,则代表Seqi为一个异常片段,若*′和*″都为空,则代表Seqi为单个异常点。
进一步地,所述步骤S4中经过步骤S1的行为共性分析后,相似行为状态的样本被划分为一簇,即相同时间段数据的形状与数值大小相似;另一方面,由于电力时序数据大多具有周期性规律,如天、周、月等,不同周期的状态也具有一定的相似性。因此,本发明提出了一种基于相似时间序列片段匹配的异常修复方法,参考聚类簇内其他样本的数据与自身序列中其他时间段的数据,匹配最相似的片段对异常值进行修复,增加了异常修复的合理性与可解释性。
所述步骤S4包括如下步骤:
D1:匹配簇内相似序列片段;
D2:匹配自身相似周期片段;
D3:依据相似片段修复异常。
进一步地,所述步骤D1~D3的具体过程为:
D1:匹配簇内相似序列片段,包括如下步骤:
D1-1:计算近似周期:
设时序数据x(j)对应的异常片段集合为A(j)′,首先使用快速傅里叶变换FFT计算x(j)的近似周期,设y(j)和freq(j)为FFT变换后的频域数据与频率信息。FFT可以将时域数据转换为频域数据,通过查找频域数据中的峰值,可以确定时序数据中的主要周期性成分。
其次,找到频域数据的峰值,并找到峰值点对应的频率,可以表示为:
index=argmax(Abs(y(j)))
freqm=freq(j)(index)
其中,index表示频域数据的峰值对应的下标,freqm为对应频率值;
最后将频率转换为周期,即:
D1-2:匹配形状最相似的序列片段:
对于A(j)′中任意一个异常片段Seqi={*′,ai,*″},首先提取其所在周期对应的时间戳片段tseqi与周期数据tsi,即:
tseqi=(ai-T//2,ai-T//2+T)
tsi=x(j)(tseqi)
其中,x(j)(*)表示取时序数据中对应的时间戳片段;
由于同一簇内的时序数据形状相似,周期应一致或基本相同,因此选择x(j)所在簇内所有时序,并截取时间戳tseqi对应的片段,表示为其中对C′k中所有数据与tsi使用步骤A1-1中的方法进行标准化,生成C″k与tsi′,使用步骤A1-3中描述的形状距离计算tsi′与C″k中每条数据的距离,选出在C″k内形状最相似的l条片段对应的未标准化片段Ds={x1i,x2i,…,xli};
D1-3:通过计算tsi与Ds中每条数据的欧式距离,找出与Ds中欧式距离最小的片段,则认为该片段即为所在簇内与tsi最相似的序列片段,记为xmini;
D2:匹配自身相似周期片段:
由于在自身序列内,通常相近周期的数据最为相似,因此对于异常周期片段tsi,分别向其前后按周期进行搜索若干个周期,并用Cosine距离计算两个片段的距离,其过程表示如下:
tsi(r)=x(j)(ai-T//2+rT,ai-T//2+(r+1)T)
dis(r)=Cos(tsi(r),tsi)
其中,tsi(r)表示距离tsir个周期的片段数据,r为正时是向后搜索,r为负时是向前搜索。dis(r)是tsi和tsi(r)的Cosine距离;
选择Cosine距离最小的片段作为自身序列中最相似的片段,记为tsi(d);
D3:依据相似片段修复异常:
通过步骤D1与D2,分别匹配到簇内序列与自身序列内最相似的片段作为异常数据修复的参考;为了进一步消除片段间的差异,对相似片段使用步骤A1-1中的方法进行标准化;依据异常段Seqi在tsi中的位置,分别提取tsi(d)′与xmini′中对应位置的值作为待修复值,过程表示如下:
resi=tsi(d)′(indi)
reci=xmini′(indi)
其中,tsi(d)′和xmini′为tsi(d)与xmini的标准化结果,indi代表异常段Seqi在tsi中的相对位置,resi代表自身序列对应计算的修复值,reci代表簇内相似序列对应计算的修复值;
综合考量簇内序列与自身序列,将二者的对应修复值进行平均化,并执行逆标准化,恢复tsi的分布,得到最终修复结果,过程如下:
re=Mean(tsi)+Std(tsi)*re′
其中,re′i为综合平均结果,re为逆标准化结果,即异常片段Seqi对应的最终修复值;
本发明方法首先提出了一种两阶段融合的时间序列聚类算法,用于电力时序样本的行为共性分析,通过叠加形状均值聚类和一种快速层次聚类方法,分别对时间序列数据的发展趋势以及数值大小开展分析,将趋势相似、数值大小相近的时序样本聚为同一簇,进而开展同簇内的共性分析以及区分不同簇间的行为差异;
其次,提出一种可以计及行为共性的时序异常检测算法,构建异常评价模型并根据时间点的顺序依次插入计算异常得分,解决了IForest等机器学习方法上下文建模能力弱的问题;同时,该算法实现了只需基于时间序列前后关系即可建模,解决了深度学习方法需要大量干净数据训练的问题;尤其考虑行为共性进一步修正异常检测的结果,消除因外界影响出现的共性突变,最终输出负荷业务需要的异常点与异常片段;
最后,提出一种基于时间序列片段匹配的电力数据异常修复算法,能够兼顾行为共性与自身周期数据,对识别出的异常点与异常片段进行修复,同样无需大量干净数据进行预训练。
有益效果:本发明与现有技术相比,从行为共性分析、时序异常评估、异常值修复三方面提出了创新性方案。首先提出两阶段融合的时间序列聚类算法,实现了精准的电力时序行为共性分析,能够区分不同形状与数值的时序数据;其次,提出的时序异常检测算法能够识别时序数据中的全局异常和上下文异常,获取每个时间点的异常得分,检测效果更优,并将行为共性分析结果与时序异常检测结果相结合,进一步修正了异常检测结果;最后,采用基于序列匹配的修复算法,结合自身及共性群体中其他相似数据,为异常点提供了合理的修复值参考,使结果具备良好的可解释性且执行速度快。本发明方法有效提高了对于电力时序数据的异常检测与修复的准确度,解决了现有方法在电力时序数据中难以精准识别异常并修复,且未考虑群体行为共性的问题,这一完整流程对电力系统中的智能数据治理具有重要意义。
附图说明
图1为本发明方法的整体流程示意图;
图2为实施例2中提供的实时用电量数据展示图;
图3为实施例2获得的KMeans-shape聚类结果图;
图4为实施例2获得的部分二阶聚类结果图;
图5为实施例2获得的数据异常得分展示图;
图6为实施例2获得的群体异常的检测结果图;
图7为实施例2获得的异常修正及识别结果图;
图8为实施例2获得的序列片段匹配结果图;
图9为实施例2获得的异常修复结果图;
图10为对比例1获得的基于两阶段模型的部分聚类结果图;
图11为对比例1获得的基于Kmeans的聚类结果图;
图12为对比例1获得的本发明提出的检测算法的异常检测结果图;
图13为对比例1获得的IForest检测算法的异常检测结果图;
图14为对比例1获得的采用本发明时序匹配修复方法的修复结果图;
图15为对比例1获得的采用均值平滑方法的修复结果图。
具体实施方式
下面结合附图和具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
实施例1:
本实施例提供一种计及行为共性的电力时序数据异常检测与修复方法,参照图1,其包括如下步骤:
S1:根据电力时序数据进行行为共性分析,获取到电力时序数据的群体聚类结果:
本发明提出了一种两阶段融合的时间序列数据聚类算法KMeans-Shape,旨在对电力时序数据开展更为精细的群体划分和行为共性分析。每条时序数据都有形状差异与数值差异两种明显的可区分特征,以用电数据为例,对应的群体行为可以通过用电趋势特征(时序形状)和用电量(数值大小)特征进行区分。基于此,在算法第一阶段中区分不同形状的时序数据,由于欧式距离对时序形状的区分能力较弱尤其是在长时序下的聚类效果差,提出一种时间序列形状的相似度量方法改进KMeans算法的距离计算方式,记为KMeans-shape;在第二阶段采用一种快速无监督的层次聚类方法划分不同数值大小的时序数据。
本步骤中行为共性分析的具体过程包括如下步骤:
A1:区分不同形状的时间序列,包括如下步骤:
A1-1:时序数据标准化:设电力数据集D=(x(1),x(2),…,x(n))中共包含n个样本,每一个样本的数据x(i)共包含d个时间点的值,即对每一条时序数据分别进行标准化处理,消除量纲的影响,以更好的识别出时序形状;
标准化方法如下:
x′=(x1′,x2′,…,xd′)
其中,xi是x的第i个维度,Mean(x)是原始数据x的均值,Std(x)是原始数据x的标准差,x′是标准化后的电力数据,对所有数据标准化生成标准化数据集D′=(x(1)',x(2)',…,x(n)');
A1-2:初始化质心:在标准化数据集D′中任意选取若干个样本点作为聚类的簇质心;A1-3:计算所有点与质心间的形状距离:
提出一种用于计算时间序列形状距离的方法,时序形状根据其变化趋势与变化幅度体现出不同的差异性,数据中每个点与其后点的斜率反应了此种差异。因此,将一阶差分应用于每个标准化后的数据点x',生成一阶差分结果t,其计算方式如下:
t=(x2′-x1′,x3′-x2′,…,xd′-xd-1′)
依据差分结果,计算任意序列与质心间形状差异,其计算方式如下:
其中,μl是第l个质心,和/>分别是x(j)'和μl的差分序列,d是x(j)'的维度,即时间点的数量,θ为时间差异因子,用于控制单个时间点差异的影响程度;
A1-4:重新分配点,生成新的质心:
依据形状距离的计算结果,将每个数据点分配到最接近的质心所在的簇,根据新划分的数据点重新计算每个簇的质心,计算方式如下:
其中,μi为簇Ci的质心,ni为簇Ci的包含点的个数;
A1-5:重复步骤A1-3至A1-4,直到质心收敛,也即质心不再变化或变化幅度极小;A1-6:使用手肘法选择合适的聚类数:
手肘法是一种用于帮助确定聚类算法中聚类数k的一种启发式方法。首先,选择一系列可能的k值,即步骤A1-2中初始化质心的数量;其次,对每个k值执行步骤A1-1至A1-5得到聚类结果,并计算对应的误差平方和,计算方式如下:
其中,μi为簇Ci的质心,x为簇Ci中的点;
随着k值的增大,SSE不断减小,选择k值与SSE形成的曲线拐点对应的k值作为最佳的聚类数,此时SSE的值随着k值的继续增大而趋于平缓,最终形成若干个形状聚类簇C=(C1,C2,…,Ck);
A2:进一步区分不同数值大小的时间序列,包括如下步骤:
A2-1:寻找切分维度与切分点对数据进行切分:
切分过程从待切分数据整体开始,即步骤A1任意聚类结果Ci所属的数据样本;将数据整体逐步切分为一个个簇块,切分以最小化每个的分块的簇内距离平方和(WCSS)为目标,簇内距离平方和越大,被切分的优先级越高;WCSS的计算公式如下:
其中,Qi为簇内点第i维度的距离平方和,si为簇内点第i维度的累积分布和,n为点的数量;
为了找到待切分簇的最佳分割点,即找到切分前后WCSS变化最大的点,通过线性扫描并计算空间中每个点的累积边际分布,快速计算WCSS变化并确认划分的维度和位置,簇S中的边际分布的计算方式如下:
mci(h)=|x∈S∧xi=h|
其中,mci(h)和msi(h)分别表示在第i维度坐标为h的点的边际计数与边际分布,|·|代表计数函数;则累积边际计数cmci(h)与累积边际分布计算cmsi(h)为:
cmci(h)=|x∈S∧xi≤h|
使用CH-Index判断分裂的合理性,其值越大表示聚类效果越好;如果它因分裂而增加,则继续分裂阶段,否则认为分裂无效,不执行该次分裂;设数据已被划分为k个簇,则CH-Index的计算方式为:
其中,BCSS(S)为簇间距离和,为第i簇的质心,/>为所有数据的质心,WCSS(S)为所有簇的簇内距离和,||·||2代表欧式距离,n为数据的总数量;
在分裂过程结束后,生成若干个分裂区块(簇)S=(S1,S2,...,Sl);
A2-2:识别噪声簇并重新分配点:
由于噪声的随机性,一般认为噪声簇内的点分布较为分散,而在一个正常簇中,质心周围的密度很可能是簇整体密度的若干倍,因此依据密度识别只包含噪声点的簇,其中,簇Si的密度计算方式如下:
Wj=max(xj)-min(xj) x∈Si
其中,Wj为簇Si在第j维度分布的范围,|Si|为簇内点的数量;
计算每个簇Si的质心mi,计算方式同步骤A1-4,通过在每个簇质心周围取一个很小的区间块,同样使用上述方式计算密度,若其密度明显小于整个簇密度,则判定为噪声区块,后续的步骤将排除这些簇以改善聚类效果并节省计算时间;
由于在步骤A2-1中采用切分点进行切割时,一些零散的点可能会被强行切分到另一簇中,因此需要根据现有簇的划分重新分配数据点,恢复可能被分裂阶段中所割裂的周边点。依次计算每个点到所有簇的质心间的欧氏距离,并将每个点分配给距离最近的簇;A2-3:合并步骤A2-2中重新分配后的集群区块:
与步骤A2-1对称,只要可以提高整体聚类质量,就会合并在步骤A2-2中生成的簇;在每一次迭代中,选择合并后WCSS增加最少的两个簇,以CH-index判定合并效果,如果合并后使CH-index增加,则将这两个簇合并为一个新的簇,否则整个合并阶段结束;通常只需要考虑将相邻的簇进行合并,因为它们合并对WCSS的增幅较小;
A2-4:为合并后的簇重新分配点,生成聚类簇;
A3:整合步骤A1和A2的两阶段聚类结果:
在步骤A1生成的每一个簇Ci中,其时序形状较为相似,但是对于原始数据集D,簇内数据的数值分布仍比较广泛。因此在生成聚类集合C后,在数据集D中根据聚类结果C分组,生成对应的聚类集合C′=(C′1,C′2,...,C′k),对C′中的每一个簇执行步骤A2-1至A2-4,进一步划分数值不同的簇;经过两阶段聚类后,将相似形状与相似数值的序列都划分到同一簇中,生成最终聚类集合Cl,代表了具有相似行为状态的群体。
S2:根据电力时序数据计算时序异常得分,生成所有数据的异常得分集合:
本实施例中提出了一种基于分割树模型的时间序列异常检测算法,用于识别出时序数据中的全局异常与上下文异常,且能够计算出每个时间点对应的异常得分;
步骤S2的具体过程包括如下步骤:
B1:初始化树:
设树的叶节点数量为t,则选取时序数据x中前t个点进行初始化,初始化的步骤与IForest类似,在t个点的值域范围内随机选取一个切分点,将数据划分为两个子集,不断迭代划分直到每个叶子结点都只包含一个数据点;
B2:插入新的叶节点:
通过插入叶节点,对新增时间点进行检测,能够在流处理下应对时序异常检测问题,弥补了IForest在面对流式数据时,每次新增数据需要重新构建树,整体耗时较高的问题。在插入节点时,需要满足插入前后树模型的状态分布十分接近。将数据点xt+1插入树中,其具体步骤为:
B2-1:判断树中是否有重复叶子节点:
重复叶子节点即值相同的节点,若有则直接插入该节点中,若无,则继续下一步骤;B2-2:搜索插入范围:
搜索插入范围是一个递归过程,首先从树的根节点开始向下搜索。设树的根节点为Q,Q下属所有点的边界为B={[l1,h1],[l2,h2],...,[lc,hc]},其中l1代表点第一维度的最小值,h1代表点第一维度的最大值,根据插入点更新Q的边界,具体为:
其中,xt+1,i为xt+1点的第i维度,为更新后的边界;
通过一个随机数同时确定待搜索维度与划分点,具体如下:
/>
其中,j为搜索维度,c为搜索的切分点;
依据搜索维度和切分点进行节点插入判断的方式为:
(1)若创建一个父节点C,其属性对应搜索维度j和切分点c,使用C替换当前节点;
(2)若设根节点Q划分子树的维度和值分别为p、q,则若xt+1,p≤q,则继续搜索Q的左子节点Ql;若xt+1,p>q,则继续搜索Q的右子节点Qr;搜索流程与上述相同,将节点Q替换为当前的搜索节点,直到搜索流程满足判断条件(1)时结束;
B2-3:插入叶节点:
当步骤B2-2结束后,生成新父节点C,将数据点作为C的子节点插入树中,具体为:
其中,Cl和Cr分别为C的左子节点和右子节点,Pt+1为当前数据点xt+1对应的叶节点,S为搜索结束时所在的节点;
B3:计算节点异常得分:
异常性质判定的思想是如果一个点随着该点的加入而使模型的复杂性大幅增加,则认为该点是异常点。将点从树中删除后,树模型复杂度的变化量即为点的位移,点的位移代表了该点的异常程度,位移越大,则点的异常程度越大;
点位移的计算如下:
其中,Z代表当前树T中所有的点的集合,Z-{xt+1}代表将xt+1从Z中排除,T′为T删除xt+1点形成的树,d(y,Z,T)代表点y在树T中的深度;
考虑到异常值可能存在的重复或近似重复的情况,此时删除异常点对整棵树的结构影响可能不会很大,使异常点的位移程度降低。为了解决这个问题,使用点的共同位移扩展位移的概念,设x为要移除的点,为包含xt+1的节点,即xt+1对应的父节点,祖父节点等,则共同移位的定义是:当逐个移除点集/>中的节点时,树中点的位移预期变化的最大值,其公式定义为:
其中,代表点集/>中节点的数量,T″为T删除/>形成的树;
B4:删除最早节点:
当树中叶节点的数量大于最大值t时,删除插入最早的叶节点;首先找到需要删除节点的兄弟节点R与父节点P,将该节点与父节点P从树中移除,并使用R取代父节点P,形成新的树;
B5:对时序数据中的数据点依次执行步骤B2至B4,计算每个时间点的异常得分;
B6:重复步骤B1至B5,建立多个树模型并计算得分,使用所有树得分的平均值代表每个点的最终得分,表示如下:
其中,代表数据x对应的最终异常得分,/>为第i个点的平均得分,Nt为建立树的总数量,/>为第l棵树第i个点的得分;
B7:对于每条数据x,执行步骤B1至B6,检测该条数据每个时间点对应的异常得分,生成所有数据的异常得分集合
S3:根据步骤S1的聚类结果和步骤S2的异常得分集合,进行计及行为共性的电力时序数据异常识别:
当电网中的电器元件或用电客户等受到外部因素的影响时,其行为状态会发生变化。以用电行为为例,在节假日期间工厂停工可能导致用电量急剧下降。如果仅考虑单一用户,这可能被视为异常状况。然而,在整个工厂群体中,出现的共同用电下降趋势是由于外部环境因素引起的正常波动,不应被视为异常情况。类似的,周末与节假日期间的居民户日间用电量可能会呈突然增长趋势,从而被视为异常。因此仅根据对单一元件或用户的异常检测及识别可能会导致假异常的增多,需要结合行为共性来具体考虑。本发明提出了一种计及行为共性的异常判定方法,进一步识别出时序中的集合异常;
步骤S3的具体过程包括如下步骤:
C1:计及行为共性的异常计算:
根据步骤S1的行为共性分析的结果Cl,将时序数据分为若干簇;计算每簇样本的时间序列数据均值,均值可以体现每个簇的行为共性,计算方式如下:
其中,mi是簇Ci的时序均值,|Ci|代表簇Ci的大小;
对Cl中每个簇的时序均值mi执行步骤B1至B6,得到每个簇的共性异常得分,代表了每个簇的所有时间点的整体异常情况;
C2:根据共性异常结果进行异常修正:
依据上述描述,若群体内呈现统一的异常趋势则不认为是异常,因此通过群体异常得分修正时间序列自身的异常得分。设时序数据x(j)∈Ci,簇Ci的共性异常得分为对得分进行归一化并计算差异得到修正后的异常得分,归一化计算方式为:
S′=(s′1,s′2,…,s′m)
其中,max(S)和min(S)分为别序列S的最大值和最小值,si为第i个维度,S′为归一化结果;
则点x(j)的修正异常得分的计算方式为:
其中,Abs(*)代表取绝对值操作,和/>为归一化后的得分;
通过修正后的异常得分,消除了单条数据与群体之间的差异性,可以避免由于群体共性趋势变化导致的假异常的出现;
C3:集合异常识别,由于时序数据中不仅仅有单点异常,还存在集合异常,需要进一步处理。包括如下步骤:
C3-1:异常点确认:
对于修正后的异常得分给定一个概率阈值p1,使用分位数方法初步确认最异常的时间点集合,即:
其中,li代表第i点是否异常,1为异常,0为正常;t(p)代表在概率p1下的分位数的值,如90分位数表示在数据正序排列下,位于第90%数据处对应的值;
选出所有结果为1的点,形成包含q个异常时间点的集合A={a1,a2,…,aq},其中ai为具体的时间点,下标{1,2…,q}代表时间点的先后顺序;
C3-2:异常片段划分:
由于集合异常通常位于相邻时间点,其异常值较为相似,根据步骤B3中的理论,相似异常点的异常得分可能会降低,即使在步骤B3中有所改进,仍会造成一定影响。因此,对于A中的异常点ai,分别向其前后时间点搜索,给定阈值p2且p2<p1,使用步骤C3-1中的方法确认异常点,直到前后都为正常点,将新的异常点与ai合并为一个异常片段Seqi;类似的,对A中所有点进行搜索,生成异常片段集合A′,表示为:
A′={Seq1,Seq2,…,Seqq}
Seqi={*′,ai,*″}
其中,*代表可能存在若干个点,也可能为空,*′和*″分别代表点ai前和后可能存在的异常点;若存在,则代表Seqi为一个异常片段,若*′和*″都为空,则代表Seqi为单个异常点。
S4:根据步骤S3的异常识别结果与步骤S1的聚类结果,进行计及行为共性的电力时序数据异常修复:
经过步骤S1的行为共性分析后,相似行为状态的样本被划分为一簇,即相同时间段数据的形状与数值大小相似;另一方面,由于电力时序数据大多具有周期性规律,如天、周、月等,不同周期的状态也具有一定的相似性。因此,本发明提出了一种基于相似时间序列片段匹配的异常修复方法,参考聚类簇内其他样本的数据与自身序列中其他时间段的数据,匹配最相似的片段对异常值进行修复,增加了异常修复的合理性与可解释性。
步骤S4中异常修复具体包括如下步骤:
D1:匹配簇内相似序列片段,包括如下步骤:
D1-1:计算近似周期:
设时序数据x(j)对应的异常片段集合为A(j)′,首先使用快速傅里叶变换FFT计算x(j)的近似周期,设y(j)和freq(j)为FFT变换后的频域数据与频率信息。FFT可以将时域数据转换为频域数据,通过查找频域数据中的峰值,可以确定时序数据中的主要周期性成分;
其次,找到频域数据的峰值,并找到峰值点对应的频率,可以表示为:
index=argmax(Abs(y(j)))
freqm=freq(index)
其中,index表示频域数据的峰值对应的下标,freqm为对应频率值;
最后将频率转换为周期,即:
D1-2:匹配形状最相似的序列片段:
对于A(j)′中任意一个异常片段Seqi={*′,ai,*″},首先提取其所在周期对应的时间戳片段tseqi与周期数据tsi,即:
tseqi=(ai-T//2,ai-T//2+T)
tsi=x(j)(tseqi)
其中,x(j)(*)表示取时序数据中对应的时间戳片段;
由于同一簇内的时序数据形状相似,周期应一致或基本相同,因此选择x(j)所在簇内所有时序,并截取时间戳tseqi对应的片段,表示为其中对C′k中所有数据与tsi使用步骤A1-1中的方法进行标准化,生成Ck″与tsi′,使用步骤A1-3中描述的形状距离计算tsi′与C″k中每条数据的距离,选出在C″k内形状最相似的l条片段对应的未标准化片段Ds={x1i,x2i,…,xli};
D1-3:通过计算tsi与Ds中每条数据的欧式距离,找出与Ds中欧式距离最小的片段,则认为该片段即为所在簇内与tsi最相似的序列片段,记为xmini;
D2:匹配自身相似周期片段:
由于在自身序列内,通常相近周期的数据最为相似,因此对于异常周期片段tsi,分别向其前后按周期进行搜索若干个周期,并用Cosine距离计算两个片段的距离,其过程表示如下:
tsi(r)=x(j)(ai-T//2+rT,ai-T//2+(r+1)T)
dis(r)=Cos(tsi(r),tsi)
其中,tsi(r)表示距离tsir个周期的片段数据,r为正时是向后搜索,r为负时是向前搜索。dis(r)是tsi和tsi(r)的Cosine距离;
选择Cosine距离最小的片段作为自身序列中最相似的片段,记为tsi(d);
D3:依据相似片段修复异常:
通过步骤D1与D2,分别匹配到簇内序列与自身序列内最相似的片段作为异常数据修复的参考;为了进一步消除片段间的差异,对相似片段使用步骤A1-1中的方法进行标准化;依据异常段Seqi在tsi中的位置,分别提取tsi(d)′与xmini′中对应位置的值作为待修复值,过程表示如下:
resi=tsi(d)′(indi)
reci=xmini′(indi)
其中,tsi(r)表示距离tsir个周期的片段数据,indi代表异常段Seqi在tsi中的相对位置,resi代表自身序列对应计算的修复值,reci代表簇内相似序列对应计算的修复值;
综合考量簇内序列与自身序列,将二者的对应修复值进行平均化,并执行逆标准化,恢复tsi的分布,得到最终修复结果,过程如下:
re=Mean(tsi)+Std(tsi)*re′
其中,re′i为综合平均结果,re为逆标准化结果,即异常片段Seqi对应的最终修复值。
实施例2:
为了验证本发明方法的有效性,本实施例中将实施例1提供的方案进行具体实验验证,具体如下:
一、数据展示
采用某区域用户的实时用电量数据作为电力时间序列数据的示例开展实验,该数据每两次监测间隔15分钟。图2为其中两位用户的数据示例,其中每行数据代表其中某位用户的在某一时间点对应的监测值。
二、群体行为共性识别
由于时间点维度过大会导致聚类速度过慢的问题,因此将上述数据进行均值处理,采用每月平均用电量作为聚类算法的输入,降低聚类数据维数,并能更好的体现出群体行为状态的整体变化。
图3为步骤A1的结果,可以看出,不同趋势的数据被划分到不同簇中,如簇2中的用户在2019年2月、7月、9月的用电有明显上升趋势,而8月用电趋势下降;簇3中的用户在2月和8月有明显的用电上升趋势;簇6中的用户在9月份用电趋势上升,而在10月突然下降,且在全年中处于低点。
图4代表步骤A2及A3的结果,其中簇(2,1)、(2,2)、(2,3)由图4中的簇2经过第二阶段的聚类形成,对应均值分别约为2000、300、5000,且都保留了各自簇内原有的形状趋势,在2月、7月、9月的用电量上升;图4中的簇6也被划分为三个簇,即(6,1)、(6,2)和(6,3),对应均值分别约,1000、300和6000,说明步骤A2中能够划分出不同用电量的簇。经过两个阶段的聚类,能够识别更精细的时序行为。
三、异常检测及异常识别
图5为随机抽取某一样本的监测数据在步骤S2中得到的异常检测结果,图中上方蓝色线为原始数据,下方红色线为对应时间的异常得分。由图可知,数据中有3处较为明显异常,分别出现在2月19日、3月3日与3月11日左右,对应异常得分也有明显升高,其中3月11日处的数据突减速度最快,异常得分在图中也最高。
图6为共性异常的检测结果,即该样本所在簇的均值数据在步骤S2中的得分。可以看出,该群体在2月19日与3月11日处有集体突减的趋势,使均值走势与图5相似,对应异常得分升高。
图7为步骤C2及步骤C3的结果,通过共性异常结果对数据异常进行修正并识别异常片段。其中步骤C3中设定的阈值p1为99.9,阈值p2为98,图中圆点代表被标记为异常的片段。由图所示,2月19日与3月11日处的数据与群体趋势相似,修正后的异常得分明显减少,不被判定为异常;3月3日处的突减点最终被判定为异常。
四、异常修复
图8为序列片段匹配结果,其中图8中的a为步骤D1的簇内相似序列匹配结果,图8中的b为步骤D2的自身其他周期的相似匹配结果。其中蓝色实线为原始数据,黄色虚线为匹配的相似序列。可以看到,除了异常点外,其他时间点在两个片段中均有较高的相似性,自身序列的其他周期相似度更高。图9为步骤D3的修复结果,其中蓝色实线为原始数据,红色点为异常点对应的修复值,从图中可以看出,修复后的值均处于合理范围内。
对比例1:
为了验证本发明方法的实际效果,本实施例中将实施例1提供的方案分别与现有方法进行效果对比,具体如下:
一、时序聚类效果对比
图10和图11分别是使用实施例1提出的两阶段融合的时间序列聚类算法和使用KMeans算法在电力数据上的聚类结果,图中的红线代表了簇的均值,图10中簇(2,1)、(2,2)、(2,3)、由簇2经过步骤A2进一步聚类而来。对比图10和图11可以看出,KMeans能将时序数值相似的数据划分为一类,但是同一簇中的形状较为混乱,不同簇的形状没有明显区分,对时序形状的识别能力较差;而两阶段融合的时间序列聚类算法在不同簇中的形状或数值均有一定的差异,如簇(2,1)和(6,1)的趋势不同,簇(2,1)和(2,2)的数值不同,能够更精准的识别出各类用电行为差异。
二、时序异常检测效果对比
图12和图13分别是本发明步骤S2中提出的时间序列异常检测算法与IForest算法在电力时序数据上的异常检测结果,图中蓝色线为原始数据,红色线为对应点的异常得分,得分越大代表越异常,图中两个标点分别为全局异常和上下文异常的一个示例。对比图12和图13可以看出,在①点处,IForest和本发明的算法对应的异常得分都处于较高水平,说明二者都能识别出全局异常;在②点处,图12中的异常得分在其周围属于较高水平,而图13中显示的得分相对其前段时间明显偏低,说明IForest无法很好的识别出局部异常,而本发明的算法能有效识别。
三、时序修复效果对比
图14是本发明步骤S4中的基于匹配的修复方法结果,图15是采用均值平滑方法的修复结果,均值平滑方法及采用异常点前后的数据均值作为异常的修复值。可以看出,两种方法的结果都具有合理性,但是图15的修复结果对于集合异常的适配性更差,所有的异常值都被修复为同样的值。相对而言,图14的修复结果能更好的反应出时序的变化。
Claims (10)
1.一种计及行为共性的电力时序数据异常检测与修复方法,其特征在于,包括如下步骤:
S1:根据电力时序数据进行行为共性分析,获取到电力时序数据的群体聚类结果;
S2:根据电力时序数据计算时序异常得分,生成所有数据的异常得分集合;
S3:根据步骤S1的聚类结果和步骤S2的异常得分集合,进行计及行为共性的电力时序数据异常识别;
S4:根据步骤S3的异常识别结果与步骤S1的聚类结果,进行计及行为共性的电力时序数据异常修复。
2.根据权利要求1所述的一种计及行为共性的电力时序数据异常检测与修复方法,其特征在于,所述步骤S1的行为共性分析包括如下步骤:
A1:区分不同形状的时间序列;
A2:进一步区分不同数值大小的时间序列;
A3:整合步骤A1和A2的两阶段聚类结果。
3.根据权利要求2所述的一种计及行为共性的电力时序数据异常检测与修复方法,其特征在于,所述步骤A1~A3的具体过程为:
A1:区分不同形状的时间序列,包括如下步骤:
A1-1:时序数据标准化:设电力数据集D=(x(1),x(2),…,x(n))中共包含n个样本,每一个样本的数据x(i)共包含d个时间点的值,即对每一条时序数据分别进行标准化处理;
标准化方法如下:
x′=(x1′,x2′,…,xd′)
其中,xi是x的第i个维度,Mean(x)是原始数据x的均值,Std(x)是原始数据x的标准差,x′是标准化后的电力数据,对所有数据标准化生成标准化数据集D′=(x(1)',x(2)',…,x(n)');
A1-2:初始化质心:在标准化数据集D′中任意选取若干个样本点作为聚类的簇质心;
A1-3:计算所有点与质心间的形状距离:
将一阶差分应用于每个标准化后的数据点x',生成一阶差分结果t,其计算方式如下:
t=(x2′-x1′,x3′-x2′,…,xd′-xd-1′)
依据差分结果,计算任意序列与质心间形状差异,其计算方式如下:
其中,μl是第l个质心,和/>分别是x(j)'和μl的差分序列,d是x(j)'的维度,即时间点的数量,θ为时间差异因子,用于控制单个时间点差异的影响程度;
A1-4:重新分配点,生成新的质心:
依据形状距离的计算结果,将每个数据点分配到最接近的质心所在的簇,根据新划分的数据点重新计算每个簇的质心,计算方式如下:
其中,μi为簇Ci的质心,ni为簇Ci的包含点的个数;
A1-5:重复步骤A1-3至A1-4,直到质心收敛;
A1-6:使用手肘法选择聚类数:
选择一系列可能的k值,即步骤A1-2中初始化质心的数量;对每个k值执行步骤A1-1至A1-5得到聚类结果,并计算对应的误差平方和,计算方式如下:
其中,μi为簇Ci的质心,x为簇Ci中的点;
随着k值的增大,SSE不断减小,选择k值与SSE形成的曲线拐点对应的k值作为最佳的聚类数,此时SSE的值随着k值的继续增大而趋于平缓,最终形成若干个形状聚类簇C=(C1,C2,…,Ck);
A2:进一步区分不同数值大小的时间序列,包括如下步骤:
A2-1:寻找切分维度与切分点对数据进行切分:
切分过程从待切分数据整体开始,即步骤A1任意聚类结果Ci所属的数据样本,将数据整体逐步切分为一个个簇块,切分以最小化每个的分块的簇内距离平方和(WCSS)为目标,WCSS的计算方式如下:
其中,Qi为簇内点第i维度的距离平方和,si为簇内点第i维度的累积分布和,n为点的数量;
通过线性扫描并计算空间中每个点的累积边际分布,快速计算WCSS变化并确认且切分的维度和位置,簇S中的边际分布的计算方式如下:
mci(h)=|x∈S∧xi=h|
其中,mci(h)和msi(h)分别表示在第i维度坐标h处的边际计数与边际分布,|·|代表计数函数;则累积边际计数cmci(h)与累积边际分布计算cmsi(h)为:
cmci(h)=|x∈S∧xi≤h|
使用CH-Index判断分裂的合理性,如果它因分裂而增加,则继续分裂阶段,否则认为分裂无效,不执行该次分裂;设数据已被划分为k个簇,则CH-Index的计算方式为:
其中,BCSS(S)为簇间距离和,为第i簇的质心,/>为所有数据的质心,WCSS(S)为所有簇的簇内距离和,||·||2代表欧式距离,n为数据的总数量;
在分裂过程结束后,生成若干个分裂区块(簇)S=(S1,S2,…,Sl);
A2-2:识别噪声簇并重新分配点:
依据密度识别只包含噪声点的簇,其中,簇Si的密度计算方式如下:
Wj=max(xj)-min(xj)x∈Si
其中,Wj为簇Si在第j维度分布的范围,|Si|为簇内点的数量;
计算每个簇Si的质心mi,计算方式同步骤A1-4,通过在每个簇质心周围取一个很小的区间块,同样使用上述方式计算密度,若其密度明显小于整个簇密度,则判定为噪声区块;
依次计算每个点到所有簇的质心间的欧氏距离,并将每个点分配给距离最近的簇;
A2-3:合并步骤A2-2中重新分配后的集群区块:
与步骤A2-1对称,只要可以提高整体聚类质量,就会合并在步骤A2-2中生成的簇;在每一次迭代中,选择合并后WCSS增加最少的两个簇,以CH-index判定合并效果,如果合并后使CH-index增加,则将这两个簇合并为一个新的簇,否则整个合并阶段结束;
A2-4:为合并后的簇重新分配点,生成聚类簇;
A3:整合步骤A1和A2的两阶段聚类结果:
在生成形状聚类集合C后,在数据集D中根据聚类结果C分组,生成对应的聚类集合C′=(C′1,C′2,...,C′k),对C′中的每一个簇执行步骤A2-1至A2-4,进一步划分数值不同的簇;经过两阶段聚类后,将相似形状与相似数值的序列都划分到同一簇中,生成最终聚类集合Cl。
4.根据权利要求1所述的一种计及行为共性的电力时序数据异常检测与修复方法,其特征在于,所述步骤S2包括如下步骤:
B1:初始化树;
B2:插入新的叶节点;
B3:计算节点异常得分;
B4:删除最早节点;
B5:对时序数据中的数据点依次执行步骤B2至B4,计算每个时间点的异常得分;
B6:重复步骤B1至B5,建立多个树模型并计算最终得分;
B7:对于每条数据x,执行步骤B1至B6,计算所有数据的异常得分。
5.根据权利要求4所述的一种计及行为共性的电力时序数据异常检测与修复方法,其特征在于,所述步骤B1~B7的具体过程为:
B1:初始化树:
设树的叶节点数量为t,则选取时序数据x中前t个点进行初始化,在t个点的值域范围内随机选取一个切分点,将数据划分为两个子集,不断迭代划分直到每个叶子结点都只包含一个数据点;
B2:插入新的叶节点:
将数据点xt+1插入树中,其具体步骤为:
B2-1:判断树中是否有重复叶子节点:
重复叶子节点即值相同的节点,若有则直接插入该节点中,若无,则继续下一步骤;
B2-2:搜索插入范围:
设树的根节点为Q,Q下属所有点的边界为B={[l1,h1],[l2,h2],...,[lc,hc]},其中l1代表点第一维度的最小值,h1代表点第一维度的最大值,根据插入点更新Q的边界,具体为:
其中,xt+1,i为xt+1点的第i维度,为更新后的边界;
通过一个随机数同时确定待搜索维度与划分点,具体如下:
其中,j为搜索维度,c为搜索的切分点;
依据搜索维度和切分点进行节点判断插入点的位置;
B2-3:插入叶节点:
当步骤B2-2结束后,生成新父节点C,将数据点作为C的子节点插入树中,具体为:
其中,Cl和Cr分别为C的左子节点和右子节点,Pt+1为当前数据点xt+1对应的叶节点,S为搜索结束时所在的节点;
B3:计算节点异常得分:
将点从树中删除后,树模型复杂度的变化量即为点的位移,点的位移代表了该点的异常程度,计算方式如下:
其中,Z代表当前树T中所有的点的集合,Z-{xt+1}代表将xt+1从Z中排除,T′为T删除xt+1点形成的树,d(y,Z,T)代表点y在树T中的深度;
设x为要移除的点,为包含xt+1的节点,则共同移位的定义是:当逐个移除点集/>中的节点时,树中点的位移预期变化的最大值,其公式定义为:
其中,代表点集/>中节点的数量,T″为T删除/>形成的树;
B4:删除最早节点:
当树中叶节点的数量大于最大值t时,删除插入最早的叶节点;首先找到需要删除节点的兄弟节点R与父节点P,将该节点与父节点P从树中移除,并使用R取代父节点P,形成新的树;
B5:对时序数据中的数据点依次执行步骤B2至B4,计算每个时间点的异常得分;
B6:重复步骤B1至B5,建立多个树模型并计算得分,使用所有树得分的平均值代表每个点的最终得分,表示如下:
其中,代表数据x对应的最终异常得分,/>为第i个点的平均得分,Nt为建立树的总数量,/>为第l棵树第i个点的得分;
B7:对于每条数据x,执行步骤B1至B6,检测该条数据每个时间点对应的异常得分,生成所有数据的异常得分集合
6.根据权利要求5所述的一种计及行为共性的电力时序数据异常检测与修复方法,其特征在于,所述步骤B2-2中依据搜索维度和切分点进行节点插入判断的方式为:
(1)若创建一个父节点C,其属性对应搜索维度j和切分点c,使用C替换当前节点;
(2)若设根节点Q向下划分子树的维度和值分别为p、q,则若xt+1,p≤q,则继续搜索Q的左子节点Ql;若xt+1,p>q,则继续搜索Q的右子节点Qr;将节点Q替换为当前的搜索节点,直到搜索流程满足判断条件(1)时结束。
7.根据权利要求1所述的一种计及行为共性的电力时序数据异常检测与修复方法,其特征在于,所述步骤S3包括如下步骤:
C1:计及行为共性的异常计算;
C2:根据共性异常结果进行异常修正;
C3:集合异常识别。
8.根据权利要求7所述的一种计及行为共性的电力时序数据异常检测与修复方法,其特征在于,所述步骤C1~C3的具体过程为:
C1:计及行为共性的异常计算:
根据步骤S1的行为共性分析的结果Cl,将时序数据分为若干簇;计算每簇样本的时间序列数据均值,计算方式如下:
其中,mi是簇Ci的时序均值,|Ci|代表簇Ci的大小;
对Cl中每个簇的时序均值mi执行步骤B1至B6,得到每个簇的共性异常得分,代表了每个簇的所有时间点的整体异常情况;
C2:根据共性异常结果进行异常修正:
设时序数据x(j)∈Ci,簇Ci的共性异常得分为对得分进行归一化并计算差异得到修正后的异常得分,归一化计算方式为:
S′=(s′1,s′2,…,s′m)
其中,max(S)和min(S)分为别序列S的最大值和最小值,si为第i个维度,S′为归一化结果;
则点x(j)的修正异常得分的计算方式为:
其中,Abs(*)代表取绝对值操作,和/>为归一化后的得分;
C3:集合异常识别,包括如下步骤:
C3-1:异常点确认:
对于修正后的异常得分给定一个概率阈值p1,使用分位数方法初步确认最异常的时间点集合,即:
其中,li代表第i点是否异常,1为异常,0为正常;t(p)代表在概率p1下的分位数的值,如90分位数表示在数据正序排列下,位于第90%数据处对应的值;
选出所有结果为1的点,形成包含q个异常时间点的集合A={a1,a2,…,aq},其中ai为具体的时间点,下标{1,2…,q}代表时间点的先后顺序;
C3-2:异常片段划分:
对于步骤C3-1结果A中的异常点ai,分别向其前后时间点搜索,给定阈值p2且p2<p1,使用步骤C3-1中的方法确认异常点,直到前后都为正常点,将新的异常点与ai合并为一个异常片段Seqi;对A中所有点进行搜索,生成异常片段集合A′,表示为:
A′={Seq1,Seq2,…,Seqq}
Seqi={*′,ai,*″}
其中,*代表可能存在若干个点,也可能为空,*′和*″分别代表点ai前和后可能存在的异常点;若存在,则代表Seqi为一个异常片段,若*′和*″都为空,则代表Seqi为单个异常点。
9.根据权利要求1所述的一种计及行为共性的电力时序数据异常检测与修复方法,其特征在于,所述步骤S4具体包括如下步骤:
D1:匹配簇内相似序列片段;
D2:匹配自身相似周期片段;
D3:依据相似片段修复异常。
10.根据权利要求9所述的一种计及行为共性的电力时序数据异常检测与修复方法,其特征在于,所述步骤D1~D3的具体过程为:
D1:匹配簇内相似序列片段,包括如下步骤:
D1-1:计算近似周期:
设时序数据x(j)对应的异常片段集合为A(j)′,首先使用快速傅里叶变换FFT计算x(j)的近似周期,设y(j)和freq(j)为FFT变换后的频域数据与频率信息;
其次,找到频域数据的峰值,并找到峰值点对应的频率,表示为:
index=argmax(Abs(y(j)))
freqm=freq(j)(index)
其中,index表示频域数据的峰值对应的下标,freqm为对应频率值;
最后将频率转换为周期,即:
D1-2:匹配形状最相似的序列片段:
对于A(j)′中任意一个异常片段Seqi={*′,ai,*″},首先提取其所在周期对应的时间戳片段tseqi与周期数据tsi,即:
tseqi=(ai-T//2,ai-T//2+T)
tsi=x(j)(tseqi)
其中,x(j)(*)表示取时序数据中对应的时间戳片段;
选择x(j)所在簇内所有时序,并截取时间戳tseqi对应的片段,表示为其中/>对C′k中所有数据与tsi使用步骤A1-1中的方法进行标准化,生成C″k与ts′i,使用步骤A1-3中描述的形状距离计算tsi′与C″k中每条数据的距离,选出在C″k内形状最相似的l条片段对应的未标准化片段Ds={x1i,x2i,…,xli};
D1-3:通过计算tsi与Ds中每条数据的欧式距离,找出与Ds中欧式距离最小的片段,则认为该片段即为所在簇内与tsi最相似的序列片段,记为xmini;
D2:匹配自身相似周期片段:
对于异常周期片段tsi,分别向其前后按周期进行搜索若干个周期,并用Cosine距离计算两个片段的距离,其过程表示如下:
tsi(r)=x(j)(ai-T//2+rT,ai-T//2+(r+1)T)
dis(r)=Cos(tsi(r),tsi)
其中,tsi(r)表示距离tsir个周期的片段数据,r为正时是向后搜索,r为负时是向前搜索。dis(r)是tsi和tsi(r)的Cosine距离;
选择Cosine距离最小的片段作为自身序列中最相似的片段,记为tsi(d);
D3:依据相似片段修复异常:
通过步骤D1与D2,分别匹配到簇内序列与自身序列内最相似的片段作为异常数据修复的参考;对相似片段使用步骤A1-1中的方法进行标准化;依据异常段Seqi在tsi中的位置,分别提取tsi(d)′与xmini′中对应位置的值作为待修复值,过程表示如下:
resi=tsi(d)′(indi)
reci=xmini′(indi)
其中,tsi(d)′和xmini′分别为tsi(d)与xmini的标准化结果,indi代表异常段Seqi在tsi中的相对位置,resi代表自身序列对应计算的修复值,reci代表簇内相似序列对应计算的修复值;
综合考量簇内序列与自身序列,将二者的对应修复值进行平均化,并执行逆标准化,恢复tsi的分布,得到最终修复结果,过程如下:
re=Mean(tsi)+Std(tsi)*re′
其中,re′i为综合平均结果,re为逆标准化结果,即异常片段Seqi对应的最终修复值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311729543.2A CN117763305A (zh) | 2023-12-15 | 2023-12-15 | 一种计及行为共性的电力时序数据异常检测与修复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311729543.2A CN117763305A (zh) | 2023-12-15 | 2023-12-15 | 一种计及行为共性的电力时序数据异常检测与修复方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117763305A true CN117763305A (zh) | 2024-03-26 |
Family
ID=90319282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311729543.2A Pending CN117763305A (zh) | 2023-12-15 | 2023-12-15 | 一种计及行为共性的电力时序数据异常检测与修复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117763305A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118157331A (zh) * | 2024-05-11 | 2024-06-07 | 国网福建省电力有限公司 | 一种基于ai的电网远程指挥运维终端 |
-
2023
- 2023-12-15 CN CN202311729543.2A patent/CN117763305A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118157331A (zh) * | 2024-05-11 | 2024-06-07 | 国网福建省电力有限公司 | 一种基于ai的电网远程指挥运维终端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111091233B (zh) | 一种风电场短期风电预测建模方法 | |
CN105631596B (zh) | 一种基于多维分段拟合的设备故障诊断方法 | |
CN117763305A (zh) | 一种计及行为共性的电力时序数据异常检测与修复方法 | |
CN111401573B (zh) | 一种工况状态建模与修正模型方法 | |
CN111401599A (zh) | 一种基于相似性搜索和lstm神经网络的水位预测方法 | |
CN110795690A (zh) | 风电场运行异常数据检测方法 | |
Liang et al. | Wind power curve data cleaning by image thresholding based on class uncertainty and shape dissimilarity | |
CN110717610A (zh) | 一种基于数据挖掘的风电功率预测方法 | |
Purohit et al. | Deep autoencoding GMM-based unsupervised anomaly detection in acoustic signals and its hyper-parameter optimization | |
JP7276488B2 (ja) | 推定プログラム、推定方法、情報処理装置、再学習プログラムおよび再学習方法 | |
CN114861788A (zh) | 一种基于dbscan聚类的负荷异常检测方法及系统 | |
CN110110339B (zh) | 一种日前水文预报误差校正方法及系统 | |
CN117033912B (zh) | 一种设备故障预测方法、装置、可读存储介质及电子设备 | |
CN111275136B (zh) | 基于小样本下的故障预测系统及其预警方法 | |
CN115021679A (zh) | 一种基于多维离群点检测的光伏设备故障检测方法 | |
CN110084301B (zh) | 一种基于隐马尔可夫模型的多工况过程工况辨识方法 | |
Wang et al. | DiffLoad: uncertainty quantification in load forecasting with diffusion model | |
CN117633688A (zh) | 一种基于岭回归-k均值聚类-LOF-LSTM融合算法的大规模电力数据异常检测方法 | |
CN109635008B (zh) | 一种基于机器学习的设备故障检测方法 | |
CN110674882A (zh) | 一种基于傅立叶函数变换的异常点检测方法 | |
CN111026741A (zh) | 基于时间序列相似性的数据清洗方法及装置 | |
CN115392710A (zh) | 一种基于数据过滤的风电机组运行决策方法及系统 | |
Au et al. | A framework of irregularity enlightenment for data pre-processing in data mining | |
CN114493234A (zh) | 一种供水管网关键压力控制点的识别方法 | |
CN116956089A (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 |