一种呈递增或递减变化趋势的数据处理方法
技术领域
本发明涉及物联网数据分析技术领域,具体涉及一种呈递增或递减变化趋势的数据处理方法。
背景技术
在物联网技术领域,我们需要用到各种各样的传感器对物理世界进行数据采集,将物理量变为电学量进而通过网络传输回数据中心进行数据处理与分析。
现实世界的某些物理量存在呈递增或递减变化趋势,如随时间的变化,累积降雨量呈现出递增趋势、管道内的流量统计呈现出递增趋势以及石油的存储量呈现出递减趋势等。对于这些具有明确呈递增或递减变化趋势的物理量,其真实值只有可能在变化趋势内单向变化,而因传感器的原理及其精度等因素的制约,会出现部分测量的原始数据不符合已知的呈递增或递减变化趋势,这种明显的错误在数据展示的时候是不能出现的,因此需要对原始数据进行处理。
对于该类原始数据,其处理具有一定的特殊性。由于我们需要尊重所测量的每一个原始数据,不能随意的篡改或者剔除任意一个原始数据,所有的原始数据处理需要基于一定的既定规则,不能简单的采用拟合或者其他的算法对整个原始数据做替换处理,同时又需要让处理后的数据最接近真实值。
综上所述,急需一种呈递增或递减变化趋势的数据处理方法以解决现有技术中存在的因传感器测量得到的部分数据不符合已知的呈递增或递减变化趋势的问题,实现在不改变原始数据的情况下,通过剔除最小个数的问题数据来满足已知的递增或递减变化趋势。
发明内容
本发明目的在于提供一种呈递增或递减变化趋势的数据处理方法,具体技术方案如下:
一种呈递增或递减变化趋势的数据处理方法,在具有呈递增或递减变化趋势的多个原始数据中选取n(n≥3)个连续的原始数据作为一个处理窗口进行数据处理,具体包括以下步骤:
步骤1、确定处理窗口内的原始数据满足函数关系式为Y=F(xi),其中i=1、2、....、n;
步骤2、找出步骤1中处理窗口内不符合原始数据呈递增或递减变化趋势的个别原始数据,记为问题数据且问题数据对应的序号按由小到大的顺序依次记为j、k、l、......、t;
步骤3、对于步骤2中序号为j的问题数据分别判断其前后相邻的原始数据是否符合处理窗口内原始数据的呈递增或递减变化趋势,若在序号为j的问题数据之前相邻的原始数据有不符合的,记为事件J1并统计事件J1包含的问题数据个数,若在序号为j的问题数据之后相邻的原始数据有不符合的,记为事件J2并统计事件J2包含的问题数据个数,具体判断方法如下,若处理窗口内的原始数据的变化趋势选择为递增趋势,
对于J1事件,剔除序号为j-1的问题数据之后,判断序号为j-2的原始数据Y=F(xj-2)与序号为j的原始数据Y=F(xj)关系;
如果F(xj)≥F(xj-2),则处理窗口内序号j之前的原始数据已经符合递增变化趋势,事件J1包含的问题数据个数为1;
如果F(xj)<F(xj-2),则继续剔除序号为j-2的问题数据,判断序号为j-3的原始数据Y=F(xj-3)与序号为j的原始数据Y=F(xj)的关系;
如果F(xj)≥F(xj-3),则处理窗口内序号j之前的原始数据已经符合递增变化趋势,事件J1包含的问题数据个数为2;
如果F(xj)<F(xj-3),则继续剔除序号为j-3的问题数据,直到剔除序号为j-i+1的问题数据之后,判断序号为j-i的原始数据Y=F(xj-i)与序号为j的原始数据Y=F(xj)的关系,其中i≤j-1,且i=1、2、....、n;
如果F(xj)≥F(xj-i),则处理窗口内序号j之前的原始数据已经符合递增变化趋势,事件J1包含的问题数据个数为i-1;
如果F(xj)<F(xj-i),则事件J1包含的问题数据个数为i,序号j之前的所有原始数据均为问题数据,需全部剔除;
对于J2事件,剔除序号为j的问题数据之后,判断序号为j+1的原始数据Y=F(xj+1)与序号为j-1的原始数据Y=F(xj-1)关系;
如果F(xj+1)≥F(xj-1),则处理窗口内序号j之后且序号k之前的原始数据已经符合递增变化趋势,事件J2包含的问题数据个数为1;
如果F(xj+1)<F(xj-1),则继续剔除序号为j+1的问题数据,判断序号为j+2的原始数据Y=F(xj+2)与序号为j-1的原始数据Y=F(xj-1)的关系;
如果F(xj+2)≥F(xj-1),则处理窗口内序号j之后且序号k之前的原始数据已经符合递增变化趋势,事件J2包含的问题数据个数为2;
如果F(xj+2)<F(xj-1),则继续剔除序号为j+2的问题数据,直到剔除序号为j+i-1的问题数据之后,判断序号为j+i的原始数据Y=F(xj+i)与序号为j-1的原始数据Y=F(xj-1)的关系,其中i≤n-j,且i=1、2、....、n;
如果F(xj+i)≥F(xj-1),则处理窗口内序号j之后且序号k之前的原始数据已经符合递增变化趋势,事件J2包含的问题数据个数为i;
如果F(xj+i)<F(xj-1),则事件J2包含的问题数据个数为i+1;即将序号j之后且序号k之前的所有原始数据均为问题数据,需全部剔除;
依此类推,分别判断序号为k、l、......、t的问题数据的情况,依次记为事件K1并统计事件K1包含的问题数据个数、记为事件K2并统计事件K2包含的问题数据个数、记为事件L1并统计事件L1包含的问题数据个数和记为事件L2并统计事件L2包含的问题数据个数、......、记为事件T1并统计事件T1包含的问题数据个数和记为事件T2并统计事件T2包含的问题数据个数;
步骤4、将步骤3中所述的事件J1、J2、K1、K2、L1、L2、......、T1和T2包含的问题数据个数按照表达式A=min(J1,J2)+min(K1,K2)+min(L1,L2)+......+min(T1,T2)计算出最少问题数据个数值A,并将对应序号的问题数据剔除,进而得到优化后的且严格呈递增或递减变化趋势的原始数据。
优选的,在所述步骤4中还包括至少两组A值相等的情况,分别记为A1和A2且A1=A2。
优选的,还包括步骤5、经步骤4剔除问题数据后,对处理窗口内的原始数据采用最小二乘法进行数据拟合,得到拟合函数Yi=f(xi)=axi+b,其中i=1、2、....、n且i不包括步骤4中剔除的A值所对应的问题数据的序号,并求出a值和b值。
优选的,在A1情况下采用步骤5所述的最小二乘法对处理窗口内的原始数据进行数据拟合,得到拟合函数Yi′=f(xi′)=a′xi′+b′,其中i=1、2、....、n且i不包括步骤4中剔除的A1值所对应的问题数据的序号,并求出a′值和b′值;
在A2情况下采用步骤5所述的最小二乘法对处理窗口内的原始数据进行数据拟合,得到拟合函数Yi″=f(x″i)=a″x″i+b″,其中i=1、2、....、n且i不包括步骤4中剔除的A2值所对应的问题数据的序号,并求出a″值和b″值。
优选的,处理窗口内的原始数据函数Y=F(xi)与拟合函数Yi′=f(x′i)=a′x′i+b′间的偏差平方和公式为其中i=1、2、....、n且i不包括步骤4中剔除的A1值所对应的问题数据的序号;
处理窗口内的原始数据函数Y=F(xi)与拟合函数Yi″=f(x″i)=a″x″i+b″间的偏差平方和公式为其中i=1、2、....、n且i不包括步骤4中剔除的A2值所对应的问题数据的序号;
比较σ′2和σ″2值的大小,选取数值最小的偏差平方和作为最优解,所述最优解对应的拟合函数为最优拟合函数。
应用本发明的技术方案,具有以下有益效果:
本发明所述的呈递增或递减变化趋势的数据处理方法能够在不改变原始数据的情况下,通过剔除最小个数的问题数据来满足已知的递增或递减变化趋势,便能找到最接近真实情况且符合已知的呈递增或递减变化趋势的拟合函数,有效的解决了现有技术中存在的因传感器测量得到的部分数据不符合已知递增或递减变化趋势的问题。
除了上面所描述的目的、特征和优点之外,本发明还有其它的目的、特征和优点。下面将参照实施例,对本发明作进一步详细的说明。
具体实施方式
以下对本发明的实施例进行详细说明,但是本发明可以根据权利要求限定和覆盖的多种不同方式实施。
实施例1:
一种呈递增或递减变化趋势的数据处理方法,在本实施例中选取一自制固液混合流体(其中,固相为泥浆,液相为水)充分混匀后置于一底部设有10个排水孔(孔径优选为1mm)的圆柱形玻璃容器(底部直径优选为20cm)中,并在容器正上方设置用于实时监测流体液位高度差(所述流体液位高度差即流体的初始液位与监测时的液位间的差值)的激光测距传感器(该传感器的型号为华测创时HC-G50),本实施例是为模拟地表沉降而设计的,由传感器监测的流体液位高度差(流体液位高度差即原始数据)随时间(选取的时间初始值为下午1:00,每间隔半小时由传感器监测一次原始数据并通过网络传输回数据中心进行数据处理与分析)的变化呈现递增趋势,在具有递增变化趋势的多个原始数据中选取n=24(n≥3)个连续的原始数据作为一个处理窗口进行数据处理,具体包括以下步骤:
步骤1、确定处理窗口内的原始数据满足函数关系式为Y=F(xi),其中i=1、2、....、24,具体原始数据随时间的变化情况见表1;
步骤2、找出步骤1中处理窗口内不符合原始数据呈递增变化趋势的个别原始数据,记为问题数据且问题数据对应的序号按由小到大的顺序依次记为j=7、k=15和l=20;
步骤3、对于步骤2中序号为j=7的问题数据分别判断其前后相邻的原始数据是否符合处理窗口内原始数据的递增变化趋势,若在序号为j=7的问题数据之前相邻的原始数据有不符合的,记为事件J1并统计事件J1包含的问题数据个数,若在序号为j=7的问题数据之后相邻的原始数据有不符合的,记为事件J2并统计事件J2包含的问题数据个数,具体判断方法如下,因处理窗口内的原始数据的变化趋势选择为递增趋势,
对于J1事件,剔除序号为j-1=7-1=6的问题数据之后,判断序号为j-2=7-2=5的原始数据Y=F(xj-2)=F(x5)与序号为j=7的原始数据Y=F(xj)=F(x7)关系;
因F(x7)≥F(x5),则处理窗口内序号j=7之前的原始数据已经符合递增变化趋势,事件J1包含的问题数据个数为1;
对于J2事件,剔除序号为j=7的问题数据之后,判断序号为j+1=7+1=8的原始数据Y=F(xj+1)=F(x8)与序号为j-1=7-1=6的原始数据Y=F(xj-1)=F(x6)关系;
因F(x8)<F(x6),则继续剔除序号为j+1=7+1=8的问题数据,判断序号为j+2=7+2=9的原始数据Y=F(xj+2)=F(x9)与序号为j-1=7-1=6的原始数据Y=F(xj-1)=F(x6)的关系;
因F(x9)≥F(x6),则处理窗口内序号j=7之后且序号k=15之前的原始数据已经符合递增变化趋势,事件J2包含的问题数据个数为2;
依此类推,分别判断序号为k和l的问题数据的情况,依次记为事件K1并统计事件K1包含的问题数据个数、记为事件K2并统计事件K2包含的问题数据个数、记为事件L1并统计事件L1包含的问题数据个数和记为事件L2并统计事件L2包含的问题数据个数,经步骤3分析知,J1=1,J2=2,K1=1,K2=1,L1=2,L2=2,;
步骤4、将步骤3中所述的事件J1、J2、K1、K2、L1和L2包含的问题数据个数按照表达式A=min(J1,J2)+min(K1,K2)+min(L1,L2)=min(J1,K1,L1)=min(J1,K2,L1)=min(J1,K1,L2)=min(J1,K2,L2)=1+1+2=4计算出最少问题数据个数A,并将对应序号的问题数据剔除,其中,考虑到L1=L2,若剔除事件L1包含的问题数据,则由表1知在序号为l=20后还会出现问题数据,如序号为21对应的问题数据7.7(因F(x21)=7.7<F(x20)=7.9),若剔除事件L2包含的问题数据,则由表1知在序号为l=20后不会出现问题数据,因此,为简化运算,优选剔除事件L2包含的问题数据;
步骤5、经步骤4剔除问题数据后,对处理窗口内的原始数据采用最小二乘法进行数据拟合,得到拟合函数Yi=f(xi)=axi+b,其中i=1、2、....、24且i不包括步骤4中剔除的A值所对应的问题数据的序号,并求出a值和b值。
在所述步骤4中还包括至少两组A值相等的情况,分别记为A1=min(J1,K1,L2)=1+1+2=4和A2=min(J1,K2,L2)=1+1+2=4且A1=A2;
在A1情况下采用步骤5所述的最小二乘法对处理窗口内的原始数据进行数据拟合,得到拟合函数Yi′=f(xi′)=a′xi′+b′,其中i=1、2、....、24且i不包括步骤4中剔除的A1值所对应的问题数据的序号6、14、20和21,并求出a′值为0.1418和b′值为5.2855;
在A2情况下采用步骤5所述的最小二乘法对处理窗口内的原始数据进行数据拟合,得到拟合函数Yi″=f(x″i)=a″x″i+b″,其中i=1、2、....、24且i不包括步骤4中剔除的A2值所对应的问题数据的序号6、15、20和21,并求出a″为0.1428值和b″值为5.2911。
处理窗口内的原始数据函数Y=F(xi)与拟合函数Yi′=f(x′i)=a′x′i+b′间的偏差平方和公式为其中i=1、2、....、24且i不包括步骤4中剔除的A1值所对应的问题数据的序号6、14、20和21,参见表2;
处理窗口内的原始数据函数Y=F(xi)与拟合函数Yi″=f(x″i)=a″x″i+b″间的偏差平方和公式为其中i=1、2、....、24且i不包括步骤4中剔除的A2值所对应的问题数据的序号6、15、20和21,参见表3;
由表2和表3知,比较σ′2和σ″2值的大小,选取数值最小的偏差平方和σ″2作为最优解,所述最优解对应的拟合函数为最优拟合函数。
表1在处理窗口内的流体液位高度差随时间的变化关系
表2在A1情况下处理窗口内原始数据函数Y=F(xi)与拟合函数Yi′=f(x′i)=a′x′i+b′间的偏差平方和情况
表3在A2情况下处理窗口内原始数据函数Y=F(xi)与拟合函数Yi″=f(x″i)=a″x″i+b″间的偏差平方和情况
综上分析知,本实施例的最优拟合函数为Yi″=f(x″i)=a″x″i+b″=0.1428x″i+5.2911,其中其中i=1、2、....、24且i不包括步骤4中剔除的A2对应的问题数据所对应的序号6、15、20和21,σ″2=0.3539146。
本实施例所述的呈递增或递减变化趋势的数据处理方法能够在不改变原始数据的情况下,通过剔除最小个数的问题数据来满足已知的递增变化趋势,便能找到最接近真实情况且符合已知的递增变化趋势的拟合函数,有效的解决了现有技术中存在的因传感器测量得到的部分数据不符合已知的递增变化趋势的问题。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。