发明名称 一种基于粒子群优化的最小二乘支持向量机组合预测方法
摘要 本发明提出了一种基于粒子群优化的最小二乘支持向量机组合预测方法,根据要预测的数据特征选择合适的单项预测模型,将不同的预测方法进行适当的组合,充分利用各单项预测模型所包含的有用信息,建立最小二乘支持向量机LSSVM回归模型,利用粒子群优化算法PSO优化影响LSSVM回归模型精度的2个核心参数包括核函数参数g以及LSSVM中正则化参数C,得到最佳的LSSVM回归模型;从而达到提高预测精度、降低预测风险的目的,极大提高了算法的收敛速度,更加符合实际工程需要。
申请公布号 CN103020434A 申请公布日期 2013.04.03
申请号 CN201210504955.1 申请日期 2012.11.30
申请人 南京航空航天大学 发明人 李爱;陈果;王洪伟;程小勇;郝腾飞;于明月
分类号 G06F19/00(2006.01)I 主分类号 G06F19/00(2006.01)I
代理机构 南京经纬专利商标代理有限公司 32200 代理人 朱小兵
主权项 1.一种基于粒子群优化的最小二乘支持向量机组合预测方法,其特征在于,所述方法包括如下步骤:步骤A,根据数据特征选择合适的单项模型,步骤为:步骤A-1,确定训练集和测试集,对于预测数据给定时间序列的实际测试值,将它们分为训练集T<sub>r</sub>和测试集T<sub>e</sub>,y<sub>Tri</sub>和n<sub>Tr</sub>分别代表训练集T<sub>r</sub>的实际值和样本量;y<sub>Tei</sub>和n<sub>Te</sub>分别代表测试集的实际值和样本量;步骤A-2,数据预处理,采用级差标准化对训练集T<sub>r</sub>和测试集T<sub>e</sub>的实测数据进行标准化处理,标准化后的数值在[0,1]范围内;步骤A-3,训练集T<sub>r</sub>建模,利用训练集T<sub>r</sub>中的y<sub>Tri</sub>作为样本完成单一模型建模,得到AR模型、GM(1,1)模型和BP神经网络模型的参数;对于AR模型的阶数,利用AIC准则与FPE准则,不同的模型阶数p,计算出不同的AIC值与FPE值,取平均值,最小值时的p就是适用模型的阶数,相应的模型即为最佳适用模型;并将该AR模型的阶数值作为BP神经网络模型的嵌入维数,BP神经网络模型的隐层神经元数目由经验公式给出:n<sub>H</sub>=(n<sub>I</sub>+n<sub>O</sub>)<sup>1/2</sup>+l,其中n<sub>H</sub>为隐含层神经元数目,n<sub>I</sub>为输入层神经元数目,n<sub>O</sub>为输出层神经元数目,l取值为1到10的整数;步骤B,通过单项预测方法得到初步预测结论作为最小二乘支持向量机LSSVM组合预测样本,根据支持向量机回归原理,建立LSSVM回归模型;分别对AR模型、GM(1,1)模型和BP神经网络模型输入对应的参数,得到训练集中数据y<sub>Tri</sub>的拟合值<img file="FDA00002508504800011.GIF" wi="86" he="54" />形成训练样本,利用得到的训练样本,训练生成LSSVM模型:<maths num="0001"><![CDATA[<math><mrow><mi>f</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>l</mi></munderover><msub><mi>&alpha;</mi><mi>i</mi></msub><mi>K</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>+</mo><mi>b</mi></mrow></math>]]></maths>其中,高斯径向基核函数K(<sub>x</sub>i,x<sub>j</sub>)=exp(-g||x<sub>i</sub>-x<sub>j</sub>||<sup>2</sup>);α<sub>i</sub>为Lagrange因子,α<sub>i</sub>∈R;b为常值偏差;步骤C,利用粒子群优化算法PSO优化影响LSSVM回归模型精度的2个核心参数包括核函数参数g以及LSSVM中正则化参数C,得到最佳的LSSVM回归模型;将g和C分别作为粒子的x轴坐标和y轴坐标,群体规模设为M,最大迭代次数为h<sub>max</sub>,C∈[1,10000],g∈[0,1]并按以下步骤:步骤C-1,初始化粒子群,随机设置粒子的初始位置x和速度v;步骤C-2,计算每个粒子的适应度值fitness,在每个粒子位置,运用训练样本数据训练得到LSSVM回归模型,并用训练好的模型计算得到测试样本的预测值,并将测试样本的真实值与预测值的平均绝对误差作为粒子的适应度值;步骤C-3,对所有的i∈{1,2,…,M},如果fitness<sub>i</sub>&gt;Pbest<sub>i</sub>,则令Pbest<sub>i</sub>=fitness<sub>i</sub>,<img file="FDA00002508504800021.GIF" wi="213" he="58" />如果fitness<sub>i</sub>&gt;gbest,则重新设置gbest的索引号a;其中,Pbest<sub>i</sub>为第i个粒子曾经达到的最大适应度值,<img file="FDA00002508504800022.GIF" wi="98" he="58" />为粒子曾经到达的最大适应度值时对应的位置,gbest为在群体所有粒子经历过的最好位置;步骤C-4,每一个粒子的位置x<sub>i</sub>和速度v<sub>i</sub>分别为:<maths num="0002"><![CDATA[<math><mrow><msub><mi>v</mi><mi>i</mi></msub><mo>=</mo><msub><mi>wv</mi><mi>i</mi></msub><mo>+</mo><msub><mi>c</mi><mn>1</mn></msub><msub><mi>r</mi><mn>1</mn></msub><mrow><mo>(</mo><msubsup><mi>x</mi><mi>i</mi><mi>Pbest</mi></msubsup><mo>-</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>+</mo><msub><mi>c</mi><mn>2</mn></msub><msub><mi>r</mi><mn>2</mn></msub><mrow><mo>(</mo><msubsup><mi>x</mi><mi>i</mi><mi>gbest</mi></msubsup><mo>-</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow></mrow></math>]]></maths>x<sub>i</sub>=x<sub>i</sub>+v<sub>i</sub>其中,r<sub>1</sub>,r<sub>2</sub>为[0,1]之间的随机数,c<sub>1</sub>,c<sub>2</sub>为加速度系数,c<sub>1</sub>+c<sub>2</sub>≥4,w为惯性权值;步骤C-5,检查停止条件,如果达到最大迭代次数h<sub>max</sub>则停止迭代;否则,返回步骤C-2;步骤C-6,根据得到的最优参数g和C,建立LSSVM回归模型;步骤D,利用已建立的单项模型分别进行外推预测,得到待预测数据的预测值<img file="FDA00002508504800024.GIF" wi="65" he="54" />输入到LSSVM模型中,得到数据在预测时间点的预测值<img file="FDA00002508504800025.GIF" wi="88" he="54" />求出各模型的外推误差E<sub>Te</sub>、拟合误差E<sub>Tr</sub>和外推误差之和E<sub>s</sub>:<maths num="0003"><![CDATA[<math><mrow><msub><mi>E</mi><mi>Tr</mi></msub><mo>=</mo><mfrac><mn>1</mn><msub><mi>n</mi><mi>Tr</mi></msub></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>Tr</mi></msub></munderover><mfrac><mrow><mo>|</mo><msub><mover><mi>y</mi><mo>^</mo></mover><mi>Tri</mi></msub><mo>-</mo><msub><mi>y</mi><mi>Tri</mi></msub><mo>|</mo></mrow><msub><mi>y</mi><mi>Tri</mi></msub></mfrac><mo>&times;</mo><mn>100</mn><mo>%</mo><mo>;</mo></mrow></math>]]></maths><maths num="0004"><![CDATA[<math><mrow><msub><mi>E</mi><mi>Te</mi></msub><mo>=</mo><mfrac><mn>1</mn><msub><mi>n</mi><mi>Te</mi></msub></mfrac><munderover><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>n</mi><mi>Te</mi></msub></munderover><mfrac><mrow><mo>|</mo><msub><mover><mi>y</mi><mo>^</mo></mover><mi>Tei</mi></msub><mo>-</mo><msub><mi>y</mi><mi>Tei</mi></msub><mo>|</mo></mrow><msub><mi>y</mi><mi>Tei</mi></msub></mfrac><mo>&times;</mo><mn>100</mn><mo>%</mo><mo>,</mo></mrow></math>]]></maths>E<sub>s</sub>=E<sub>Tr</sub>+E<sub>Te</sub>。
地址 210016 江苏省南京市白下区御道街29号