基于经验模态分解和前馈神经网络对时序数据的预测方法转让专利

申请号 : CN202010230486.3

文献号 : CN111428201B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 姚若侠刘云鹤

申请人 : 陕西师范大学

摘要 :

一种基于经验模态分解和前馈神经网络对时序数据的预测方法,由对数据集缺失值处理、独热编码处理、主成分分析方法降维、经验模态分解、数据标准化处理、前馈神经网络训练、对测试集测试步骤组成。本发明采用了主成分分析方法降维和经验模态分解方法,通过降维减少预测变量的个数,得到的数据包含了原始数据的大部分信息,保证降维后得到的数据中每个变量不包含重复的原始数据信息,在前馈神经网络训练时,用本征模函数代替原始时序数据进行训练,输入降维后的数据集,减少了变量个数,获得了准确的结果,训练时间大幅度减少,可用于对时序数据预测。

权利要求 :

1.一种基于经验模态分解和前馈神经网络对时序数据的预测方法,其特征在于由下述步骤组成:(1)对数据集缺失值处理

将时序数据集Ab的缺失值进行统计并查找其位置,缺失值超过3个连续出现时,删除包含该缺失值的行,缺失值的位置连续数为1~3时,用缺失值插补法中的均值插补法进行缺T失值填充,得到时序数据集A{A1,A2,A3},其中A1{x1,x2,...,xm|xi=(xi1,xi2,…,xiq) ,i为有限正整数;q为数据集A的样本个数}为数据集中的类别变量,A2{y1,y2,…,yn|yj=(yj1,Tyj2,…,yjq) ,j为有限正整数}为数据集中除去类别变量和待预测时序数据的其它变量,A3T{z1,z2,…,zp|zl=(zl1,zl2,…,zlq) ,l为有限正整数}为数据集中需要预测的时序数据;

(2)独热编码处理

对数据集中的类别变量A1,进行独热编码方法处理,统计类别变量A1中每一个类别变量xi的类别值个数,用连续自然数从1开始对类别变量xi的类别值进行代替,自然数的个数为类别变量值的个数,再进行独热编码处理,将类别变量A1转换成二进制编码矩阵B{B1,B2,…,Bm|Bi为类别变量xi独热编码得到的数据};

(3)主成分分析方法降维

对数据集中的其它变量A2,除去数据集中的时间戳变量,得到剩余变量A4{s1,s2,…,st|s1,s2,…,st为其它变量A2去掉时间戳变量的剩余变量,t为有限正整数,t≤n},绘制出剩余变量A4的折线图,观察剩余变量A4的特性,将剩余变量A4通过主成分分析方法进行降维处理,得到矩阵P{p1,p2,…,pk|p1,p2,…,pk为剩余变量A4用主成分分析方法降维之后得到的数据,k为有限正整数,k≤t};

(4)经验模态分解

对数据集中的时序数据A3进行经验模态分解,得到包含本征模函数和余量的矩阵I{IMF1,IMF2,…,IMFs,r|IMFe为本征模函数,e=1,2,…,s;s为经验模态分解得到的本征模函数个数,r为余量};

(5)数据标准化处理

每一个本征模函数IMFe和余量r分别与二进制编码矩阵B,矩阵P,拼接成e个新的数据集Ce{IMFe,B,P}和数据集Cr{r,B,P},对所有数据集Ce和数据集Cr,用数据标准化处理方法进行处理,得到对应的数据集De{d1,d2,…,dg|d1,d2,…,dg为数据集Ce经过数据标准化方法处理后得到的数据,g为有限正整数}和数据集Dr{d1,d2,…,dg|d1,d2,…,dg为数据集Cr经过数据标准化方法处理之后得数据},按下式将数据集Ce和数据集Cr中的所有数据投影到[‑1,1]区间:*

