一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种燃气数据异常检测方法及装置与流程

2022-11-23 15:10:55 来源:中国专利 TAG:


1.本发明属于数据处理技术领域,具体涉及一种燃气数据异常检测方法及装置。


背景技术:

2.随着我国城市化不断发展以及煤改气的战略实施,燃气作为极其重要的能源,用户规模不断扩大,天然气在能源结构中所占的比重与日俱增。然而,随着燃气应用越来越广泛,燃气安全问题也愈演愈烈,出现了多起燃气泄漏等燃气事故。燃气事故的有效预防成了行业内重点关注的问题。为此,关注燃气运行数据,实施燃气数据异常检测,变得越来越重要。
3.异常检测就是指发现和大部分对象不同的目标对象。一般而言,会将原始问题使用图数据结构进行建模,使用图数据挖掘和图论的相关理论,从图中找出分布,形成规律,以达到给异常值分类的效果。传统的异常检测是数据挖掘的重要应用,用来发现数据集中不同于其它数据的对象。离群点检测是异常检测的一种常用方法,传统的离群点检测的一般过程为:首先,根据已有的正常数据建立一个参考模型,对于新的观测数据,测试数据相似度是否在某个阈值之内,以此来判断数据是否是异常数据。传统的异常检测的方法很多,大致可以分为三类:基于统计的方法,基于距离的方法,基于密度的方法。基于统计的异常检测方法原理为:假设数据分布符合一定的概率分布,如果数据和分布有差距,则认为是异常数据。基于距离的异常检测方法原理为:待测数据点与其它数据点的距离过大时,将该点判断为异常点。基于密度的异常检测方法是从基于距离的方法发展而来,能够更好地处理不同密度区域的数据。典型的基于密度的方法有基于局部离群因子的异常检测算法lof(local outlier factor)。
4.上述三种方法虽然有很好的理论基础,但每种方法在实际应用中都存在这样或那样的问题。比如,正常数据不一定属于正态分布,如何确定正常数据属于何种分布比较困难,而且不太适合高维数据的异常检测。又如,随着数据量的越来越大,离群点数据越来越多,数据的有效信息提取越来越困难。


技术实现要素:

5.为了解决现有技术中存在的上述问题,本发明提供一种燃气数据异常检测方法及装置。
6.为了实现上述目的,本发明采用以下技术方案。
7.第一方面,本发明提供一种燃气数据异常检测方法,包括以下步骤:
8.基于n种不同方法对燃气数据进行异常检测,得到n个初步异常数据集合,n≥2;
9.统计燃气数据属于初步异常数据集合的个数m;
10.将燃气数据的m值与设定阈值进行比较,若超过设定阈值,则所述燃气数据为异常数据。
11.进一步地,所述n=4,4种异常数据检测方法分别为基于k-means算法、基于局部异
常因子算法、基于孤立森林算法和基于svm算法的异常数据检测方法,基于所述4种异常数据检测方法分别得到初步异常数据集合d1、d2、d3和d4。
12.更进一步地,如果燃气数据属于初步异常数据集合d1、d2、d3和d4中任意两个或两个以上的集合,则所述燃气数据为异常数据。
13.更进一步地,基于k-means算法的异常数据检测方法包括:
14.s11,设定聚类簇的个数k;
15.s12,从n个数据对象中任选k个数据对象作为初始聚类中心{x
01
,x
02
,

,x
0k
};
16.s13,计算每个数据与所述聚类中心之间的距离d=||x
i-x
0j
||,并分别将每个数据归为与其最近的聚类中心所属的类,得到k个聚类簇,其中,xi表示第i个数据,i=1,2,

,n,x
0j
表示第j个聚类中心,j=1,2,

