一种用于污水异常检测的改进型层次聚类方法与流程

文档序号:17865814发布日期:2019-06-11 23:12阅读:188来源:国知局

本发明涉及一种应用于污水处理工艺流程的异常检测方法,用于实现在污水处理过程中的异常检测。



背景技术:

随着我国工业生产的快速发展和当代科技的不断进步,工业所产生的废水和城市中产生的生活污水的排放量正逐年增加,人为活动所造成的水体污染也越发地严重,如何提高污水处理工艺的处理效率和降低污水工艺的处理成本成为当下亟待解决的难题。当前,我国对污水处理厂的建设已经取得了较大的进展,环境污染问题也得到了相对的改善,但大部分的污水处理厂都存在这自动化水平不高、处理成本昂贵、能源消耗较大等问题。而在污水处理的过程中,工艺产生的故障不仅导致污水处理工艺的效率低下,影响工艺下的出水水质,同时也加大了污水处理的整体能耗,增加了污水处理工艺的成本和能源消耗。

当下我国在污水处理工艺中主要应用的是传统的故障诊断技术支持下的专家系统,该系统有着推理策略不灵活,需要人工干预,缺乏自学习能力,实时在线诊断性能差和自动化程度低下等问题,如今的污水处理工艺中,多维的数据仅用人工处理的方式很难进行有效的故障排查,从而使工艺检测中的检测效率降低和人工成本增加。因此很多工厂开始使用相关的机器学习算法进行污水的异常检测,其中用的比较多的是聚类算法和异常点的确定,在聚类算法中,使用较多的是传统的划分法、基于层次的聚类、基于密度的聚类、基于网格的聚类和基于模型聚类的方法。在污水异常的处理中,聚类算法如何能高效且便捷地将异常及时查找并排除成了污水异常检测中的重中之重。

污水处理过程是一个复杂的过程,其生产条件恶劣,随机干扰严重,工艺的数据有着数据量大、维度高、非线性、耦合性强的特点,其处理过程则有强非线性、强耦合、大时变、多工况等特点,生化需氧量(bod)、化学需氧量(cod)、总氮(tn)和总磷(tp)等是衡量污水处理效果的决定性参数和指标。在不同的季节不同温度下或者是一天内不同的时间段,都会给一些相关的参数数据带来不确定的影响,ph值、流量、氨氮浓度、cod、悬浮固体浓度、溶解氧浓度、orp、转速等都在整个污水的处理中起着关键性的作用。

异常检测的目的是为污水处理过程的异常提供检测的手段,使得能够采取正确的措施尽快恢复正常,从而减少污水处理中的能耗损失,加强污水处理工艺流程中的自动化性能。故障状态表现为个别状态,因此从plc中采集的数据点,其包含的正常状态的数目要远大于故障状态的数目,且正常状态的数据点具有“抱团”性质,因此使用机器学习中的聚类算法进行正常数据点和异常数据点的分离,从而发现数据集中的异常数据及其相对应的故障状态,能够更好地对污水工艺中的故障进行处理,保证污水处理中的能源利用率,节约工艺成本开销。

本发明基于改进型层次聚类方法来对污水的异常进行检测和故障排除,为了识别污水处理数据中的异常数据,应用了一种基于网格的改进型层次聚类算法进行数据异常的检测。算法使用网格聚类进行数据预处理,并使用层次聚类的方法对数据点进行再聚类,通过lda算法构造损失函数对相关数据集进行聚类最优的判定,可以用于污水处理的异常检测,实现污水处理中异常的高效监控和排除,以达到节约成本和智能化的处理效果。



技术实现要素:

(1)解决的技术问题

针对现有技术不组足,本发明提供了一种应用于污水异常检测自动化监控的改进型层次聚类方法,结合机器学习中的网格聚类思想,将预处理后的聚类进行层次聚类,通过lda信息增益算法构造损失函数进行终止条件的判定,从而实现聚类的高效和精准,确定出数据的最佳聚类方案,通过对正常簇和异常簇的判别来确定污水处理中的异常,进行工艺故障的排除。

(2)技术方案

为了达到以上目的,本发明通过以下技术方案予以实现。该方案结合网格聚类和层次聚类两种聚类算法,并根据lda算法进行最终判定,从而提高了层次聚类过程的效率,提升了网格聚类方法的精准度。

