本发明属于信号处理领域,尤其涉及一种基于n-gram模型的工业报警泛滥预测方法。
背景技术
在目前的工业领域中,报警系统作为对工业过程中的异常情况进行监控和警报的角色被广泛应用。然而目前的工业报警系统依然存在着很多的问题,如滋扰报警,常驻报警和报警泛滥等。滋扰报警指的是短时间内产生的大量无意义的,不需要操作员进行响应的报警,这些报警的存在会降低操作人员对真正报警的响应能力;常驻报警指的是出现后持续保持很长时间的报警,这些报警通常在操作员采取动作后依旧清不掉,会影响操作员对系统工作状态的判断;报警泛滥是指短时间内发生许多报警,而且通常是由单一事件触发的,这些报警通常超过了操作人员的处理极限,解决起来比较复杂。
目前针对报警泛滥的研究工作主要在针对报警泛滥序列的相似性分析方面,而针对工业过程中实时出现的报警泛滥的及时预判和处理的研究还是一片空白。
报警泛滥的预测是指对于正在出现的报警泛滥,系统能够预测出下一个可能发生的报警,从而使操作人员能够提前进行操作。目前关于报警泛滥的预测主要存在的问题有:1)没有对历史报警泛滥进行分类的前提下直接进行预测,导致某些由不同事件导致的但是又有部分报警相同的历史报警泛滥用于预测时产生误导的结果;2)没有考虑历史报警泛滥数据库中数据的数量对于预测结果的影响,由实际经验来看,历史数据越多,对于预测的结果就会越精准,传统的n-gram预测方法并不能反映出历史数据数量对结果带来的影响,导致输出错误的预测结果,影响操作人员的判断。
以上两个问题为报警预测的可靠性造成了障碍,如果不解决将会可能造成错误的报警预测,影响操作人员的判断,造成工业生产过程中的安全和经济损失。
技术实现要素:
根据以上现有技术的不足,本发明提供了一种基于n-gram模型的工业报警泛滥预测方法,其能解决目前在没有考虑历史报警泛滥的分类以及历史报警泛滥数据库中的数据数量的情况下进行报警泛滥预测而出现的预测不准确的问题。
本发明解决的技术问题采用的技术方案包括如下步骤:
(1)获取历史报警泛滥数据集
(2)将第一数据集
(3)设定时间窗口和时间窗口的滑动大小对第二数据集
(4)通过贝叶斯概率模型求出预测下一个出现的报警的概率和对应的置信区间[z1,z2];
(5)对步骤(3)和步骤(4)进行n次迭代运算,取置信区间[z1,z2]下限z1最高的结果对应的数据集中的序列为最佳预测数据集,并将对应的预测结果输出为最终预测结果。
进一步地,步骤(1)的具体实现为:
报警变量xi的区分度di=log{n/|m:xi∈xaf(m)},其中n代表数据集
进一步地,步骤(2)的具体实现过程为:
采用smith-waterman算法计算相似性分数,当正在出现的报警序列xas与第一数据集
其中(1≤i′≤j-1,1≤j′≤ml),wk′=k′w1是插空长度为k′时的罚分,w1为单位罚分,
进一步地,所述步骤(3)中,设定对第二数据集
进一步地,考虑到预测的准确性和运算速度,n的优选值为3。
进一步地,步骤(4)中,考虑到实际情况中用于预测的历史报警泛滥数据集大小会对预测结果的可靠性产生影响,比如用10个和100个报警泛滥序列组成的数据集预测出下一个报警为报警变量xj0的概率都为80%,显然100个报警泛滥序列组成的数据集的预测结果要更加可靠,而步骤3中对于数据集大小对结果的影响并无体现,因此我们引入贝叶斯概率模型来改进算法。
设定正在发生的序列xas的下一时刻进入报警状态的报警变量
设定由第二数据集
设定第二数据集
则由事件
其中,因为后验概率
对概率质量函数fx求和即为最终预测报警为报警变量
给出置信度1-α,对概率质量函数fx求和,求出区间[z1,z2],
我们引入置信区间的概念,是为了体现预测的概率值的可信程度。置信区间体现了实际发生的下一个报警的概率落在预测概率结果的周围的程度,假设置信度为95%,置信区间[z1,z2]的下限意味着我们有95%的把握保证下一个发生的报警的可能性至少为zβ。
进一步地,步骤(5)的具体实现过程为:
对步骤(3)和步骤(4)进行n次迭代,第k次删除k(0≤k≤n)条数据集中相似性分数最低的序列,使用数据集
本发明的有益效果是:(1)本发明提出了将预测使用的数据集与要预测的报警泛滥进行相似性比对并根据相似性分数由高到低重新排序的方法,并迭代减少相似分数低的序列,直到得到最佳预测结果,考虑了由同一故障引发的历史报警泛滥能提高预测的准确性,避免了不同故障引发的但是有部分报警相同的历史报警泛滥对预测结果产生的误导;(2)本发明提出的基于贝叶斯概率模型的n-gram预测方法,考虑了用于预测的历史报警泛滥数据集大小对于预测结果的影响,体现了预测结果的可信程度,避免因为样本数量不足对预测结果产生误导。
附图说明
图1是本发明的实施例所述基于n-gram模型的工业报警泛滥预测方法的流程图;
图2是本发明具体应用场景中预测结果的概率质量函数;
图3是本发明具体应用场景中预测概率和置信区间随用于预测的历史报警泛滥数目变化而变化的示意图;
具体实施方式
下面结合附图对本发明作进一步描述。
实施例一:
如图1,本发明所述的一种基于n-gram模型的工业报警泛滥预测方法,包括如下步骤:
s1,获取历史报警泛滥数据集
s2,将第一数据集
s3,设定时间窗口和时间窗口的滑动大小对第二数据集
s4,通过贝叶斯概率模型求出预测下一个出现的报警的概率和对应的置信区间[z1,z2];
s5,对步骤(3)和步骤(4)进行n次迭代运算,取置信区间[z1,z2]下限z1最高的结果对应的数据集中的序列为最佳预测数据集,并将对应的预测结果输出为最终预测结果。
在步骤s1中,获得历史报警泛滥数据集
在步骤s2中,采用smith-waterman算法,当正在出现的报警序列xas与第一数据集
其中(1≤i′≤j-1,1≤j′≤ml),wk′=k′w1是插空长度为k′时的罚分,w1为单位罚分;
h(m)i′-k′,j′-wk′是xi′前插空长度k′的罚分;
h(m)i′,j′-l′-wl′是
0意味着匹配到xi′和
按照以上规则对矩阵进行更新,最终得分矩阵h(m)中最大的元素即为xas和x′af(m)的相似性分数,将第一数据集中的序列根据相似性分数从高到低进行排序,得到第二数据集,记为
步骤s3中,可取时间窗口的长度为n和n-1,时间窗口的滑动大小为t=1s,对第二数据集
显然,条件概率
此外,考虑到预测的准确性和运算速度,本发明将n的值选为3。
在步骤s4中,考虑到实际情况中用于预测的历史报警泛滥数据集大小会对预测结果的可靠性产生影响,比如用10个和100个报警泛滥序列组成的数据集预测出下一个报警为报警变量xj0的概率都为80%,显然100个报警泛滥序列组成的数据集的预测结果要更加可靠,而步骤3中对于数据集大小对结果的影响并无体现,因此我们引入贝叶斯概率模型来改进算法。
具体实现为:
设定正在发生的序列xas的下一时刻进入报警状态的报警变量
设定由第二数据集
设定第二数据集
则由事件
对概率质量函数fx求和即为最终预测报警为
给出置信度1-α,对概率质量函数fx求和,求出区间[z1,z2],
我们引入置信区间的概念,是为了体现预测的概率值的可信程度。置信区间体现了实际发生的下一个报警的概率落在预测概率结果的周围的程度,假设置信度为95%,置信区间[z1,z2]的下限意味着我们有95%的把握保证下一个发生的报警的可能性至少为zβ。
在步骤s5中,对步骤s3和步骤s4进行n次迭代运算,第k次迭代删除k(0≤k≤n)条数据集中相似性分数最低的一条历史报警泛滥序列直到数据集为空。使用数据集
本发明提出了将预测使用的数据集与要预测的报警泛滥进行相似性比对并根据相似性分数由高到低重新排序的方法,并迭代减少相似分数低的序列,直到得到最佳预测结果,考虑了由同一故障引发的历史报警泛滥能提高预测的准确性,避免了不同故障引发的但是有部分报警相同的历史报警泛滥对预测结果产生的误导;同时提出的基于贝叶斯概率模型的n-gram预测方法,考虑了用于预测的历史报警泛滥数据集大小对于预测结果的影响,体现了预测结果的可信程度,避免因为样本数量不足对预测结果产生误导。
以下是本发明所述方法在具体应用场景中的应用。
使用te过程仿真给出一组历史数据报警泛滥数据。其中序列个数为100,n的大小设定为3。
步骤(1),计算数据集中每个报警变量的区分度,剔除掉区分度为0的报警变量。
步骤(2),根据序列相似性分数排列方法将数据集中的所有报警泛滥序列与正在出现的报警序列一一比对并根据相似性分数由大到小重新排序。
步骤(3),对数据集中的序列进行分段,并统计各数据段数量,根据最近两个时刻出现的报警从数据集中查找历史数据段,并通过最大似然法则近似求出对应的条件概率。
步骤(4),使用贝叶斯概率模型求出预测结果对应的概率质量函数,通过对概率质量函数求和进得出预测概率,并求出对应置信水平95%下的置信区间。如图2所示,置信区间为(47.17%,55.81%)。
步骤(5),对数据集进行迭代计算,重复步骤(3)和(4),取所有结果中预测概率置信区间下限最高的结果为最终输出结果。如图3所示,最佳的预测结果为x11,预测概率为98.82%,置信区间为[97.33%,100%](置信度90%),说明系统有90%的把握认为下一个出现的报警为x11的最低概率是97.33%。