其中,x为数据集Ce和数据集Cr每一个变量的数据值标准化后得到的在[‑1,1]区间的值,xmean为数据集Ce和数据集Cr中每一个变量的数据值的平均值,xmax为数据集Ce和数据集Cr中的每一个变量值中的最大值,xmin为数据集Ce和数据集Cr中每一个变量值中的最小值;

(6)前馈神经网络训练

将数据集De和数据集Dr作为前馈神经网络的输入,并且将数据集De和数据集Dr的样本分为训练集和测试集,训练集与测试集的样本比为450:1,将数据集De和数据集Dr对应的本征模函数IMFe和余量r作为输出,本征模函数IMFe和余量r也分为训练集和测试集,训练集与测试集的样本比为450:1,将训练集依次输入前馈神经网络进行预测模型训练,当训练目标最小误差小于0.001时停止训练,得到预测模型;

(7)对测试集测试

测试集依次输入对应预测模型,得到预测结果,所有预测结果相加得到预测值的总和,确定预测结果总和与真值的标准差。

2.根据权利要求1所述的基于经验模态分解和前馈神经网络时序数据的预测方法,其特征在于在主成分分析方法降维步骤(3)中,所述的主成分分析方法为:(1)构建n个样本矩阵

采集原始数据变量的标准化p维随机向量x,构建n个样本矩阵T

x=(x1,x2,K,xp)

T

xi=(xi1,xi2,...,xin)

其中,n、p为有限正整数,n>p,对矩阵x进行如下标准化变化:2

其中Zij为xij标准化后的值,xi为所有元素的平均值,Sj为xi所有元素的均方根,变换后得标准化矩阵Z;

(2)确定相关系数矩阵

按下式确定相关系数矩阵R:

其中,i、j为有限正整数;

(3)确定单位特征向量

按下式得p个特征根:

|R‑λIp|=0

按下式得m的值,确定主成分:

其中t代表信息的利用率,对每个λj,

Rbj=λjbj

得单位特征向量

(4)将标准化后的变量转换为主成分

按下式确定主成分:

(5)对得到的m个主成分进行加权求和,权数为每个主成分的方差贡献率,得到最终评价值。

3.根据权利要求1所述的基于经验模态分解和前馈神经网络时序数据的预测方法,其特征在于在经验模态分解步骤(4)中,所述的经验模态分解方法步骤如下:(1)找出原始时序数据序列x(t)的所有极大值点与极小值点,用三次样条插值函数拟合形成数据的上包络线和下包络线;

(2)确定上包络线、下包络线的均值m1(t)如下:其中up(t)为极大值形成的上包络线,low(t)为下包络线;

(3)确定本征模函数

x(t)‑m1(t)=h1(t)

将h1(t)视为新的信号x(t),重复步骤(1)、(2),直至h1(t)满足下述本征模函数的条件:

1)该函数在整个时间范围内,局部极值点和过零点的数目相等或相差1个;

2)在任意时刻,局部最大值的上包络线和局部最小值的下包络线平均为零;

(4)按下式确定剩余分量r1(t)

r1(t)=x(t)‑h1(t)

其中h1(t)为第一个本征模函数;.

(5)将剩余分量r1(t)作为新的原始数据,重复步骤(1)~(4),直至得到所有的本征模函数和1个趋势项。

说明书 :

基于经验模态分解和前馈神经网络对时序数据的预测方法

技术领域

[0001] 本发明属于时序数据预测的领域,具体涉及EMD分解、PCA降维和BP神经网络训练等方法。

背景技术

[0002] 目前已经有很多方法可用于对时序数据进行预测,比如向量自回归模型、自回归滑动平均模型、自回归积分滑动平均模型,以及基于回归的方法线性支持向量回归。这些模型经常假设时间序列有确定的分布或函数形式,但是不能获取复杂潜在的非线性关系。其他模型,如高斯过程需要较高的计算成本来处理大尺度的数据。
[0003] 目前从实际生活中记录的时序数据大都是没有任何函数特性的数据,直接将这些数据输入神经网络进行训练,得不到最优的训练模型,消耗了大量的时间,用现有的时序数据预测方法进行预测,只能预测到后面的一两个点,得不到满意的预测效果。