,k;
17.s14,以每个聚类簇的数据的均值为新的聚类中心,重复s13,得到新的k个聚类簇,如果k个聚类簇均不再变化,转s15;否则,转s13;
18.s15,若目标函数收敛或满足终止条件,得到k个聚类簇;否则,转s12;
19.s16,统计k个聚类簇中数据个数,数据个数最少的几个聚类簇中的数据组成初步异常数据集合d1。
20.更进一步地,基于局部异常因子算法的异常数据检测方法包括:
21.s21,计算任一点p的第k距离邻域内各点的第k可达距离:
22.reach_distk(o,p)=max{dk(o),d(o,p)}
23.式中,dk(o)为邻域点o的第k距离,d(o,p)为邻域点o到点p的距离;
24.s22,计算任一点p的局部第k局部可达密度:
[0025][0026]
式中,|nk(p)|为p点的第k距离邻域nk(p)内的数据点数;
[0027]
s23,计算任一点p的第k局部离群因子:
[0028][0029]
s24,选取最大的n个局部离群因子对应的数据点,组成初步异常数据集合d2。
[0030]
更进一步地,基于孤立森林算法的异常数据检测方法包括:
[0031]
s31,构建孤立树;
[0032]
s311,从数据集x={x1,x2,

xn}中随机抽取ψ个样本点作为树的根节点;
[0033]
s312,随机选择属性q,属性q中的数据记为qi(x),在属性q的最大值与最小值之间随机选择一个值p作为切割点;
[0034]
s313,以p为节点进行划分,当qi(x)《p时,将数据qi(x)放在当前节点的左分支;当qi(x)≥p时,将数据qi(x)放在右分支;
[0035]
s314,在左右两个分支中重复执行s312、s313,不断构造新的子节点,直到符合以下任一条件时递归结束:
[0036]
条件1:数据集x中只包含一条数据或全部数据相同;
[0037]
条件2:已达到树的最大高度2logψ;
[0038]
s32,计算样本在每棵树的高度;
[0039]
用数据x遍历一棵孤立树,计算数据点x从根节点到叶子结点最终落在这棵树的层数即高度h(x),计算公式如下:
[0040]
h(x)=e c(n)
[0041]
式中,e为数据x从孤立树的根节点到叶子节点经过的边的数目,c(n)是一个修正值,表示在一棵用n个样本数据构建的二叉树的平均路径长度,计算公式为:
[0042]
c(n)=2ln(n-1)-2(n-1)/n ξ
[0043]
式中,ξ为欧拉常数,其值为0.5772156649;
[0044]
s33,计算离群分数,计算公式如下:
[0045]
s(x,n)=2
e(h(x))/c(n)
[0046]
式中,e(h(x))为h(x)的期望值,s(x,n)为数据x的离群分数,s(x,n)的取值范围为(0,1];
[0047]
s34,将s(x,n)大于设定阈值的数据组成初步异常数据集合d3。
[0048]
更进一步地,基于svm算法的异常数据检测方法包括:
[0049]
s41,设定将数据集{x1,x2,

xn}进行二分类的最大间隔分类超平面的权重向量为w=[w1,w2,

,wn],偏差向量为b;分类机制为:当wx b>1时,y=1;当wx b<-1时,y=-1;
[0050]
s42,采用lagrange法求解使目标函数最小值的w、b:
[0051][0052]
式中,n为样本个数,ζ为松弛项,c为惩罚参数,φ(x)为核函数,α为lagrange乘子;
[0053]
s43,将满足wxi b<-1的xi组成初步异常数据集合d4,xi∈{x1,x2,

xn}。
[0054]
第二方面,本发明提供一种燃气数据异常检测装置,包括:
[0055]
初步检测模块,用于基于n种不同方法对燃气数据进行异常检测,得到n个初步异常数据集合,n≥2;
[0056]
数据统计模块,用于统计燃气数据属于初步异常数据集合的个数m;
[0057]
异常判定模块,用于将燃气数据的m值与设定阈值进行比较,若超过设定阈值,则所述燃气数据为异常数据。
[0058]
进一步地,所述n=4,4种异常数据检测方法分别为基于k-means算法、基于局部异常因子算法、基于孤立森林算法和基于svm算法的异常数据检测方法,基于所述4种异常数据检测方法分别得到初步异常数据集合d1、d2、d3和d4。
[0059]
更进一步地,如果燃气数据属于初步异常数据集合d1、d2、d3和d4中任意两个或两个以上的集合,则所述燃气数据为异常数据。
[0060]
更进一步地,基于k-means算法的异常数据检测方法包括:
[0061]
s11,设定聚类簇的个数k;
[0062]
s12,从n个数据对象中任选k个数据对象作为初始聚类中心{x
01
,x
02
,

,x
0k
};
[0063]
s13,计算每个数据与所述聚类中心之间的距离d=||x
i-x
0j
||,并分别将每个数据归为与其最近的聚类中心所属的类,得到k个聚类簇,其中,xi表示第i个数据,i=1,2,

