发明名称 基于自适应粒子群的最小二乘支持向量机预测方法
摘要 本发明涉及一种基于自适应粒子群的最小二乘支持向量机预测方法,该方法根据群体的收敛程度和个体的适应值来调整惯性权重,加快训练速度,利用该算法迭代求解LS‑SVM中出现的矩阵方程,避免矩阵求逆,节省内存,并求得最优解。该方法可以有效简化训练样本,提高训练速度,且分类精度良好,收敛速度快,有很好的泛化能力。解决了预测时特征维数较高、特征之间存在冗余且样本有限的问题。
申请公布号 CN106503788A 申请公布日期 2017.03.15
申请号 CN201610966772.X 申请日期 2016.10.28
申请人 中国矿业大学 发明人 李海港;张倩;王德明;曾磊;程坤
分类号 G06N3/00(2006.01)I;G06K9/62(2006.01)I 主分类号 G06N3/00(2006.01)I
代理机构 淮安市科翔专利商标事务所 32110 代理人 韩晓斌
主权项 一种基于自适应粒子群的最小二乘支持向量机预测方法,其特征在于,包括如下步骤:步骤一)采取调整惯性权重因子ω和增加约束因子α以及借助迁移学习的思想引入源域因子和目标域因子的措施,对基本PSO模型进行改进,得到改进的自适应PSO模型:<maths num="0001"><math><![CDATA[<mrow><msubsup><mi>v</mi><mi>i</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>=</mo><mi>&omega;</mi><mo>&CenterDot;</mo><msubsup><mi>v</mi><mi>i</mi><mi>k</mi></msubsup><mo>+</mo><msub><mi>c</mi><mn>1</mn></msub><msub><mi>r</mi><mn>1</mn></msub><mo>&lsqb;</mo><msub><mi>&xi;</mi><mi>q</mi></msub><mrow><mo>(</mo><msubsup><mi>p</mi><mi>i</mi><mi>k</mi></msubsup><mo>-</mo><msubsup><mi>x</mi><mi>i</mi><mi>k</mi></msubsup><mo>)</mo></mrow><mo>+</mo><msub><mi>&xi;</mi><mrow><mi>q</mi><mo>-</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><msubsup><mi>p</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>-</mo><msubsup><mi>x</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mo>&rsqb;</mo><mo>+</mo><msub><mi>c</mi><mn>2</mn></msub><msub><mi>r</mi><mn>2</mn></msub><mo>&lsqb;</mo><msub><mi>&xi;</mi><mi>q</mi></msub><mrow><mo>(</mo><msubsup><mi>p</mi><mi>g</mi><mi>k</mi></msubsup><mo>-</mo><msubsup><mi>x</mi><mi>i</mi><mi>k</mi></msubsup><mo>)</mo></mrow><mo>+</mo><msub><mi>&xi;</mi><mrow><mi>q</mi><mo>-</mo><mn>1</mn></mrow></msub><mrow><mo>(</mo><msubsup><mi>p</mi><mi>g</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>-</mo><msubsup><mi>x</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mo>&rsqb;</mo></mrow>]]></math><img file="FDA0001145848430000011.GIF" wi="1558" he="71" /></maths><maths num="0002"><math><![CDATA[<mrow><msubsup><mi>x</mi><mi>i</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msubsup><mo>=</mo><msubsup><mi>x</mi><mi>i</mi><mi>k</mi></msubsup><mo>+</mo><mi>&alpha;</mi><mo>&CenterDot;</mo><msubsup><mi>v</mi><mi>i</mi><mrow><mi>k</mi><mo>+</mo><mn>1</mn></mrow></msubsup></mrow>]]></math><img file="FDA0001145848430000012.GIF" wi="333" he="69" /></maths><maths num="0003"><math><![CDATA[<mrow><msub><mi>v</mi><mi>i</mi></msub><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><msub><mi>v</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub></mtd><mtd><mrow><msub><mi>v</mi><mi>i</mi></msub><mo>&gt;</mo><msub><mi>v</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub></mrow></mtd></mtr><mtr><mtd><mrow><mo>-</mo><msub><mi>v</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub></mrow></mtd><mtd><mrow><msub><mi>v</mi><mi>i</mi></msub><mo>&lt;</mo><mo>-</mo><msub><mi>v</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0001145848430000013.GIF" wi="457" he="147" /></maths>其中,ξ<sub>q</sub>,ξ<sub>q‑1</sub>∈R<sup>n</sup>,<img file="FDA0001145848430000014.GIF" wi="221" he="126" />ξ<sub>q</sub>成为目标域因子,ξ<sub>q‑1</sub>源域因子;特别的,当ξ<sub>q‑1</sub>=0时ξ<sub>q</sub>=1;步骤二)根据群体的收敛程度和个体适应值来动态调整ω,具体方法如下:当f(x<sub>i</sub>)<f(p<sub>i</sub>)时,满足此条件的粒子时群体中的一般粒子,具有良好的全局寻优能力和局部寻优能力,惯性权重ω随着搜索的进行按如下公式变化:<maths num="0004"><math><![CDATA[<mrow><mi>&omega;</mi><mo>=</mo><msub><mi>&omega;</mi><mi>min</mi></msub><mo>+</mo><mrow><mo>(</mo><msub><mi>&omega;</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub><mo>-</mo><msub><mi>&omega;</mi><mi>min</mi></msub><mo>)</mo></mrow><mfrac><mrow><msub><mi>k</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub><mo>-</mo><mi>k</mi></mrow><msub><mi>k</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub></mfrac></mrow>]]></math><img file="FDA0001145848430000015.GIF" wi="629" he="134" /></maths>其中,f(x<sub>i</sub>)为当前适应度;f(p<sub>i</sub>)为历史最好位置适应度;ω<sub>max</sub>为搜索开始时最大的ω值,设为0.9;ω<sub>min</sub>为搜索结束时最小的ω值,设为0.2;k位迭代所进行的步数;k<sub>max</sub>为最大迭代次数;当f(x<sub>i</sub>)<f(p<sub>g</sub>)时,满足此条件的粒子是群体中的较优粒子,已经比较接近全局最优,所以应赋予较小的惯性权重,以加速向全局最优收敛,惯性权重ω随着搜索的进行按如下公式变化:<maths num="0005"><math><![CDATA[<mrow><mi>&omega;</mi><mo>=</mo><mi>&omega;</mi><mo>-</mo><mrow><mo>(</mo><mi>&omega;</mi><mo>-</mo><msub><mi>&omega;</mi><mi>min</mi></msub><mo>)</mo></mrow><mo>|</mo><mfrac><mrow><mi>f</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>-</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>p</mi><mi>i</mi></msub><mo>)</mo></mrow></mrow><mrow><mi>f</mi><mrow><mo>(</mo><msub><mi>p</mi><mi>g</mi></msub><mo>)</mo></mrow><mo>-</mo><mi>f</mi><mrow><mo>(</mo><msub><mi>p</mi><mi>i</mi></msub><mo>)</mo></mrow></mrow></mfrac><mo>|</mo></mrow>]]></math><img file="FDA0001145848430000016.GIF" wi="676" he="158" /></maths>其中,f(p<sub>g</sub>)为群体最好位置适应度;ω<sub>min</sub>为搜索结束时最小的ω值,设为0.2,粒子适应值越好,其惯性权重越小,有利于局部寻优;步骤三)基于自适应PSO模型的最小二乘支持向量机算法的流程如下:Step 1:选择合适的训练样本和测试样本并进行预处理;Step 2:初始化粒子群参数,包括微粒的速度和位置,设定粒子群参数,在空间R<sup>n</sup>中随机产生m个粒子(x<sub>1</sub>,x<sub>2</sub>,…,x<sub>m</sub>)组成初始种群X(k);随机产生各粒子x<sub>i</sub>的初始速度(v<sub>i1</sub>,v<sub>i2</sub>,…,v<sub>im</sub>)组成速度矩阵V(k);每个粒子的个体最优值p<sub>i</sub>初始值为x<sub>i</sub>的初始值;Step 3:用训练样本训练最小二乘支持向量机LS‑SVM,计算每个粒子个体的适应值f(x),适应值函数为:<maths num="0006"><math><![CDATA[<mrow><mi>f</mi><mrow><mo>(</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mn>1</mn><mi>l</mi></mfrac><munderover><mo>&Sigma;</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>l</mi></munderover><msup><mrow><mo>(</mo><msub><mi>y</mi><mi>i</mi></msub><mo>-</mo><msub><mi>x</mi><mi>i</mi></msub><mo>)</mo></mrow><mn>2</mn></msup></mrow>]]></math><img file="FDA0001145848430000021.GIF" wi="430" he="127" /></maths>式中,x<sub>i</sub>为第i个样本的实际值,y<sub>i</sub>为第i个样本的预测值,l为测试样本个数,根据粒子的适应度值更新p<sub>id</sub>和p<sub>gd</sub>;Step 4:对每个粒子,进行相应的比较Step 4.1:比较当前适应度f(x<sub>i</sub>)和历史最好位置适应度f(p<sub>i</sub>),若f(x<sub>i</sub>)<f(p<sub>i</sub>)时,则p<sub>i</sub>=x<sub>i</sub>,并根据式<img file="FDA0001145848430000022.GIF" wi="623" he="134" />调整ω;Step 4.2:比较群体所有粒子当前适应度f(x<sub>i</sub>)和群体最好位置适应度f(p<sub>g</sub>),若f(x<sub>i</sub>)<f(p<sub>g</sub>)时,则p<sub>g</sub>=x<sub>i</sub>,并根据式<img file="FDA0001145848430000023.GIF" wi="679" he="159" />调整ω;Step 5:根据改进的PSO模型<img file="FDA0001145848430000024.GIF" wi="235" he="70" />更新粒子的速度和位置,产生新种群X(k+1);Step 6:判断速度向量是否满足约束条件‑v<sub>max</sub>≤v<sub>i</sub>≤v<sub>max</sub>,若不满足则按照如下规则调整:<maths num="0007"><math><![CDATA[<mrow><msub><mi>v</mi><mi>i</mi></msub><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><msub><mi>v</mi><mrow><mi>m</mi><mi>a</mi><mi>x</mi></mrow></msub></mtd><mtd><mrow><msub><mi>v</mi><mi>i</mi></msub><mo>&gt;</mo><msub><mi>v</mi><mi>max</mi></msub></mrow></mtd></mtr><mtr><mtd><mrow><mo>-</mo><msub><mi>v</mi><mi>max</mi></msub></mrow></mtd><mtd><mrow><msub><mi>v</mi><mi>i</mi></msub><mo>&lt;</mo><mo>-</mo><msub><mi>v</mi><mi>max</mi></msub></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0001145848430000025.GIF" wi="454" he="150" /></maths>Step 7:判断适应度值是否满足要求或者是否达到最大迭代次数,若满足停止条件,则寻优结束,将全局最优粒子映射为优化的LS‑SVM模型参数;否则k=k+1,转至Step 3;Step 8:利用训练样本数据和Step 7得出的参数对LS‑SVM进行求解,得到矩阵方程的最小二乘解,即对应式<img file="FDA0001145848430000026.GIF" wi="506" he="151" />中最优参数α<sub>i</sub>和b。
地址 221116 江苏省徐州市大学路1号中国矿业大学南湖校区