本发明涉及输水管网在线监测,尤其涉及一种输水管网异常数据检测与校正方法。
背景技术:
1、运行数据质量对实时模拟、状态监测及故障诊断至关重要。倘若实测数据本身出现错误,偏差超限将引发误判,甚至误操作。因此,对实测数据进行异常检测及校正意义重大。现有输供水管网监测数据研究中,文献[1]提出了基于交互识别的供水管网数据异常值检测方法,对在线监测数据进行间隔15min时段切分,经监测点间的空间拓扑关系分析确定最佳监测点数量,并选定监测点的数据构建支持向量回归(support vector regression,svr)模型,实现选定监测点数据之间的交互识别。文献[2]运用自识别对供水管网监测数据进行质量控制,对某供水管网监测站数据进行时段和季节上的划分,共建立多达几百个(autoregressive moving average,arma)模型,实现独立节点自身数据的自识别。文献[3]使用孤立森林法(isolation forest)和k-means聚类算法识别“小时供水量”一维异常数据,结果表明孤立森林法在召回率、精准率和f1数均高于k-means聚类算法,但孤立森林法并不适用高维数据。文献[4]分别运用局部异常因子算法(local outlier factor,lof)和k-means算法对一维压力监测数据进行异常检测,发现k-means算法对处理后样本数据的异常检测效果更好。上述研究中,仅利用单参数的时序特性,或者利用少量、局部测点参数间的时空关联性,通过划分时段、区块构建成百上千个“局部”数据模型来保证异常数据的检测能力,有一定的局限性,难以实际应用。
2、实际系统运行中,发生测量异常次数少且状况各异。从监测参数的向量空间看,正常样本多,异常样本少。文献[5]采用一分类支持向量机(one-class svm)进行网络异常检测,其训练集是采用主动学习获取的,无法完全保证训练集中都为正常数据,若训练集中包含异常样本则会降低该方法的准确性。另外,在输水管网异常检测中,异常样本的获取是一个难题,文献[1,2,4]采用人工构建异常数据,不尽符合实际。
3、因此,亟需一种针对实测的高维、多参数数据,且建模简单、计算迅速高效的输水管网数据异常检测及校正方法。
4、参考文献:
5、[1]刘书明,吴以朋,车晗。基于交互识别的供水管网数据异常值检测[j]。给水排水,2015(11):150-154;
6、[2]刘书明,吴以朋,车晗等。利用自识别的供水管网监测数据质量控制[j]。清华大学学报(自然科学版),2017,57(9):999-1003;
7、[3]张凯,崔光亮。异常数据识别与修复机制在区域供水预测方案中的应用[j]。水电能源科学,2021,39(7):53-56;
8、[4]杨启航。供水管网异常检测数据识别研究[d]。天津:天津理工大学,2022;
9、[5]刘敬,谷利泽,钮心忻等。基于单分类支持向量机和主动学习的网络异常检测研究[j]。通信学报,2015,36(11):136-146。
技术实现思路
1、针对上述问题,本发明提出一种针对包含全部监测参数的高维向量空间,多参数数据,且建模简单、计算迅速高效的实现实测异常数据的在线检测及校正的一种输水管网异常数据检测及校正的方法。
2、本技术的目的是这样实现的:一种输水管网异常数据检测及校正的方法包括以下步骤:
3、步骤一,建立局部模型检测样本数据,并完成样本标注:设共有a个监测点,高维实测参数则由a个流量和a个压力数据组成,每个采样时刻构成1个样本;采用局部模型检测,通过建立a个流量软测量模型和a个节点压力回归模型来验证每个样本参数,并标注样本及其参数是否正常,生成样本标签;
4、步骤二,建立lof异常数据检测模型:
5、1、使用lof算法得到每个样本的局部离群因子lof值;
6、2、假设临时阈值th从0到5,步长0.1,再根据步骤一中样本标签得到每个临时阈值下的混淆矩阵,并逐个计算其真阳性率tpr(灵敏度)和假阳性率fpr(特异度)。
7、3、根据tpr值和fpr值,绘制接受者操作特性roc曲线,找到其上最靠近(0,1)点的临界点,确定相应的th值为lof阈值;lof值小于阈值的正常样本和lof阈值,构成lof异常数据检测模型;
8、步骤三,对测试样本数据进行检验,并检测异常样本的异常参数,先后计算异常检测准确率a1,异常参数确定的准确率a2,当a1、a2达到95%,可以进入步骤四,否则,返回步骤二;
9、步骤四,实际异常数据检测:针对监测点当前采样得到的节点流量压力数据,计算每个样本的lof值,根据阈值判断样本是否异常,并检测异常样本中的异常参数;
10、步骤五,使用邻域均值法校正异常参数。
11、步骤一中,流量软测量模型为设有节点d,qin=qout+s×△h/△t,其中qin为入池流量(理论上等于节点d的流量q),s为蓄水池底面积,qout为出池流量,△h为液位变化量(分别由流量计和液位计获得),△t为采样时间间隔,设qin和q残差的均值u=0,标准差为σ1m3/h,根据3σ原则获得置信区间的上限与下限,对于某一时刻,利用流量软测量模型估算的入池流量qin=c m3/h,若实测流量值q在qin±3σ(即[c-3σ1,c+3σ1])区间则属于正常,否则判定为异常。
12、步骤一中,压力回归模型为设节点d的流量为自变量x,建立节点d的压力y的回归模型,得到解析式为y=-kx+b,计算压力值与回归值残差的标准差σ2,同样根据3σ原则获得置信区间的上限与下限,对于某一时刻的流量值e m3/h,根据上下限的解析式求得对应压力区间为[-ke+b-3σ2,-ke+b+3σ2],若该时刻节点d压力值在压力区间内则属于正常,不在该压力区间内,则判定该时刻测得的节点d压力参数异常。
13、步骤二中,使用lof算法得到每个样本的局部离群因子lof值包括以下步骤:
14、1、计算第k距离:假设两点p和o之间的距离为d(p,o),k为相邻点个数,dk(p)表示点p的第k距离,dk(p)=d(p,o),表示点o是距离点p第k远的点,但不包括p自身;
15、2、计算第k距离邻域:nk(p)表示p的第k距离邻域(p的第k距离以内的所有点集合),|nk(p)|表示该邻域内所有点的个数;
16、3、计算第k可达距离:rk(o,p)表示点o至点p的第k可达距离,rk(o,p)=max{dk(o),d(p,o)},即可达距离rk(o,p)至少是点o的第k距离dk(o),或者是点o和p间的真实距离d(p,o);
17、4、计算局部可达密度:局部可达密度表示nk(p)内所有点到点p的第k可达距离的均值的倒数,记为:
18、
19、5、计算局部离群因子:局部离群因子即是用局部相对密度来定义的,表示点p的第k邻域内所有样本点的局部可达密度与点p的局部可达密度之比的平均数,记为:
20、
21、步骤二中,所述混淆矩阵如式1所示:
22、步骤二中,所述真阳性率和假阳性率计算分别如式4、5:
23、
24、
25、步骤三中,对测试样本数据进行检验是指:
26、1、使用lof模型检测样本数据,再由局部模型验证,得到混淆矩阵参数,并按式6计算异常检测准确率a1,验证模型效果。
27、
28、2、使用z分数检测异常样本的异常参数,并按式8计算异常参数确定准确率a2检验z分数效果。假设异常样本p,在nk(p)内,先计算所有点各参数的平均值和标准差,再计算样本p各参数的z分数,计算公式为
29、
30、其中x表示原始数据,表示平均数,s表示标准差,若某参数的z分数最大,则该参数偏离程度最大,确定为异常参数,异常参数确定的准确率a2,计算如下:
31、
32、式中,cnr为z分数对异常参数确定正确的数量,cna为异常参数的总数量。
33、本发明有益效果:本发明方法通过输水管网局部模型检验得到适量样本数据,训练建立lof异常数据检测模型,识别监测数据中的异常样本,通过z分数确定具体异常参数,并使用k邻域均值法校正异常参数,针对实测的高维、多参数数据,且建模简单、计算迅速高效的为正确分析管网运行状态,以及实时模拟、状态监测及故障诊断提供保证。