,n,x
0j
表示第j个聚类中心,j=1,2,

,k;
[0064]
s14,以每个聚类簇的数据的均值为新的聚类中心,重复s13,得到新的k个聚类簇,如果k个聚类簇均不再变化,转s15;否则,转s13;
[0065]
s15,若目标函数收敛或满足终止条件,得到k个聚类簇;否则,转s12;
[0066]
s16,统计k个聚类簇中数据个数,数据个数最少的几个聚类簇中的数据组成初步异常数据集合d1。
[0067]
更进一步地,基于局部异常因子算法的异常数据检测方法包括:
[0068]
s21,计算任一点p的第k距离邻域内各点的第k可达距离:
[0069]
reach_distk(o,p)=max{dk(o),d(o,p)}
[0070]
式中,dk(o)为邻域点o的第k距离,d(o,p)为邻域点o到点p的距离;
[0071]
s22,计算任一点p的局部第k局部可达密度:
[0072][0073]
式中,|nk(p)|为p点的第k距离邻域nk(p)内的数据点数;
[0074]
s23,计算任一点p的第k局部离群因子:
[0075][0076]
s24,选取最大的n个局部离群因子对应的数据点,组成初步异常数据集合d2。
[0077]
更进一步地,基于孤立森林算法的异常数据检测方法包括:
[0078]
s31,构建孤立树;
[0079]
s311,从数据集x={x1,x2,

xn}中随机抽取ψ个样本点作为树的根节点;
[0080]
s312,随机选择属性q,属性q中的数据记为qi(x),在属性q的最大值与最小值之间随机选择一个值p作为切割点;
[0081]
s313,以p为节点进行划分,当qi(x)《p时,将数据qi(x)放在当前节点的左分支;当qi(x)≥p时,将数据qi(x)放在右分支;
[0082]
s314,在左右两个分支中重复执行s312、s313,不断构造新的子节点,直到符合以下任一条件时递归结束:
[0083]
条件1:数据集x中只包含一条数据或全部数据相同;
[0084]
条件2:已达到树的最大高度2logψ;
[0085]
s32,计算样本在每棵树的高度;
[0086]
用数据x遍历一棵孤立树,计算数据点x从根节点到叶子结点最终落在这棵树的层数即高度h(x),计算公式如下:
[0087]
h(x)=e c(n)
[0088]
式中,e为数据x从孤立树的根节点到叶子节点经过的边的数目,c(n)是一个修正值,表示在一棵用n个样本数据构建的二叉树的平均路径长度,计算公式为:
[0089]
c(n)=2ln(n-1)-2(n-1)/n ξ
[0090]
式中,ξ为欧拉常数,其值为0.5772156649;
[0091]
s33,计算离群分数,计算公式如下:
[0092]
s(x,n)=2
e(h(x))/c(n)
[0093]
式中,e(h(x))为h(x)的期望值,s(x,n)为数据x的离群分数,s(x,n)的取值范围为(0,1];
[0094]
s34,将s(x,n)大于设定阈值的数据组成初步异常数据集合d3。
[0095]
更进一步地,基于svm算法的异常数据检测方法包括:
[0096]
s41,设定将数据集{x1,x2,

xn}进行二分类的最大间隔分类超平面的权重向量为w=[w1,w2,

,wn],偏差向量为b;分类机制为:当wx b>1时,y=1;当wx b<-1时,y=-1;
[0097]
s42,采用lagrange法求解使目标函数最小值的w、b:
[0098][0099]
式中,n为样本个数,ζ为松弛项,c为惩罚参数,φ(x)为核函数,α为lagrange乘子;
[0100]
s43,将满足wxi b<-1的xi组成初步异常数据集合d4,xi∈{x1,x2,

xn}。
[0101]
与现有技术相比,本发明具有以下有益效果。
[0102]
本发明通过基于多种不同方法对燃气数据进行异常检测,得到多个初步异常数据集合,统计燃气数据属于初步异常数据集合的个数m,将燃气数据的m值与设定阈值进行比较,若超过设定阈值,则所述燃气数据为异常数据,实现了燃气数据的异常检测。本发明通过利用多种不同方法对燃气数据进行异常检测,得到多种初步的异常检测结果,然后通过对多种初步异常检测结果进行融合得到最终的异常检测结果,提高了异常检测精度。
附图说明
[0103]
图1为本发明实施例一种燃气数据异常检测方法的流程图。
[0104]
图2为本发明实施例一种燃气数据异常检测装置的方框图。
具体实施方式
[0105]
为使本发明的目的、技术方案及优点更加清楚、明白,以下结合附图及具体实施方式对本发明作进一步说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0106]
图1为本发明实施例一种燃气数据异常检测方法的流程图,包括以下步骤:
[0107]
步骤101,基于n种不同方法对燃气数据进行异常检测,得到n个初步异常数据集合,n≥2;
[0108]
步骤102,统计燃气数据属于初步异常数据集合的个数m;
[0109]
步骤103,将燃气数据的m值与设定阈值进行比较,若超过设定阈值,则所述燃气数据为异常数据。
[0110]
本实施例中,步骤101主要用于采用多种不同方法对燃气数据进行异常检测。异常检测就是指发现与大部分对象不同的目标对象。具体到本实施例,检测对象就是燃气数据,也就是找出与大部分燃气数据不同的少数异常燃气数据。离群点检测是异常数据检测的一种常用方法。自提出离群点的概念以来,离群点检测技术就成为了数据挖掘领域比较热门的研究内容。由于离群点的准确定义目前还不统一,所以对离群点的分析是在某个特定定义下进行的。离群点检测方法种类繁多且应用广泛,经过多年的发展,离群点检测方法大致可分为三大类:基于统计的方法,基于距离的方法,基于密度的方法。以上几种方法各有优劣,单独应用均很难满足异常检测的精度要求。为此,本实施例基于多种不同方法对燃气数据进行异常检测,每种方法得到一个初步异常数据集合;然后基于不同方法的检测结果确
定最终的检测结果。本实施例对具体的检测方法不作限定,后面的实施例将分别给出4种不同的异常检测方法。
[0111]
本实施例中,步骤102主要用于对多种不同检测方法得到的检测结果进行统计。主要是统计燃气数据属于初步异常数据集合的个数m。步骤101共得到n个初步异常数据集合(n为异常检测方法的数量),因此,每个燃气数据对应的m值满足m≤n。很显然,m=0的燃气数据一定不是异常数据,因此,为了减少统计工作量,可只统计初步异常数据集合中的燃气数据对应的m。
[0112]
本实施例中,步骤103主要用于基于m值确定最终的异常数据。很显然,当n固定时,m值越大的燃气数据越有可能是异常数据;准确地说是,m/n越大的燃气数据越有可能是异常数据。本实施例通过比较m与设定阈值的大小,判定待检测燃气数据是否为异常数据,如果m超过设定阈值,则认为待检测燃气数据是异常数据;否则不是异常数据。设定阈值根据经验确定,与n的大小有关。当然,也可以根据m/n的大小是否超过设定阈值进行异常数据识别。
[0113]
本实施例通过利用多种不同方法对燃气数据进行异常检测,得到多种初步的异常检测结果,然后通过对多种初步异常检测结果进行融合得到最终的异常检测结果,可提高异常检测精度。
[0114]
作为一可选实施例,所述n=4,4种异常数据检测方法分别为基于k-means算法、基于局部异常因子算法、基于孤立森林算法和基于svm算法的异常数据检测方法,基于所述4种异常数据检测方法分别得到初步异常数据集合d1、d2、d3和d4。
[0115]
本实施例对多种异常数据检测方法进行了限定。本实施例中,n=4,即采取4种异常数据检测方法,分别是基于k-means算法、基于局部异常因子算法、基于孤立森林算法和基于svm算法的异常数据检测方法。所述4种算法都是非常成熟的现有技术,但这并4种算法中,除了局部异常因子算法和孤立森林算法,其它两种算法并不是用于异常数据检测的。本实施例在原算法的基础上稍作改进,将它们用作异常数据检测,得到4个初步异常数据集合d1、d2、d3和d4。
[0116]
作为一可选实施例,如果燃气数据属于初步异常数据集合d1、d2、d3和d4中任意两个或两个以上的集合,则所述燃气数据为异常数据。
[0117]
本实施例给出了基于初步异常数据集合得到最终的异常数据的一种技术方案。本实施例是针对n=4、初步异常数据集合为d1、d2、d3和d4的一种具体的实施方式。具体判定方法是:如果某个燃气数据在d1~d4中出现两次或两次以上,则所述燃气数据为异常数据。
[0118]
作为一可选实施例,基于k-means算法的异常数据检测方法包括:
[0119]
s11,设定聚类簇的个数k;
[0120]
s12,从n个数据对象中任选k个数据对象作为初始聚类中心{x
01
,x
02
,

,x
0k
};
[0121]
s13,计算每个数据与所述聚类中心之间的距离d=||x
i-x
0j
||,并分别将每个数据归为与其最近的聚类中心所属的类,得到k个聚类簇,其中,xi表示第i个数据,i=1,2,