一种用于污水异常检测的改进型层次聚类方法,其包括以下步骤:

数据采集:将相关工艺中的参数进行数据的收集,并对收集到的数据集进行数据的标准化处理和pca降维,得到初始数据集d。

网格聚类:将对应的n维数据集进行矩形分割,通过定义密度阈值的方法对分割后的网格进行合并,每个网格单位形成一个初始簇,得到原始的聚类结果。

构造损失函数:根据lda算法构造相关损失函数,通过对损失函数的计算进行聚类终止条件的判断。

层次聚类:对当前的聚类结果进行相似度的计算,从而构造相似矩阵,将其中相似度最大的两个簇进行合并,形成新的聚类结果,并更新相似矩阵。

判断和再聚类:对新形成的聚类计算损失函数,若损失函数减小,则返回上一步继续进行层次聚类,否则返回前一次的聚类结果,根据聚类结果计算异常簇,将其标记后进行污水工艺的数据聚类及异常检测。

(3)有益效果

本发明提出了一种用于污水异常检测的改进型层次聚类方法,具有以下几个方面的优势:

1.对当下的污水处理工艺中异常检测提出一种基于机器学习的故障检测方法,通过对数据集的聚类和异常点的标记,进行相关故障的排除和处理,进而提高了污水处理工艺中故障检测的效率,减少了污水处理的工艺成本。

2.使用改进的网格聚类对提取的数据集d进行预处理,有效解决了层次聚类中算法复杂度过高的问题,在提高聚类效率的同时,保留了原层次聚类的精确度,提高了污水工艺中异常数据点的发现率,避免了因数据量大复杂度高而产生的延迟问题。

3.凝聚型层次聚类有终止条件模糊的算法弊端,本发明基于lda的信息增益算法作为聚类的终止条件,从而很好的解决了层次聚类算法中聚类效果不稳定的问,在投影后使得“类内方差最小,类间方差最大”。

附图说明:

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。

图1是本发明实施提供的污水处理工艺流程图。

图2是本发明实施提供的污水处理数据聚类算法的流程图,其中a部分为预处理,b部分为聚类方法。

具体实施方式:

本发明提供了一种用于污水异常检测的改进型层次聚类方法,该发明能很好的在不同时段下降污水自动化的处理过程的异常进行高效快速的检测,从而及时排除污水处理中的异常,提高了系统的利用率,并可以将系统的能耗和亏损降低,同时使污水处理工艺向自动化和智能化迈进。

s1:在污水处理工艺系统中对污水中的各项参数进行数据集的采集和处理,根据“进水cod值”曲线将收集到的数据按不同的时间段进行划分为四个不同的时间段0:00-8:00,8:00-14:00,14:00-20:00,20:00-24:00,并对相关数据进行标准化处理,

取一段数据集其中n为数据集中数据点的个数,n为数据点的维度,将数据集x进行标准化处理,得到标准化矩阵

式中e(x)表示数据集x表示的均值矩阵,表示方差矩阵。

对处理后的数据用pca进行降维,设新坐标记(载荷矩阵)为xi为一个相关数据点,为投影变换后的重构样本,根据最小距离得到pca推导公式:

得到:

最终得到相对预处理后的数据集d;

s2:将预处理后的相关数据d进行网格聚类,获取当前数据点,并根据数据集中数据的相关分布对n维数据设置网格步长l和相关密度阈值x,按照高维度矩形的方式以步长l对数据集进行互不相交的划分,形成网格状的数据单元格,并以此定义该数据集为一个网格单元集,将相关单元中的数据点映射到对应的单元格内,每一个单元内的数据点形成一个数据点簇,完成网格聚类的初次聚类。

按照一定顺序选取密度大于密度阈值的网格(及当前网格密度ρ>密度阈值x),将其与所述中心网格相邻的且大于阈值的网格进行合并,直至所有的网格都合并完成,对当前结果判断所述合并后的网格是否存在边界点,并其边界上的数据点按照一定算法与其所在网格进行合并。

将合并后的网格进行标记,同一网格内的数据点建立为一个初始簇{x1,x2,...,xk}(其中k为当前聚类的个数),并按照该结果进行下一步的计算和聚类。

s3:基于lda的信息增益算法建立损失函数,作为聚类的终止条件。