发明内容

[0004] 本发明所要解决的预测问题在于克服上述现有预测方法的不足,提供一种预测结果准确、处理数据速度快、精度高的基于经验模态分解和前馈神经网络对时序数据的预测方法。
[0005] 解决上述技术问题所采用的技术方案由下述步骤组成:
[0006] (1)对数据集缺失值处理
[0007] 将时序数据集Ab的缺失值进行统计并查找其位置,缺失值超过3个连续出现时,删除包含该缺失值的行,缺失值的位置连续数为1~3时,用缺失值插补法中的均值插补法进T行缺失值填充,得到时序数据集A{A1,A2,A3},其中A1{x1,x2,...,xm|xi=(xi1,xi2,…,xiq) ,i为有限正整数;q为数据集A的样本个数}为数据集中的类别变量,A2{y1,y2,…,yn|yj=(yj1,T
yj2,…,yjq) ,j为有限正整数}为数据集中除去类别变量和待预测时序数据的其它变量,A3T
{z1,z2,…,zp|zl=(zl1,zl2,…,zlq) ,l为有限正整数}为数据集中需要预测的时序数据。
[0008] (2)独热编码处理
[0009] 对数据集中的类别变量A1,进行独热编码方法处理,统计类别变量A1中每一个类别变量xi的类别值个数,用连续自然数从1开始对类别变量xi的类别值进行代替,自然数的个数为类别变量值的个数,再进行独热编码处理,将类别变量A1转换成二进制编码矩阵B{B1,B2,…,Bm|Bi为类别变量xi独热编码得到的数据}。
[0010] (3)主成分分析方法降维
[0011] 对数据集中的其它变量A2,除去数据集中的时间戳变量,得到剩余变量A4{s1,s2,…,st|s1,s2,…,st为其它变量A2去掉时间戳变量的剩余变量,t为有限正整数,t≤n},绘制出剩余变量A4的折线图,观察剩余变量A4的特性,将剩余变量A4通过主成分分析方法进行降维处理,得到矩阵P{p1,p2,…,pk|p1,p2,…,pk为剩余变量A4用主成分分析方法降维之后得到的数据,k为有限正整数,k≤t}。
[0012] (4)经验模态分解
[0013] 对数据集中的时序数据A3进行经验模态分解,得到包含本征模函数和余量的矩阵I{IMF1,IMF2,…,IMFs,r|IMFe为本征模函数,e=1,2,…,s;s为经验模态分解得到的本征模函数个数,r为余量}。
[0014] (5)数据标准化处理
[0015] 每一个本征模函数IMFe和余量r分别与二进制编码矩阵B,矩阵P,拼接成e个新的数据集Ce{IMFe,B,P}和数据集Cr{r,B,P},对所有数据集Ce和数据集Cr,用数据标准化处理方法进行处理,得到对应的数据集De{d1,d2,…,dg|d1,d2,…,dg为数据集Ce经过数据标准化方法处理后得到的数据,g为有限正整数}和数据集Dr{d1,d2,…,dg|d1,d2,…,dg为数据集Cr经过数据标准化方法处理之后得数据},按下式将数据集Ce和数据集Cr中的所有数据投影到[‑1,1]区间:
[0016]
[0017] 其中,x*为数据集Ce和数据集Cr每一个变量的数据值标准化后得到的在[‑1,1]区间的值,xmean为数据集Ce和数据集Cr中每一个变量的数据值的平均值,xmax为数据集Ce和数据集Cr中的每一个变量值中的最大值,xmin为数据集Ce和数据集Cr中每一个变量值中的最小值。
[0018] (6)前馈神经网络训练
[0019] 将数据集De和数据集Dr作为前馈神经网络的输入,并且将数据集De和数据集Dr的样本分为训练集和测试集,训练集与测试集的样本比为450:1,将数据集De和数据集Dr对应的本征模函数IMFe和余量r作为输出,本征模函数IMFe和余量r也分为训练集和测试集,训练集与测试集的样本比为450:1,将训练集依次输入前馈神经网络进行预测模型训练,当训练目标最小误差小于0.001时停止训练,得到预测模型。
[0020] (7)对测试集测试
[0021] 测试集依次输入对应预测模型,得到预测结果,所有预测结果相加得到预测值的总和,确定预测结果总和与真值的标准差。
[0022] 在本发明的主成分分析方法降维步骤(3)中,所述的主成分分析方法为:
[0023] 1)构建n个样本矩阵
[0024] 采集原始数据变量的标准化p维随机向量x,构建n个样本矩阵
[0025] x=(x1,x2,K,xp)T
[0026] xi=(xi1,xi2,...,xin)T
[0027] 其中,n、p为有限正整数,n>p,对矩阵x进行如下标准化变化:
[0028]
[0029]
[0030]
[0031] 其中Zij为xij标准化后的值,xi为所有元素的平均值,Sj2为xi所有元素的均方根,变换后得标准化矩阵Z。
[0032] 2)确定相关系数矩阵
[0033] 按下式确定相关系数矩阵R:
[0034]
[0035]
[0036] 其中,i、j为有限正整数。
[0037] 3)确定单位特征向量
[0038] 按下式得p个特征根:
[0039] |R‑λIp|=0
[0040] 按下式得m的值,确定主成分:
[0041]
[0042] 其中t代表信息的利用率,对每个λj,
[0043] Rbj=λjbj
[0044]
[0045] 得单位特征向量
[0046] 4)将标准化后的变量转换为主成分
[0047] 按下式确定主成分:
[0048]
[0049] 5)对得到的m个主成分进行加权求和,权数为每个主成分的方差贡献率,得到最终评价值。
[0050] 在本发明的经验模态分解步骤(4)中,所述的经验模态分解方法步骤如下:
[0051] 1)找出原始时序数据序列x(t)的所有极大值点与极小值点,用三次样条插值函数拟合形成数据的上包络线和下包络线。
[0052] 2)确定上包络线、下包络线的均值m1(t)如下:
[0053]
[0054] 其中up(t)为极大值形成的上包络线,low(t)为下包络线。
[0055] 3)确定本征模函数
[0056] x(t)‑m1(t)=h1(t)
[0057] 将h1(t)视为新的信号x(t),重复步骤1)、2),直至h1(t)满足下述本征模函数的条件。
[0058] a.该函数在整个时间范围内,局部极值点和过零点的数目相等或相差1个。
[0059] b.在任意时刻,局部最大值的上包络线和局部最小值的下包络线平均为零。
[0060] 4)按下式确定剩余分量r1(t)
[0061] r1(t)=x(t)‑h1(t)
[0062] 其中h1(t)为第一个本征模函数。
[0063] 5)将剩余分量r1(t)作为新的原始数据,重复步骤1)~4),直至得到所有的本征模函数和1个趋势项。
[0064] 本发明采用对时序数据集进行缺失值处理,处理之后的数据集外部变量中的类别变采量用独热编码方法处理,用主成分分析方法对除去类别变量、待预测时序数据以及时间戳变量的剩余变量进行降维处理、用经验模态分解方法将待预测的时序数据分解为本征模函数和余量,将这些数据集拼接起来得到新的数据集,对得到的数据集进行数据标准化方法处理,输入前馈神经网络进行训练,得到预测模型,对测试集进行预测。本发明将对数据集进行处理,经过处理的实验数据在训练过程中大大节省了时间,减少了达到收敛结果所用的次数,提升了训练精度。本发明对具有复杂信号特性的时序数据具有很好的预测效果。