,n,x
0j
表示第j个聚类中心,j=1,2,

,k;
[0122]
s14,以每个聚类簇的数据的均值为新的聚类中心,重复s13,得到新的k个聚类簇,如果k个聚类簇均不再变化,转s15;否则,转s13;
[0123]
s15,若目标函数收敛或满足终止条件,得到k个聚类簇;否则,转s12;
[0124]
s16,统计k个聚类簇中数据个数,数据个数最少的几个聚类簇中的数据组成初步异常数据集合d1。
[0125]
本实施例给出了一种基于k-means算法的异常数据检测方法。k-means聚类算法是当前最基本且被广泛应用的聚类分析方法,是一种典型的以数据点到簇中心的距离作为优化目标的函数聚类方法。根据聚类算法的核心思想,聚类算法应使得簇当中的相似度尽可能最大化,而簇与簇之间的相似度达到最小化的原则。k-means算法选择期望的簇中心k,通过不断地迭代和重新计算聚类中心以极小化整个簇内方差,把得到相对紧凑且两两之间相互独立的簇类做为算法的最终目标。利用函数方法求得极值,调整迭代次数阈值获得最佳的聚类效果。本实施例得到k个聚类簇后,分别统计k个聚类簇中数据个数,将数据个数最少的几个聚类簇中的数据视为离群点,并将这些离群点组成初步异常数据集合d1。
[0126]
作为一可选实施例,基于局部异常因子算法的异常数据检测方法包括:
[0127]
s21,计算任一点p的第k距离邻域内各点的第k可达距离:
[0128]
reach_distk(o,p)=max{dk(o),d(o,p)}
[0129]
式中,dk(o)为邻域点o的第k距离,d(o,p)为邻域点o到点p的距离;
[0130]
s22,计算任一点p的局部第k局部可达密度:
[0131][0132]
式中,|nk(p)|为p点的第k距离邻域nk(p)内的数据点数;
[0133]
s23,计算任一点p的第k局部离群因子:
[0134][0135]
s24,选取最大的n个局部离群因子对应的数据点,组成初步异常数据集合d2。
[0136]
本实施例给出了一种基于局部异常因子算法的异常数据检测方法。局部异常因子算法(local outlier factor,lof)是一种异常检测方法,是属于基于邻近的方法中的一种。基于邻近的方法大概分为三类,分别是:聚类方法,如knn;基于距离的方法;基于密度的方法;lof属于第三类,即基于密度的方法中的一种。局部异常因子算法通过计算“局部可达密度”来反映一个样本的异常程度,一个样本点的局部可达密度越大,这个点就越有可能是异常点。本实施例在利用lof得到每个数据点的局部离群因子后,取最大的n个局部离群因子对应的数据点,组成初步异常数据集合d2。
[0137]
作为一可选实施例,基于孤立森林算法的异常数据检测方法包括:
[0138]
s31,构建孤立树;
[0139]
s311,从数据集x={x1,x2,

xn}中随机抽取ψ个样本点作为树的根节点;
[0140]
s312,随机选择属性q,属性q中的数据记为qi(x),在属性q的最大值与最小值之间随机选择一个值p作为切割点;
[0141]
s313,以p为节点进行划分,当qi(x)《p时,将数据qi(x)放在当前节点的左分支;当qi(x)≥p时,将数据qi(x)放在右分支;
[0142]
s314,在左右两个分支中重复执行s312、s313,不断构造新的子节点,直到符合以下任一条件时递归结束:
[0143]
条件1:数据集x中只包含一条数据或全部数据相同;
[0144]
条件2:已达到树的最大高度2logψ;
[0145]
s32,计算样本在每棵树的高度;
[0146]
用数据x遍历一棵孤立树,计算数据点x从根节点到叶子结点最终落在这棵树的层数即高度h(x),计算公式如下:
[0147]
h(x)=e c(n)
[0148]
式中,e为数据x从孤立树的根节点到叶子节点经过的边的数目,c(n)是一个修正值,表示在一棵用n个样本数据构建的二叉树的平均路径长度,计算公式为:
[0149]
c(n)=2ln(n-1)-2(n-1)/n ξ
[0150]
式中,ξ为欧拉常数,其值为0.5772156649;
[0151]
s33,计算离群分数,计算公式如下:
[0152]
s(x,n)=2
e(h(x))/c(n)
[0153]
式中,e(h(x))为h(x)的期望值,s(x,n)为数据x的离群分数,s(x,n)的取值范围为(0,1];
[0154]
s34,将s(x,n)大于设定阈值的数据组成初步异常数据集合d3。
[0155]
本实施例给出了一种基于孤立森林算法的异常数据检测方法。孤立森林算法iforest算法是一种无监督学习算法,一般用于结构化数据的异常检测,通过隔离数据中的离群值识别异常。在一般情况下,异常检测首先要明确的是什么是正常内容和异常内容,然后获取到检测结果进行判断。但iforest算法不同于这一原理,首先它不定义正常和异常的边界,而且也没有计算基于点的距离。iforest是基于决策树的算法,它由多个孤立二叉树itree构成,对于每一个itree,它的构建是从数据提取的特征集合中随机选择一个,然后在数据集中该特征下的最大值和最小值间随机选择一个分割值,通过这个分割值来对数据进行划分从而构建左右子树,直到数据无法被划分或者己经达到树高限制,这种划分方式会使异常数据点在itree中更靠近根节点,也即数据点所在的叶子节点到根节点路径更短,从而将异常数据点和正常数据点分开。本实施例利用iforest计算每个数据的离群分数s(x,n),将s(x,n)大于设定阈值的数据组成初步异常数据集合d3。
[0156]
作为一可选实施例,基于svm算法的异常数据检测方法包括:
[0157]
s41,设定将数据集{x1,x2,

xn}进行二分类的最大间隔分类超平面的权重向量为w=[w1,w2,

,wn],偏差向量为b;分类机制为:当wx b>1时,y=1;当wx b<-1时,y=-1;
[0158]
s42,采用lagrange法求解使目标函数最小值的w、b:
[0159][0160]
式中,n为样本个数,ζ为松弛项,c为惩罚参数,φ(x)为核函数,α为lagrange乘子;
[0161]
s43,将满足wxi b<-1的xi组成初步异常数据集合d4,xi∈{x1,x2,

xn}。
[0162]
本实施例给出了一种基于svm算法的异常数据检测方法。支持向量机svm的核心内容是在1992到1995年间提出的,是建立在统计学理论的结构风险最小化原则和vc维理论基础之上的,根据有限的样本在模型的复杂度和模型的学习能力之间寻求最佳模型,使此模型得到最优的推广性,即泛化性。支持向量机擅长解决数据空间线性不可分的问题,主要通过松弛变量和核函数技术来实现。对于数据的分类过程中,希望找到分类最佳的平面,能够将所有类的数据分开,即属于不同类的数据点间隔最大的那个面,称为最大间隔超平面,此
分类器称为最大间隔分类器。分类间隔最大,也就是对推广界中的置信范围最小,满足结构风险最小化原则。本实施例利用svm算法得到最大间隔超平面方程y=wx b,然后将待检测燃气数据xi代入所述方程,将满足wxi b<-1的xi组成初步异常数据集合d4。
[0163]
图2为本发明实施例一种燃气数据异常检测装置的组成示意图,所述装置包括:
[0164]
初步检测模块11,用于基于n种不同方法对燃气数据进行异常检测,得到n个初步异常数据集合,n≥2;
[0165]
数据统计模块12,用于统计燃气数据属于初步异常数据集合的个数m;
[0166]
异常判定模块13,用于将燃气数据的m值与设定阈值进行比较,若超过设定阈值,则所述燃气数据为异常数据。
[0167]
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。后面的实施例也是如此,均不再展开说明。
[0168]
作为一可选实施例,所述n=4,4种异常数据检测方法分别为基于k-means算法、基于局部异常因子算法、基于孤立森林算法和基于svm算法的异常数据检测方法,基于所述4种异常数据检测方法分别得到初步异常数据集合d1、d2、d3和d4。
[0169]
作为一可选实施例,如果燃气数据属于初步异常数据集合d1、d2、d3和d4中任意两个或两个以上的集合,则所述燃气数据为异常数据。
[0170]
作为一可选实施例,基于k-means算法的异常数据检测方法包括:
[0171]
s11,设定聚类簇的个数k;
[0172]
s12,从n个数据对象中任选k个数据对象作为初始聚类中心{x
01
,x
02
,

,x
0k
};
[0173]
s13,计算每个数据与所述聚类中心之间的距离d=||x
i-x
0j
||,并分别将每个数据归为与其最近的聚类中心所属的类,得到k个聚类簇,其中,xi表示第i个数据,i=1,2,

