掌桥专利:专业的专利平台
掌桥专利
首页

基于机器学习和动态阈值的燃气流量异常检测方法及系统

文献发布时间:2023-06-19 19:28:50


基于机器学习和动态阈值的燃气流量异常检测方法及系统

技术领域

本发明涉及数据异常检测领域,尤其涉及一种基于机器学习和动态阈值的燃气流量异常检测方法及系统。

背景技术

随着经济社会的不断发展和进步,在绿色环保理念的推动下,使用绿色清洁能源的理念越来越深入人心。其中,天然气的计量发展和使用是当下社会经济发展和提升环境质量,推动绿色环保的必然要求和重要趋势。相比较传统的煤炭污染,天然气不论是作为能源的优势还是在绿色环保方面都脱颖而出。正是由于天然气这种明显优势,它被广泛地应用在社会发展中的各行各业。

因表具故障或者人为因素,会导致燃气流量计的流量出现异常,及时发现这类异常可以及时进行巡检干预。传统的针对流量的异常检测方法往往只是简单的通过设定阈值进行异常的检测,其中阈值的设定需要专业人员参与。然而传统的异常检测方法并不能发现流量序列中存在的深层次的异常信息。另一方面,针对不同的表具数据,传统的异常检测方法设定的阈值往往是固定的,并不能针对特定的使用情况进行自动调整,因此传统检测方法可能存在更大的偏差。

发明内容

为了克服上述现有技术的不足,本发明提供一种基于机器学习和动态阈值的燃气流量异常检测方法及系统,可有效解决上述问题。

本发明具体采用的技术方案如下:

第一方面,本发明提供了一种基于机器学习和动态阈值的燃气流量异常检测方法及系统,其包括以下步骤:

S1、对所有燃气用户的燃气流量计上传的标况累计流量序列分别进行均值重采样,并以线性插值方式填充空缺值,再对标况累计流量重采样序列进行一阶差分,得到不同燃气流量计各自对应的标况流量增量序列;

S2、针对S1中得到的所有标况流量增量序列,分别以天为单位从中提取出日增量序列X

S3、利用S2中得到的训练样本集合,以基于一维卷积的自编码网络模型为机器学习模型进行训练,使其能够以日增量序列和时间信息编码为输入,生成重构序列;所述基于一维卷积的自编码网络模型由第一CNN卷积层、池化层、上采样层、第二CNN卷积层、第三CNN卷积层和全连接层级联而成;

S4、针对目标燃气用户和需要进行异常检测的目标时段,从其对应的燃气流量计上传的数据中提取并处理生成目标时段内的标况流量增量序列;将目标时段内的标况流量增量序列按照与所述训练样本相同的构建方式生成其中每一天的日增量序列和时间信息编码,再通过S3训练后得到的自编码网络模型生成目标时段内的重构序列;计算目标时段内的重构序列与目标时段内的标况流量增量序列之间的误差序列,利用固定长度的滑窗对误差序列进行扫描,每个滑窗内分别通过指数加权移动平均误差分布进行动态阈值检测,判断是否存在超过动态阈值的序列异常值,若存在则视为在异常值对应时刻存在燃气流量异常情况。

作为上述第一方面的优选,所述S1具体包括以下子步骤:

S11、获取每个燃气用户的燃气流量计采集的原始标况累计流量序列,并对其进行均值重采样,生成具有固定间隔Δt的重采样流量序列

S12、对S11中得到的重采样流量序列Q中的空值点通过线性插值进行补全,以空值点两侧的流量值均值填充至空值点,从而得到重采样流量插值序列Q′;