附图说明

[0065] 图1是本发明实施1的流程图。

具体实施方式

[0066] 下面结合附图和实施例对本发明进一步详细说明,但本发明不限于下述的实施方式。
[0067] 实施例1
[0068] 在图1中,本实施例的基于经验模态分解和前馈神经网络对时序数据的预测方法步骤如下:
[0069] (1)对数据集缺失值处理
[0070] 将时序数据集Ab的缺失值进行统计并查找其位置,缺失值超过3个连续出现时,删除包含该缺失值的行,缺失值的位置连续数为1~3时,用缺失值插补法中的均值插补法进T行缺失值填充,得到时序数据集A{A1,A2,A3},其中A1{x1,x2,...,xm|xi=(xi1,xi2,…,xiq) ,i为有限正整数;q为数据集A的样本个数}为数据集中的类别变量,A2{y1,y2,…,yn|yj=(yj1,T
yj2,…,yjq) ,j为有限正整数}为数据集中除去类别变量和待预测时序数据的其它变量,A3T
{z1,z2,…,zp|zl=(zl1,zl2,…,zlq) ,l为有限正整数}为数据集中需要预测的时序数据。
[0071] 本实施例通过对时序数据集Ab进行分析并且处理了缺失值,提高了前馈神经网络训练的精度,得到比较准确的训练结果。
[0072] (2)独热编码处理
[0073] 对数据集中的类别变量A1,进行独热编码方法处理,统计类别变量A1中每一个类别变量xi的类别值个数,用连续自然数从1开始对类别变量xi的类别值进行代替,自然数的个数为类别变量值的个数,再进行独热编码处理,将类别变量A1转换成二进制编码矩阵B{B1,B2,…,Bm|Bi为类别变量xi独热编码得到的数据}。
[0074] 由于本实施例对该类别变量进行独热编码方法处理,每一个编码之后的值都只有一位有效位,有效位的位置不同,保证了数据之间的互不相同。用独热编码方法处理后的数据重新计算每个类别变量值之间的距离,处理后的数据可用于前馈神经网络的训练。
[0075] (3)主成分分析方法降维
[0076] 对数据集中的其它变量A2,除去数据集中的时间戳变量,得到剩余变量A4{s1,s2,…,st|s1,s2,…,st为其它变量A2去掉时间戳变量的剩余变量,t为有限正整数,t≤n},绘制出剩余变量A4的折线图,观察剩余变量A4的特性,将剩余变量A4通过主成分分析方法进行降维处理,得到矩阵P{p1,p2,…,pk|p1,p2,…,pk为剩余变量A4用主成分分析方法降维之后得到的数据,k为有限正整数,k≤t}。
[0077] 本实施例的主成分分析方法如下:
[0078] 1)构建n个样本矩阵
[0079] 采集原始数据变量的标准化p维随机向量x,构建n个样本矩阵
[0080] x=(x1,x2,...,xp)T
[0081] xi=(xi1,xi2,...,xin)T
[0082] 其中,n、p为有限正整数,n>p,对矩阵x进行如下标准化变化。
[0083]
[0084]
[0085]
[0086] 其中Zij为xij标准化后的值,xi为所有元素的平均值,Sj2为xi所有元素的均方根,变换后得标准化矩阵Z。
[0087] 2)确定相关系数矩阵
[0088] 按下式确定相关系数矩阵R:
[0089]
[0090]
[0091] 其中,i、j为有限的正整数。
[0092] 3)确定单位特征向量
[0093] 按下式得p个特征根:
[0094] |R‑λIp|=0
[0095] 按下式得m的值,确定主成分:
[0096]
[0097] 其中t代表信息的利用率,对每个λj,
[0098] Rbj=λjbj
[0099]
[0100] 得单位特征向量
[0101] 4)将标准化后的变量转换为主成分
[0102] 按下式确定主成分:
[0103]
[0104] 5)对得到的m个主成分进行加权求和,权数为每个主成分的方差贡献率,得到最终评价值。
[0105] 本实施例的主成分分析方法,找到具有相互联系的变量,通过降维减少预测变量的个数,得到的数据包含了原始数据的大部分信息,保证降维后得到的数据中每个变量不包含重复的原始数据变量信息,在前馈神经网络训练时,输入降维后的数据集,得到准确的结果,减少了变量的个数,训练时间大幅度减少,提高了训练精度。
[0106] (4)经验模态分解
[0107] 对数据集中的时序数据A3进行经验模态分解,得到包含本征模函数和余量的矩阵I{IMF1,IMF2,…,IMFs,r|IMFe为本征模函数,e=1,2,…,s;s为经验模态分解得到的本征模函数个数,r为余量}。
[0108] 本实施例的经验模态分解方法步骤如下:
[0109] 1)找出原始时序数据序列x(t)的所有极大值点与极小值点,用三次样条插值函数拟合形成数据的上包络线和下包络线。
[0110] 2)确定上包络线、下包络线的均值m1(t)如下:
[0111]
[0112] 其中up(t)为极大值形成的上包络线,low(t)为下包络线。
[0113] 3)确定本征模函数
[0114] x(t)‑m1(t)=h1(t)
[0115] 将h1(t)视为新的信号x(t),重复步骤1)、2),直至h1(t)满足下述本征模函数的条件。
[0116] a.该函数在整个时间范围内,局部极值点和过零点的数目相等或相差1个。
[0117] b.在任意时刻,局部最大值的上包络线和局部最小值的下包络线平均为零。
[0118] 4)按下式确定剩余分量r1(t)
[0119] r1(t)=x(t)‑h1(t)
[0120] 其中h1(t)为第一个本征模函数。
[0121] 5)将剩余分量r1(t)作为新的原始数据,重复步骤1)~4),直至得到所有的本征模函数和1个趋势项。
[0122] 对数据集中的时序数据A3进行经验模态分解,得到本征模函数单一的特性,在神经网络训练中,用本征模函数代替原始时序数据进行训练,节省了训练时间,提高训练精度。
[0123] (5)数据标准化处理
[0124] 每一个本征模函数IMFe和余量r分别与二进制编码矩阵B,矩阵P,拼接成e个新的数据集Ce{IMFe,B,P}和数据集Cr{r,B,P},对所有数据集Ce和数据集Cr,用数据标准化处理方法进行处理,得到对应的数据集De{d1,d2,…,dg|d1,d2,…,dg为数据集Ce经过数据标准化方法处理后得到的数据,g为有限正整数}和数据集Dr{d1,d2,…,dg|d1,d2,…,dg为数据集Cr经过数据标准化方法处理之后得数据},按下式将数据集Ce和数据集Cr中的所有数据投影到[‑1,1]区间。
[0125]
[0126] 其中,x*为数据集Ce和数据集Cr每一个变量的数据值标准化后得到的在[‑1,1]区间的值,xmean为数据集Ce和数据集Cr中每一个变量的数据值的平均值,xmax为数据集Ce和数据集Cr中的每一个变量值中的最大值,xmin为数据集Ce和数据集Cr中每一个变量值中的最小值。
[0127] 经上述步骤对数据集进行标准化方法处理,用处理过后的数据集进行前馈神经网络训练,可提升模型的收敛速度和训练精度。
[0128] (6)前馈神经网络训练
[0129] 将数据集De和数据集Dr作为前馈神经网络的输入,并且将数据集De和数据集Dr的样本分为训练集和测试集,训练集与测试集的样本比为450:1,将数据集De和数据集Dr对应的本征模函数IMFe和余量r作为输出,本征模函数IMFe和余量r也分为训练集和测试集,训练集与测试集的样本比为450:1,将训练集依次输入前馈神经网络进行预测模型训练,当训练目标最小误差小于0.001时停止训练,得到预测模型。
[0130] 将本实施例中处理好的数据集输入前馈神经网络,得到全部的预测模型,在训练过程中节省了训练时间,减少了达到收敛需要的训练次数,提高训练精度。
[0131] (7)对测试集测试
[0132] 测试集依次输入对应预测模型,得到预测结果,所有预测结果相加得到预测值的总和,确定预测结果总和与真值的标准差。