给定数据集d={(x1,y1),(x2,y2),...,(xm,ym)},其中,m为预处理后的数据点的个数,yi∈{c1,c2,...,cm},cj为当前聚类中的簇,其中包含的数据点数量为nj。设所有数据点的均值向量为μ,第j类数据点的均值向量为μj,第j类数据点的协方差矩阵为σj。

其中第j类均值样本的均值向量为:

σj的表达式为:

将当前聚类投影到维度为d的超平面内,且其对应的基向量为(ω1,ω2,...,ωd),设定w为对应基向量矩阵,根据数据点在d维超平面的投影,由于需要不同的簇间投影距离最大,且使同一类数据点中的投影距离最小,则根据lda算法模型可得相应的判定表达式为:

其中,为矩阵q的主对角线元素的乘积,w为基向量矩阵,sb和sω分别为

将以上目标式进行改写,将w改为标量函数进行优化,得到损失函数:

即根据lda算法的原理,当j(ω)为最大时,对聚类结果进行投影,不同类别之间的数据点距离最大而同一类别的数据点间距离最小,此时矩阵sbsω-1为最小特征值。若目标函数收敛,则聚类停止,获得最佳聚类结果。

s4:以凝聚的层次聚类算法进行当前簇的聚类,从初始簇开始进行,以当前最近距离的两个簇相融合的方式进行层次聚类,直至得到期望的聚类数为止。

对当前聚类计算不同类数据点的簇间距离,并根据结果构造相关距离矩阵,如果簇ci和簇cj两簇的簇间距离为当前聚类结果中所有簇两两之间的距离最小的,那么将ci和cj合并为新的簇ct,重复这一过程将簇间距离最小的类不断合并,形成新的聚类结果。在这里,使用averagelinkage的方法计算簇间距离,averagelinkage是指两个聚类所有的数据点间的距离的平均距离代表两个聚类的距离,相比其他簇间距离的计算方法,该算法复杂度高,但用于相关工艺可以更准确地进行数据点的聚类,并找到相关异常集。

averagelinkage算法的计算公式为:

其中ni是簇ci中对象的数目,nj是簇cj中对象的数目。

用欧氏距离进行两个数据点间距离的计算,凝聚的层次聚类方法的平均距离方法的算法描述如下:

假设当前聚类簇的个数为n,若两个簇分别用r和s表示,则簇r与s之间的欧氏距离(即两个簇之间数据点的平均距离)为d(r,s),其距离矩阵为a=[d(i,j)](i,j)为当前聚类中的簇),聚类结果用cq表示,q表示当前聚类的次数。下面是算法的具体描述:

(1)将q进行初始化,即q=0,n为初始簇的个数;

(2)从当前所有簇对中,根据d(i,j)=avgd(xi,xj)(xi∈i,xj∈j,i≠j)找到距离最近(最相似)的两个簇r和s;

(3)将当前聚类层数加1,即q=q+1,将两个簇合并得到新的簇;

(4)更新距离矩阵a,删除簇r,s相应的行和列,并在矩阵中加上新生成的簇相应的行和列。

(5)重复(2)~(4),直到达到相应的终止条件为止。

簇间距离的计算公式如下:

其中xi和xj分别是簇i与j中的数据点,m、n分别为簇ci和cj的簇内数据点个数。

层次聚类算法的大体流程如下:

a.将由网格聚类后得到的结果作为初始簇进行层次聚类,并使用欧式距离计算簇间距离d(i,j),得到初始化距离矩阵a,i和j为当前聚类中的簇;

b.根据欧几里得距离矩阵的结果,将簇间距离最小的两个簇r,s进行合并,得到新的簇w;

c.重新计算新的簇w与其他所有簇之间的距离d(w,i),i为当前聚类中的簇,并根据结果更新距离矩阵;

d.判断当前的聚类结果是否符合终止条件,若符合,则以前一次聚类结果为最终结果进行输出,若不符合,则重复执行b,c,d三个步骤。

s5:对当前损失函数进行计算,若损失函数减小,则返回step4,否则返回前一次的聚类结果,并根据一定算法进行离群点的计算,以每个簇内的数据密度作为判断依据,将数量远少于其他簇中数据点数量的簇提取出来,标记为异常点,通过判断其对应的异常类型进行相应故障排除,对污水处理工艺进行相关的异常修复。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施样例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施样例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1