S13、对S12得到的重采样插值序列Q′进行一阶差分,得到标况流量增量序列D=(d

作为上述第一方面的优选,所述S2具体包括以下子步骤:

S21、针对序列数据集中的每一条标况流量增量序列,以天为单位从中提取一系列长度为h的日增量序列,日期i对应的日增量序列为X

S22、针对S21中提取的每条日增量序列X

S23、将每条日增量序列X

作为上述第一方面的优选,所述S3具体包括以下子步骤:

S31、将训练样本集合中的训练样本输入基于一维卷积的自编码网络模型中,对于任一训练样本

其中,l=l1或l2;

将第一CNN卷积层中2u个一维卷积核的卷积结果

S32、将S31中得到的第一卷积结果输入至池化层中,进行最大池化操作后再输入至上采样层中进行上采样操作,输出2×h的上采样结果O

S33、将S32中上采样操作输出的上采样结果O

其中,l=l1或l2;

将第二CNN卷积层中2u个一维卷积核的卷积结果

S34.将S33中得到的第二卷积结果

其中

S35、将第三CNN卷积层输出的第三卷积结果

其中

S36、以X

作为上述第一方面的优选,所述S4具体包括以下子步骤:

S41、针对需要进行异常检测的目标燃气用户,根据获取其对应的燃气流量计上传的标况累计流量序列,再根据需要进行异常检测的目标时段从中提取相应子序列并按照S1中相同的均值重采样、线性插值补全和一阶差分处理后形成目标时段内的标况流量增量序列D=(d

S42、将n′天的日增量序列X

S43、计算目标时段内的标况流量增量序列D与标况流量增量重构序列

S44、对序列重构绝对误差e进行指数加权滑动平均(exponential weightedmoving average,EWMA)操作,得到重构序列EWMA误差

S45、针对S44中提取的每个滑窗内误差序列

其中

S46、遍历重构序列EWMA误差e

作为上述第一方面的优选,所述的时间间隔Δt取1h,所述日增量序列的长度为24。

作为上述第一方面的优选,所述基于一维卷积的自编码网络模型中,第一CNN卷积层和第二CNN卷积层中,取16,宽度l1取3,宽度l2取5。

作为上述第一方面的优选,所述S44中,滑窗宽度w取168。

作为上述第一方面的优选,所述S45中,数值倍数选择范围[a,b]为[2.5,12.5],遍历该范围时的间隔取0.5。

第二方面,本发明提供了一种基于卷积自编码网络和动态阈值的燃气流量异常检测系统,其包括:

序列数据获取模块,用于对所有燃气用户的燃气流量计上传的标况累计流量序列分别进行均值重采样,并以线性插值方式填充空缺值,再对标况累计流量重采样序列进行一阶差分,得到不同燃气流量计各自对应的标况流量增量序列;

训练样本构建模块,用于针对序列数据获取模块中得到的所有标况流量增量序列,分别以天为单位从中提取出日增量序列X

模型训练模块,用于利用训练样本构建模块中得到的训练样本集合,训练基于一维卷积的自编码网络模型,使其能够以日增量序列和时间信息编码为输入,生成重构序列;所述基于一维卷积的自编码网络模型由第一CNN卷积层、池化层、上采样层、第二CNN卷积层、第三CNN卷积层和全连接层级联而成;

异常检测模块,用于针对目标燃气用户和需要进行异常检测的目标时段,从其对应的燃气流量计上传的数据中提取并处理生成目标时段内的标况流量增量序列;将目标时段内的标况流量增量序列按照与所述训练样本相同的构建方式生成其中每一天的日增量序列和时间信息编码,再通过模型训练模块训练后得到的自编码网络模型生成目标时段内的重构序列;计算目标时段内的重构序列与目标时段内的标况流量增量序列之间的误差序列,利用固定长度的滑窗对误差序列进行扫描,每个滑窗内分别通过指数加权移动平均误差分布进行动态阈值检测,判断是否存在超过动态阈值的序列异常值,若存在则视为在异常值对应时刻存在燃气流量异常情况。

相对于现有技术而言,本发明提出的基于机器学习和动态阈值的燃气流量异常检测方法及系统,具有如下有益效果:

1、本发明基于燃气流量使用数据,通过机器学习方法提取燃气流量使用特征,并基于该特征完成流量异常值检测,具有精度高、可扩展性强等特点,可以即使捕捉异常信息,为相关人员提供指导。

2、本发明通过建立融合了时间信息的卷积自编码网络,更好地实现了对用户流量使用特征的提取。

3、本发明方法通过动态阈值方法综合考虑用户的不同用气状态,阈值会随着使用场景的不同进行动态的调整,能更好地对异常序列进行识别,提高了检测结果的准确性。

附图说明

图1为本发明方法的流程图;

图2为本发明训练用于提取用户流量使用特征的卷积自编码网络示意图;

图3为本发明与对照方法的实验结果对比图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施例的限制。本发明各个实施例中的技术特征在没有相互冲突的前提下,均可进行相应组合。

在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于区分描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。

如图1所示,本发明提供了一种基于机器学习和动态阈值的燃气流量异常检测方法及系统,该方法首先对燃气流量计上传的标况累积流量数据进行重采样、线性插值插值、一阶差分等操作,从而构建为标况流量增量序列数据集。利用该标况流量增量序列数据集可训练一个机器学习模型,从而通过在流量使用特征中融合日期信息加强对特征的提取,并使用机器学习模型挖掘流量使用特征。最后根据卷积自编码网络生成标况流量增量重构序列,使用动态重构误差阈值技术完成对流量异常值的检测。

在本发明的一个较佳实施例中,上述基于机器学习和动态阈值的燃气流量异常检测方法具体包括S1~S4步骤,下面对各步骤的具体实现方式进行展开描述。

S1、对所有燃气用户的燃气流量计上传的标况累计流量序列分别进行均值重采样,并以线性插值方式填充空缺值,再对标况累计流量重采样序列进行一阶差分,得到不同燃气流量计各自对应的标况流量增量序列。

在本发明的实施例中,上述步骤S1具体包括以下子步骤:

S11、获取每个燃气用户的燃气流量计采集的原始标况累计流量序列,并对其进行均值重采样,生成具有固定间隔Δt的重采样流量序列

S12、对S11中得到的重采样流量序列Q中的空值点通过线性插值进行补全,以空值点两侧的流量值均值填充至空值点,从而得到重采样流量插值序列Q′;

S13、对S12得到的重采样插值序列Q′进行一阶差分,得到标况流量增量序列D=(d

燃气流量计上传的标况累计流量序列,因各种原因会存在大量数据缺失,因此对其进行重采样可以改善序列数据的质量。本实施例中,采用的均值重采样方法是将时间间隔Δt内的所有原始流量值进行平均作为重采样后流量值的一种做法,具体而言生成的重采样流量序列

上述重采样的固定间隔Δt可根据实际进行优化调整,本实施例中采用Δt为1小时,因此每一天的序列都以一小时为间隔重采样,重采样的值记为一个小时内所有流量值的均值,一天的日序列包含了24个重采样后的流量值。

需要说明的是,上述S1中用来构建形成序列数据集的所有燃气用户的燃气流量计上传的标况累计流量序列,可以是在线采集的,也可是离线的历史数据,对此不作限制。

S2、针对S1中得到的所有标况流量增量序列,分别以天为单位从中提取出日增量序列X

在本发明的实施例中,上述步骤S2具体包括以下子步骤:

S21、针对序列数据集中的每一条标况流量增量序列,以天为单位从中提取一系列长度为h的日增量序列,日期i对应的日增量序列为X

本发明的实施例中,第i天的流量增量序列可表示为X

S22、针对S21中提取的每条日增量序列X

S23、将每条日增量序列X

为了便于模型进行训练,可按照传统的模型训练数据集的做法,将训练样本集合分割为训练部分和测试部分,这属于现有技术,不再具体展开描述。

S3、利用S2中得到的训练样本集合,以基于一维卷积的自编码网络模型为用于检测的机器学习模型,训练该基于一维卷积的自编码网络模型,使其能够以日增量序列和时间信息编码为输入,生成重构序列;所述基于一维卷积的自编码网络模型由第一CNN卷积层、池化层、上采样层、第二CNN卷积层、第三CNN卷积层和全连接层级联而成。如图2所示,展示了该基于一维卷积的自编码网络模型的具体结构,其中的卷积层1、卷积层2和卷积层3分别代表第一CNN卷积层、第二CNN卷积层、第三CNN卷积层。

在本发明的实施例中,上述步骤S3具体包括以下子步骤:

S31、将训练样本集合中的训练样本输入基于一维卷积的自编码网络模型中,对于任一训练样本

其中,l=l1或l2;

将第一CNN卷积层中2u个一维卷积核的卷积结果

S32、将S31中得到的第一卷积结果输入至池化层中,进行最大池化操作后再输入至上采样层中进行上采样操作,输出2×h的上采样结果O

S33、将S32中上采样操作输出的上采样结果O

其中,l=l1或l2;

需要特别说明的是,在日增量序列X

将第二CNN卷积层中2u个一维卷积核的卷积结果

S34.将S33中得到的第二卷积结果

其中

需要特别说明的是,由于一维卷积核的卷积操作会改变输出向量的维度,因此上述各CNN卷积层中可对一维卷积核加入padding操作,使得各卷积层中的卷积结果满足相应要求。

S35、将第三CNN卷积层输出的第三卷积结果

其中

上述基于一维卷积的自编码网络模型中,第一CNN卷积层和第二CNN卷积层中需要采用不同宽度的一维卷积核进行卷积,以便于提取不同时间长度的信息。在本实施例中,经过优化,取16,宽度l1取3,宽度l2取5。即第一CNN卷积层和第二CNN卷积层中,需要用16个宽度为3的一维卷积核和16个宽度为5的一维卷积核进行卷积,再对卷积结果进行融合。

S36、以X

需要说明的是,自编码网络模型的训练属于现有技术,可将训练样本数据集中的训练部分用于对模型进行训练,而测试部分则用于对模型进行验证。迭代终止条件可设置为达到最大训练轮数或者模型收敛。在本发明的实施例中,迭代终止条件可设置为迭代轮次达到150次或者损失函数值小于0.1。

S4、针对目标燃气用户和需要进行异常检测的目标时段,从其对应的燃气流量计上传的数据中提取并处理生成目标时段内的标况流量增量序列;将目标时段内的标况流量增量序列按照与所述训练样本相同的方式生成其中每一天的日增量序列和时间信息编码,再通过S3训练后得到的自编码网络模型生成目标时段内的重构序列;计算目标时段内的重构序列与目标时段内的标况流量增量序列之间的误差序列,利用固定长度的滑窗对误差序列进行扫描,每个滑窗内分别通过指数加权移动平均误差分布进行动态阈值检测,判断是否存在超过动态阈值的序列异常值,若存在则视为在异常值对应时刻存在燃气流量异常情况。

在本发明的实施例中,上述步骤S4具体包括以下子步骤:

S41、针对需要进行异常检测的目标燃气用户,根据获取其对应的燃气流量计上传的标况累计流量序列,再根据需要进行异常检测的目标时段从中提取相应子序列并按照S1中相同的均值重采样、线性插值补全和一阶差分处理后形成目标时段内的标况流量增量序列D=(d

需要说明的是,此处的目标燃气用户是具体需要进行异常检测的用户,可根据实际的检测需求进行指定。另外,需要进行异常检测的目标时段也可根据实际的检测需要进行指定,由于本发明中的模型的而输入是日增量序列,因此目标时段一般以天为单位进行指定,一共n′天,n′为不小于1的整数。目标燃气用户对应的燃气流量计上传的标况累计流量序列中,目标时段范围内的这部分序列记为后续需要进行异常检测的对象。对于这一段目标时段内的标况累计流量序列,将其处理为标况流量增量序列、日增量序列X

S42、将n′天的日增量序列X

S43、计算目标时段内的标况流量增量序列D与标况流量增量重构序列

S44、对序列重构绝对误差e进行指数加权滑动平均(exponential weightedmoving average,EWMA)操作,得到重构序列EWMA误差

需说明的是,上述EWMA方法属于现有技术,其中的超参数为衰减率,具体取值可根据实际情况进行优化。在本实施例中,衰减率β优选取14。

上述滑窗宽度w需要根据实际的数据情况进行优化,在本发明的实施例中优选取168。

S45、针对S44中提取的每个滑窗内误差序列

其中

S46、遍历重构序列EWM误差e

需说明的是,上述数值倍数选择范围[a,b]需要根据实际的数据情况进行优化,在本发明的实施例中优选取[a,b]为[2.5,12.5],且在遍历该范围时的间隔取0.5,即依次计算z=2.5,3.0,3.5,…,12.5对应的动态异常误差阈值ε,再从中选择出最佳动态异常误差阈值

另外,基于与上述实施例中提供的一种基于机器学习和动态阈值的燃气流量异常检测方法相同的发明构思,本发明的另一较佳实施例中提供了一种基于卷积自编码网络和动态阈值的燃气流量异常检测系统,该检测系统包括以下功能模块:

序列数据获取模块,用于对所有燃气用户的燃气流量计上传的标况累计流量序列分别进行均值重采样,并以线性插值方式填充空缺值,再对标况累计流量重采样序列进行一阶差分,得到不同燃气流量计各自对应的标况流量增量序列;

训练样本构建模块,用于针对序列数据获取模块中得到的所有标况流量增量序列,分别以天为单位从中提取出日增量序列X

模型训练模块,用于利用训练样本构建模块中得到的训练样本集合,训练基于一维卷积的自编码网络模型,使其能够以日增量序列和时间信息编码为输入,生成重构序列;所述基于一维卷积的自编码网络模型由第一CNN卷积层、池化层、上采样层、第二CNN卷积层、第三CNN卷积层和全连接层级联而成;

异常检测模块,用于针对目标燃气用户和需要进行异常检测的目标时段,从其对应的燃气流量计上传的数据中提取并处理生成目标时段内的标况流量增量序列;将目标时段内的标况流量增量序列按照与所述训练样本相同的构建方式生成其中每一天的日增量序列和时间信息编码,再通过模型训练模块训练后得到的自编码网络模型生成目标时段内的重构序列;计算目标时段内的重构序列与目标时段内的标况流量增量序列之间的误差序列,利用固定长度的滑窗对误差序列进行扫描,每个滑窗内分别通过指数加权移动平均误差分布进行动态阈值检测,判断是否存在超过动态阈值的序列异常值,若存在则视为在异常值对应时刻存在燃气流量异常情况。

由于上述基于机器学习和动态阈值的燃气流量异常检测方法解决问题的原理与本发明上述实施例的基于卷积自编码网络和动态阈值的燃气流量异常检测系统相似,因此该实施例中系统的各模块具体实现形式未尽之处亦可参见上述S1~S4所示方法部分的具体实现形式,重复之处不再赘述。

另外需要说明的是,上述实施例提供的系统中,各模块在被执行是相当于是按序执行的程序模块,因此其本质上是执行了一种数据处理的流程。且所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的各实施例中,所述方法和系统中对于步骤或者模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或步骤可以结合或者可以集成到一起,一个模块或者步骤亦可进行拆分。

下面本发明将进一步通过一个具体实例,来展示上述实施例中基于机器学习和动态阈值的燃气流量异常检测方法及系统在具体实例上的详细实现过程,以便于理解本发明的实质。

实施例

本实施例步骤与具体实施方式相同,在此不再进行赘述。下面就部分实施过程和实施结果进行展示:

本实施例所用的原始数据为浙江苍南仪表集团股份有限公司提供的真实燃气流量使用数据。随机选取其中3个表具,表具1,2,3分别包含17287,17182,16626条流量记录。按照本发明前述S1~S4所示的方法进行数据处理,并输入模型中进行训练,最后使用训练好的模型进行流量异常检测。

为了验证本发明技术方案的技术效果,通过人工添加异常点方法向流量序列数据中添加异常点,异常值的计算公式如下:

其中,等号右侧的x为原始数据,等号左侧的x为添加的异常点数据,mean,var为滑动窗口平均值和方差,

为了便于叙述,将本发明前述S1~S4所示的方法称为ConvAE&Date,同时为了展示本发明中引入时间信息编码C

本实施例的实验将ConvAE和ConvAE&Date与若干传统预测方法进行了比较,作为对照的预测方法有:(1)OCSVM:支持向量机是一类对数据进行二元分类的广义线性分类器;(2)Isolation Forest是一个基于Ensemble的快速异常检测方法;(3)Autoencoder(AE)是多层神经网络的一种非监督式学习算法。实验以检测结果的精确率(precision)、召回率(recall)和F1值(f1 score)作为检测评估指标。

实验结果如图3所示,以表具1的检测结果为例,本发明的方法ConvAE,在F1值的表现上分别比OCSVM和AE高出14.3%,11.4%;此外本发明的方法ConvAE&Date在F1值的表现上分别比OCSVM,Isolation Forest和AE高出57.2%,35.2%,53.2%。可见本发明提出的一种基于机器学习和动态阈值的燃气流量异常检测方法及系统的有效性。

以上所述的实施例只是本发明的一种较佳的方案,然其并非用以限制本发明。有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型。因此凡采取等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。

相关技术
  • 基于机器学习的天然气站场输配流量异常检测系统及其检测方法
  • 一种基于预测和动态阈值的Argo剖面异常检测方法
技术分类

06120115926936