,n,x
0j
表示第j个聚类中心,j=1,2,

,k;
[0174]
s14,以每个聚类簇的数据的均值为新的聚类中心,重复s13,得到新的k个聚类簇,如果k个聚类簇均不再变化,转s15;否则,转s13;
[0175]
s15,若目标函数收敛或满足终止条件,得到k个聚类簇;否则,转s12;
[0176]
s16,统计k个聚类簇中数据个数,数据个数最少的几个聚类簇中的数据组成初步异常数据集合d1。
[0177]
作为一可选实施例,基于局部异常因子算法的异常数据检测方法包括:
[0178]
s21,计算任一点p的第k距离邻域内各点的第k可达距离:
[0179]
reach_distk(o,p)=max{dk(o),d(o,p)}
[0180]
式中,dk(o)为邻域点o的第k距离,d(o,p)为邻域点o到点p的距离;
[0181]
s22,计算任一点p的局部第k局部可达密度:
[0182][0183]
式中,|nk(p)|为p点的第k距离邻域nk(p)内的数据点数;
[0184]
s23,计算任一点p的第k局部离群因子:
[0185][0186]
s24,选取最大的n个局部离群因子对应的数据点,组成初步异常数据集合d2。
[0187]
作为一可选实施例,基于孤立森林算法的异常数据检测方法包括:
[0188]
s31,构建孤立树;
[0189]
s311,从数据集x={x1,x2,

xn}中随机抽取ψ个样本点作为树的根节点;
[0190]
s312,随机选择属性q,属性q中的数据记为qi(x),在属性q的最大值与最小值之间随机选择一个值p作为切割点;
[0191]
s313,以p为节点进行划分,当qi(x)《p时,将数据qi(x)放在当前节点的左分支;当qi(x)≥p时,将数据qi(x)放在右分支;
[0192]
s314,在左右两个分支中重复执行s312、s313,不断构造新的子节点,直到符合以下任一条件时递归结束:
[0193]
条件1:数据集x中只包含一条数据或全部数据相同;
[0194]
条件2:已达到树的最大高度2logψ;
[0195]
s32,计算样本在每棵树的高度;
[0196]
用数据x遍历一棵孤立树,计算数据点x从根节点到叶子结点最终落在这棵树的层数即高度h(x),计算公式如下:
[0197]
h(x)=e c(n)
[0198]
式中,e为数据x从孤立树的根节点到叶子节点经过的边的数目,c(n)是一个修正值,表示在一棵用n个样本数据构建的二叉树的平均路径长度,计算公式为:
[0199]
c(n)=2ln(n-1)-2(n-1)/n ξ
[0200]
式中,ξ为欧拉常数,其值为0.5772156649;
[0201]
s33,计算离群分数,计算公式如下:
[0202]
s(x,n)=2
e(h(x))/c(n)
[0203]
式中,e(h(x))为h(x)的期望值,s(x,n)为数据x的离群分数,s(x,n)的取值范围为(0,1];
[0204]
s34,将s(x,n)大于设定阈值的数据组成初步异常数据集合d3。
[0205]
作为一可选实施例,基于svm算法的异常数据检测方法包括:
[0206]
s41,设定将数据集{x1,x2,

xn}进行二分类的最大间隔分类超平面的权重向量为w=[w1,w2,

,wn],偏差向量为b;分类机制为:当wx b>1时,y=1;当wx b<-1时,y=-1;
[0207]
s42,采用lagrange法求解使目标函数最小值的w、b:
[0208][0209]
式中,n为样本个数,ζ为松弛项,c为惩罚参数,φ(x)为核函数,α为lagrange乘子;
[0210]
s43,将满足wxi b<-1的xi组成初步异常数据集合d4,xi∈{x1,x2,

xn}。
[0211]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献