一种基于朴素贝叶斯的大段不等长缺失数据填补方法与流程

文档序号:19994391发布日期:2020-02-22 02:35阅读:236来源:国知局
一种基于朴素贝叶斯的大段不等长缺失数据填补方法与流程
本发明涉及数据挖掘
技术领域
,特别涉及一种对工业能源管理系统数据采集过程中出现的大段不等长的缺失数据的数据填补方法。
背景技术
:工业大数据是智能制造与工业互联网的核心,其本质是通过促进数据的自动流动去解决和控制业务问题,减少决策过程中所带来的不确定性,并尽量克服人工决策的缺点。依托于采集到的数据,可以在工业过程和控制中开发人工智能的应用。工业设备由于生产流程复杂、传感器数量众多且取样频率快,在短时间内容易累积大量的数据,其主要呈现出机理模型复杂、时间序列排布,呈现出随时间变化而变化的关联性和规律性、数据依赖性强、数据维度高且存在大量无标签数据等特点。在生产过程中,成千上万的传感器担负着各种各样过程变量的测量任务,是优化程序得以实施的唯一信息来源。在长时间运行过程中,传感器会出现不同程度的精度下降、偏离、漂移,有时甚至会完全失效出现故障并需要拆下来进行检修,这就带来了缺失数据和异常数据的问题。另外,在数据录入过程中认为不重要而未输入以及数据写入数据库的过程也会带来数据缺失问题。在数据缺失中采用均值填补或其他单一简单的填补方式,将会影响采集数据的可靠性。特别是在多设备、多级表计的数据统计环境下,某些数据的不确定性容易让数据分析人员造成误解。以佛山某铝型材厂的能源管理系统为例,该厂在生产环境中布置了超过150个表计,由于网络波动、电磁干扰等因素,部分设备生产数据的采集经常会出现中断的情况,严重的情况下,中断的时间段长达几个小时,严重影响了采集数据的完整性。对生产数据进行符合生产规律的修补,可以保证采集数据的完整性,对于数据分析人员有极大的价值。目前大多数研究都是针对单点或者固定长度的数据缺失进行填补,当待修补的序列长度发生变化时,往往要重新训练数据修补模型;并且数据规律发生变化时,模型的更新迭代需要人工的深度参与,过程计算复杂度高,无法快速适应不同长度的数据缺失段的修补和逐渐变化的生产规律。技术实现要素:本发明的目的是提供一种基于朴素贝叶斯的大段不等长缺失数据填补方法,依据采集到的历史数据建立数据修补模型,可用于工业能源管理系统中高效率处理大段长度不等的缺失数据填补任务。为了实现上述任务,本发明采用以下技术方案:一种基于朴素贝叶斯的大段不等长缺失数据填补方法,包括以下步骤:采集生产数据,并进行生产数据的预处理,包括对生产数据进行固定频率的降采样,以取得固定时间间隔的生产数据序列;对生产数据序列中的生产数据做偏移量计算,得到偏移序列,并去除偏移序列中的异常值,得到新的偏移序列;自定义尺度,利用所述新的偏移序列中的最大值和最小值,确定标尺刻度,并建立标尺数组;利用标尺数组标量化所述新的偏移序列,得到标量化后的序列;利用滑动窗口从所述标量化后的序列中取得固定子序列长度的短序列集合;从所述短序列集合中抽取靠近待修补数据一定时间范围内的短序列子集,对短序列子集中所有的短序列进行切割,指定切割长度并将每个短序列切割成两段,一段作为匹配段,另一段作为预测段;利用朴素贝叶斯法建立数据修补模型,利用数据修补模型进行待修补数据的修补。进一步地,所述的去除偏移序列中的异常值,得到新的偏移序列,包括:求得偏移序列u的平均数μ及其标准差σ;利用平均数μ及其标准差σ对偏移序列u中的数据进行筛选,得到新的偏移序列u0;表示如下:u0={ui,|ui≤μ+5*σ,ui∈u,i=1,2,…}。进一步地,所述的自定义尺度,利用所述新的偏移序列中的最大值和最小值,确定标尺刻度,并建立标尺数组,包括:自定义尺度n,取得偏移量序列u0中的最大值umax和最小值umin,对(umin,umax)进行等距划分,得到标尺刻度(umax-umin)/n;令m=(umax-umin)/n,则标尺数组r表示为:r={r1,…,ri,…,rn}={0,umin+m*1,…,umin+m*j,…,umin+m*(n-1),umax},j=1,2,…n。进一步地,所述的利用标尺数组标量化所述新的偏移序列,得到标量化后的序列,包括:将所述新的偏移序列u0中位于标尺数组中每相邻的两个数据间的偏移量均转换为固定值。进一步地,所述的数据修补模型,表示为:其中:stk表示预测段,shi表示匹配段;p(y=stk|x=shi)表示当匹配段为shi时,预测段为stk的概率;|s(x=shi,y=stk)|表示短序列子集中匹配段和预测段为(shi,stk)的数量;|s(x=shi)|表示短序列子集中匹配段为shi的数量。进一步地,所述的利用数据修补模型进行待修补数据的修补,包括:获取缺失段段前序列、缺失段缺失时间长度、缺失段两端数值,使用标尺将空缺段段前序列转换成标量序列;将缺失段缺失时间长度除以降采样时间间隔得到修补序列的长度;计算缺失段两端数值之差,并除以标尺刻度,得到目标修补序列标量化后的值;使用数据修补模型进行连续预测,生成序列;同时使用约束条件筛选出匹配序列,得到修补结果。进一步地,所述的使用数据修补模型进行连续预测时,采用多级预测策略生成修补序列:①若在短序列子集中存在指定的匹配段,则以指定匹配段的数量为数据修补模型的分母,不同预测段的数量为分子,构建数据修补模型并进行计算;②若在短序列子集中不存在指定的匹配段,则以与指定匹配段相似度较高的匹配段集合的总数为分母,匹配段集合不同预测段的数量为分子构建数据修补模型并进行计算;③若在短序列子集中不存在相似度较高的匹配段,则以所有预测段的总数为分母,不同预测段的数量为分子构建数据修补模型并进行计算,并统计完全重新匹配的次数,直到修补序列长度为l。进一步地,所述的同时使用约束条件筛选出匹配序列,得到修补结果,包括:定义重新匹配率,在限定次数内将小于指定重新匹配率的序列加入候选序列集合,找出集合中与修补序列标量化后的值最接近的序列并使用标尺进行转换,得到此次数据修补的结果。本发明具有以下技术特点:1.针对工业生产规律会逐渐变化的情况,本发明采用建立数据仓库,分时间段对数据进行建模的方法,可以按实际情况对不同时间段进行取舍,加一个权值做融合计算,适应逐渐变化的生产环境。2.针对数据缺失段在生产环境中出现长短不一的情况,本发明使用连续预测再用约束条件筛选的方式可以在一次数据修补过程中同时修补长短不一的数据缺失段。3.针对工业大数据采集设备多,修补效率要求高的情况,本发明提出基于朴素贝叶斯方法建立概率模型的方式在保证模型可以较好地拟合数据的变化规律的同时,与神经网络在环境发生变化后需要重新训练再人工调参的过程相比,可以更高效率地完成数据填补任务。附图说明图1为本发明方法的流程示意图;图2为数据修补流程图;图3、图4、图5和图6分别为实施例中1h、2h、3h和4h数据缺失修补结果示意图。具体实施方式本发明提出一种基于朴素贝叶斯的大段不等长缺失数据填补方法,用朴素贝叶斯的思想结合时间序列分析技术对大量已有数据建立概率模型,保证模型可以较好地拟合数据的变化规律。使用概率模型循环预测出空缺段可能的序列组合,在约束条件的作用筛选出符合空缺段的序列,最终完成缺失数据的数据修补;具体步骤如下:步骤1,数据采集对工业设备的生产数据进行固定周期的数据采集。工厂车间设备在运行的过程中会产生大量的数据,通过网络传输连接工业设备上的组态软件、借助工业以太网关直接连接数控机床的plc控制器等方式可以采集到工业设备的生产数据。生产数据以固定周期进行采集,并存储到数据库中;所述的生产数据可以为多种数据,本实施例中所述的生产数据主要是指不断累加的用量表数据。步骤2,数据预处理为构建数据仓库做铺垫,需要对数据进行初步的预处理,产生符合模型标准的数据。具体过程如下:步骤2.1,对生产数据进行固定频率的降采样,取得固定时间间隔的生产数据序列;对生产数据序列中的生产数据做偏移量计算,得到偏移序列。对生产数据,例如用量表数据进行降采样,得到序列r={s1,s2,s3,s4,…}。其中,si表示某一时刻的数据,任意一对数据(si,si+1)之间的时间间隔t固定。对生产数据序列r做偏移量计算,得到偏移序列u={u1,u2,u3,u4,…}。其中,对于任意一个数据ui,有ui=si+1-si,即ui表示固定时间间隔t内生产数据的偏移量;i=1,2,3,…。步骤2.2,去除影响修补效果的异常值。根据切比雪夫定理,对于任意分布规律的数据,至少有96%的数据位于平均数5个标准差范围内;由此对偏移序列u进行处理:求得偏移序列u的平均数μ及其标准差σ;利用平均数μ及其标准差σ对偏移序列u中的数据进行筛选,得到新的偏移序列u0;具体表示如下:u0={ui|ui≤μ+5*σ,ui∈u,i=1,2,…}上式表示从偏移序列u中找出满足不大于μ+5*σ的所有数据ui组成新的偏移序列u0。偏移序列中的每一个偏移量ui对应一个时间戳ti,该时间戳即为ui所对应的时间间隔起点的时间戳。步骤3,利用滑动窗口构建数据仓库为了更好地抽象出数据的变化规律,需要对数据进行标量化;同时,为了构建一个能够高效率处理大段长度不等的缺失数据的数据修补模型的数据仓库,选择用滑动窗口的方式取得短序列集合作为数据仓库。具体过程如下:步骤3.1,取得标尺信息,标量化数据自定义尺度n,表示将偏移量标量化成标量的最大个数,决定了预测结果的精度。取得偏移量序列u0中的最大值umax和最小值umin,对(umin,umax)进行等距划分,得到标尺刻度(umax-umin)/n;令m=(umax-umin)/n,则标尺数组r表示为:r={r1,…,ri,…,rn}={0,umin+m*1,…,umin+m*j,…,umin+m*(n-1),umax},j=1,2,…n。使用标尺数组标量化序列u0,具体为:将u0中位于标尺数组中每相邻的两个数据间的偏移量均转换为固定值;标量化后的序列记为u1。例如按照表1对u0中的偏移量做转换。表1标尺对照表步骤3.2,使用滑动窗口方法,取得固定长度的短序列集合。滑动窗口是处理时间序列数据的常用方法,指的是按顺序依次取得连续序列。本方案需要使用滑动窗口的方式收集固定长度的短序列集合,具体如下:记标量化后的序列为u1={u1,u2,u3…},对应的时间戳序列为{t1,t2,t3…}其中,uk(k=1,2,3….)表示标量化后的偏移量,tk表示该偏移量对应的时间间隔起点的时间戳;对于任意uk和uk+1,满足tk<tk+1,且tk+1-tk为降采样的时间间隔。故使用滑动窗口方法可取得子序列长度为t的短序列集合s作为数据仓库:s={s1,s2,s3,s4,s5,…},其中,短序列si={ui,ui+1,…,ui+t-1},其中i表示序列中的滑动窗口的起点标号,i=1,2,3,4,5….,ui∈u1。步骤4,建立预处理模型为了适应生产规律随时间的变化,从数据仓库的短序列集合s中抽取靠近待修补数据所在时间点一定范围内,例如选择待修补数据所在时间点的前、后q个时间点的范围内的短序列子集s0作为建模基础。同时,对短序列子集s0的所有短序列进行切割,指定切割长度(n1,n2)将每个短序列切成两段(sh,st),得到数据修补模型的预处理模型。其中,n1+n2=t,称sh段为匹配段,st段为预测段。步骤5,建立数据修补模型朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法,其基本思想为通过已有的先验知识生成模型计算预测事件的后验概率分布估计。通俗来讲,就是通过对历史数据中两个事件连续发生的概率进行估计,当前一事件发生时,用已估计的概率作为后一事件可能发生的概率。其形式化解释如下:给定训练数据集a={(x1,y1),(x2,y2),…,(xn,yn)},记x={x1,x2,…,xn},x中的事件相互独立;yi={ci1,ci2,…,cin},表示事件xi发生后事件yi可能的值。因此,对于事件cik有概率公式:其中,p(y|x)表示x事件发生后y事件发生的概率;p(x,y)表示x事件和y事件同时发生的概率。利用切割后的短序列子集s0,结合朴素贝叶斯法,建立数据修补模型:其中:stk表示某一预测段,shi表示某一匹配段;p(y=stk|x=shi)表示当匹配段为shi时,预测段为stk的概率;|s(x=shi,y=stk)|表示短序列子集中匹配段和预测段为(shi,stk)的数量;|s(x=shi)|表示短序列子集中匹配段为shi的数量。基于以上概率模型,下面分步解释数据修补过程:(1)获取空缺段关键信息取得缺失段(待修补数据)段前序列、缺失段缺失时间长度、缺失段两端数值。使用标尺将空缺段段前序列转换成标量序列spre;将缺失段缺失时间长度除以降采样时间间隔得到修补序列的长度l;计算缺失段两端数值之差,并除以标尺刻度,得到目标修补序列标量化后的值。(2)使用数据修补模型进行连续预测,生成序列;同时使用约束条件筛选出匹配序列,得到修补结果。切割好的短序列子集s0可以根据不同的预测条件构建出相应的数据修补模型,在约束条件下得到符合缺失段变化规律的目标序列。数据修补流程图如图2所示。在取得待修补段长度、差值及段前序列等关键信息后,进入数据修补流程。以段前序列spre为起点,做连续预测操作。即在每一次预测中,使用前一次预测出来的预测段作为本次的匹配段进行下一段序列的预测。最终,生成长度与空缺段相等的序列。为保证修补序列的顺利生成,采用多级预测策略生成修补序列:①若在短序列子集s0中存在指定的匹配段,则以指定匹配段的数量为数据修补模型的分母,不同预测段的数量为分子,构建数据修补模型并进行计算。②若在短序列子集s0中不存在指定的匹配段,则以与指定匹配段相似度较高的匹配段集合的总数为分母,匹配段集合不同预测段的数量为分子构建数据修补模型并进行计算;这里,相似度指的是指定序列与匹配段做异或计算,1的数目越少相似度越高;所述的相似度较高的匹配段,是满足异或计算后1的数目匹配段总数目的c%以下的匹配段。如计算后的结果在c%以上,则认为不存在相似度较高的匹配段。c的值可以根据实际需求设置。③若在短序列子集s0中不存在相似度较高的匹配段,则以所有预测段的总数为分母,不同预测段的数量为分子构建数据修补模型并进行计算,并统计完全重新匹配的次数nr,直到修补序列长度为l。定义重新匹配率即完全重新匹配次数占总预测次数的比例。其中,nr为完全重新匹配次数,l为修补序列长度,n2为预测段长度。使用重新匹配率筛选修补序列,保证了生成序列可以较大程度地利用历史数据的生产规律。在限定次数内将小于指定重新匹配率的序列加入候选序列集合,找出集合中与目标修补序列标量化后的值最接近的序列并使用标尺进行转换,得到此次数据修补的结果。下面通过具体的实施例对本申请的技术方案作进一步说明。步骤1,以某工厂一台慢走丝线切割机的电表数据作为生产数据,采集周期为10s一次,其采集下来的数据主要包括设备编号、采集时间以及表计示数等内容,如表2所示。表2采集数据示例步骤2,为构建数据仓库做铺垫,需要对数据进行初步的预处理,产生符合模型标准的数据。过程包括:按需求取采样间隔3分钟,对数据进行固定频率的降采样,取得固定时间间隔的生产数据,并求得区间内的偏移量。去除影响修补效果的异常值;得到的数据如表3所示。表3预处理电表数据meternometernamerectimeshowvalue偏移量166999476w03-慢走丝线切割电表2018/10/1700:00:005120.020166999476w03-慢走丝线切割电表2018/10/1700:03:0005120.020.01166999476w03-慢走丝线切割电表2018/10/1700:06:005120.030166999476w03-慢走丝线切割电表2018/10/1700:09:005120.030……………166999476w03-慢走丝线切割电表2018/10/2006:45:005325.910.3166999476w03-慢走丝线切割电表2018/10/2006:48:005326.210.3……………步骤3,为了更好地抽象出数据的变化规律,需要对数据进行标量化;同时,为了构建一个能够高效率处理大段长度不等的缺失数据的数据修补模型的数据仓库,选择用滑动窗口的方式取得短序列集合作为数据仓库。过程如下:步骤3.1,取得标尺信息,标量化数据;自定义尺度n=10,表示偏移量标量化成标量的最大个数,决定了预测结果的精度。取得偏移量序列u0中的最大值umax=0.25262和最小值umin=0,对(umin,umax)进行等距划分,得到标尺刻度(umax-umin)/n=0.025262并保存标尺数组r={0,0.025262,…,0.22736,0.25262}。使用标尺数组标量化偏移量序列u0,按照表4对偏移量做转换。表4标尺对照表(2)使用滑动窗口方法,取得固定长度的短序列集合对标量化后的偏移量序列u1使用滑动窗口方法,取得子序列长度为t=10的短序列集合s={s1,s2,s3,s4,s5,…},其中,si={ui,ui+1,…,ui+t-1},i表示序列中的滑动窗口的起点标号,i=1,2,3,4,5….,ui∈u1。得到的数据如表5所示。表5标量化序列表meternometernamerectimeshowvalue偏移量标量序列166999476…2018/10/1700:00:005120.020aabaabababa166999476…2018/10/1700:03:005120.020.01bbaabababab166999476…2018/10/1700:06:005120.030aaababababa166999476…2018/10/1700:09:005120.030aababababaa……………166999476…2018/10/2006:45:005325.910.3jjjjjjiiiig166999476…2018/10/2006:48:005326.210.3jjjjjiiiigg……………步骤4,假设要修补2018/11/1当天的数据采集出现空缺的部分。为了适应生产规律随时间的变化,从数据仓库的短序列集合s中抽取靠近待修补数据所在时间点2018/8/1到2018/10/31范围内的短序列子集s0作为建模基础。同时,对短序列子集s0的所有短序列进行切割,指定切割长度(n1,n2)=(6,4)将序列切成两段(sh,st),得到数据修补模型的预处理模型。如,对于序列“abaabababa”,则切割为(“abaaba”,“baba”)。步骤5,利用模块中的切割好的短序列子集s0,结合朴素贝叶斯法,可以得到一个数据修补模型:假设在短序列子集s0中,|s(x=“abaaba”,y=“baba”)|=748;|s(x=“abaaba”)|=1360;则在匹配段为“abaaba”的条件下,预测段为“baba”的概率p(y=“baba”|x=“abaaba”)=55%。基于以上概率模型,下面分步解释数据修补过程:(1)获取空缺段关键信息假设空缺段段前序列为[5963.08,5963.23,5963.45,5963.7,5963.94,5964.1,5964.32]、缺失段缺失时间长度1小时、缺失段两端数值为[5964.32,5968.03]。使用标尺将空缺段段前序列转换成标量序列spre=[g,j,j,j,h,j];将缺失段缺失时间长度除以降采样时间间隔得到修补序列的长度l=20;计算缺失段两端数值之差,并除以标尺刻度,得到目标修补序列标量化后的值q=146。(2)使用数据修补模型进行连续预测,生成序列;同时使用约束条件筛选出匹配序列,得到修补结果。第一次预测,使用spre=[g,j,j,j,h,j]作为匹配段进行预测,使用数据修补模型按概率取得预测段[j,j,i,i]。同理,取当前序列的前6位作为匹配段,即[h,j,j,j,i,i],使用数据修补模型按概率进行预测;若在短序列子集s0中不存在指定的匹配段,则以与指定匹配段相似度较高的匹配段集合,即[*,j,j,j,i,i],[h,*,j,j,i,i],[h,j,*,j,i,i],[h,j,j,*,i,i],[h,j,j,j,*,i],[h,j,j,j,i,*]的总数为分母,匹配段集合的不同预测段的数量为分子进行计算;这里,相似度指的是指定序列与匹配段做异或计算,1的数目越少相似度越高。若在短序列子集s'中不存在相似度较高的匹配段,则以所有预测段的总数为分母,不同预测段的数量为分子进行计算,并统计完全重新匹配的次数nr;以此类推,直到预测序列长度为l。根据重新匹配率公式有使用pr<=20%作为约束条件,即完全重新匹配的次数nr<=1。将符合条件的序列加入候选集合。找出集合中与目标修补序列标量化后的值t=146最接近的序列并使用标尺进行转换,输出此次数据填补模型的结果。使用15天的数据建立模型,设定标尺长度为10,最大重新匹配率20%,匹配比为[6,4],分别对1h,2h,3h,4h的空缺段进行数据填补,结果如图3,图4,图5,图6所示。由图3,图4,图5,图6的结果可以看出,用朴素贝叶斯的思想结合时间序列分析技术对大量已有数据建立数据修补模型,保证了模型较好地拟合数据的变化规律。同时,采用分时间段对数据进行建模的方法,可以按实际情况对不同时间段进行取舍,加一个权值做融合计算,适应逐渐变化的生产环境。根据需求调节时间范围、标尺精度及约束条件等会得到更符合要求的修补效果。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1