发明名称 蚁群算法优化最小二乘支持向量机的溶解氧预测方法
摘要 本发明公开了一种蚁群算法优化最小二乘支持向量机的溶解氧预测方法,其先对原始溶解氧数据序列进行预处理以丢弃或修复坏点数据;然后将预处理后的溶解氧数据序列分成训练集和测试集;接着根据训练集中的所有溶解氧数据,利用蚁群算法优化最小二乘支持向量机的惩罚因子和核函数宽度参数,得到各自的最佳优化值;最后根据惩罚因子和核函数宽度参数的最佳优化值,计算测试集中的每个溶解氧数据的预测值;优点是利用蚁群算法优化最小二乘支持向量机的惩罚因子和核函数宽度参数,并在迭代搜索过程中,对头蚁的位置进行精细搜索获得头蚁的新位置,且保留每只蚂蚁搜索过程中的最佳位置,将蚂蚁的最佳位置引入搜索过程,提高了溶解氧的预测精度。
申请公布号 CN106096780A 申请公布日期 2016.11.09
申请号 CN201610414075.3 申请日期 2016.06.13
申请人 浙江万里学院 发明人 张秀丽;王建平
分类号 G06Q10/04(2012.01)I;G06Q50/02(2012.01)I 主分类号 G06Q10/04(2012.01)I
代理机构 宁波奥圣专利代理事务所(普通合伙) 33226 代理人 周珏
主权项 一种蚁群算法优化最小二乘支持向量机的溶解氧预测方法,其特征在于包括以下步骤:①在需要预测溶解氧的水产品养殖水体中布置一个溶解氧传感器,溶解氧传感器实时等时间间隔连续采集溶解氧数据;②将溶解氧传感器等时间间隔连续采集的T个溶解氧数据按采集时间先后顺序排列构成原始溶解氧数据序列,记为Y,Y={y<sub>1</sub>,y<sub>2</sub>,…,y<sub>t</sub>,…,y<sub>T</sub>};再对Y进行预处理,以丢弃或修复Y中的坏点数据而保留Y中的有效数据,得到预处理后的溶解氧数据序列,记为X,X={x<sub>1</sub>,x<sub>2</sub>,…,x<sub>s</sub>,…,x<sub>S</sub>};其中,T&gt;Z,Z表示设定的溶解氧数据最小需求量,1≤t≤T,y<sub>1</sub>,y<sub>2</sub>,…,y<sub>t</sub>,…,y<sub>T</sub>对应表示Y中的第1个溶解氧数据、第2个溶解氧数据、…、第t个溶解氧数据、…、第T个溶解氧数据,S≤T,1≤s≤S,x<sub>1</sub>,x<sub>2</sub>,…,x<sub>s</sub>,…,x<sub>S</sub>对应表示X中的第1个溶解氧数据、第2个溶解氧数据、…、第s个溶解氧数据、…、第S个溶解氧数据,坏点数据定义为:若Y中的任一个溶解氧数据大于Y中的所有溶解氧数据的平均值的60%或者小于Y中的所有溶解氧数据的平均值的40%,则确定该溶解氧数据为坏点数据;有效数据定义为:若Y中的任一个溶解氧数据大于或等于Y中的所有溶解氧数据的平均值的40%且小于或等于Y中的所有溶解氧数据的平均值的60%,则确定该溶解氧数据为有效数据;③判断S≥Z是否成立,如果成立,则执行步骤④;否则,返回步骤②重新获取原始溶解氧数据序列,再进行预处理;④选取X中的前ST个溶解氧数据构成训练集,记为Train,Train={x<sub>1</sub>,x<sub>2</sub>,…,x<sub>st</sub>,…,x<sub>ST</sub>};并将剩余的S‑ST个溶解氧数据构成测试集,记为Test,Test={x<sub>ST+1</sub>,x<sub>ST+2</sub>,…,x<sub>S</sub>};其中,S×60%≤ST≤S×80%,x<sub>1</sub>,x<sub>2</sub>,…,x<sub>st</sub>,…,x<sub>ST</sub>对应表示Train中的第1个溶解氧数据、第2个溶解氧数据、…、第st个溶解氧数据、…、第ST个溶解氧数据,x<sub>1</sub>,x<sub>2</sub>,…,x<sub>st</sub>,…,x<sub>ST</sub>亦对应表示X中的第1个溶解氧数据、第2个溶解氧数据、…、第st个溶解氧数据、…、第ST个溶解氧数据,x<sub>ST+1</sub>,x<sub>ST+2</sub>,…,x<sub>S</sub>对应表示Test中的第1个溶解氧数据、第2个溶解氧数据、…、第S‑ST个溶解氧数据,x<sub>ST+1</sub>,x<sub>ST+2</sub>,…,x<sub>S</sub>亦对应表示X中的第ST+1个溶解氧数据、第ST+2个溶解氧数据、…、第S个溶解氧数据;⑤根据Train中的所有溶解氧数据,利用蚁群算法优化最小二乘支持向量机的惩罚因子和核函数宽度参数,得到最小二乘支持向量机的惩罚因子和核函数宽度参数各自的最佳优化值,具体过程为:⑤_1、选择径向基函数<img file="FDA0001015944100000021.GIF" wi="547" he="171" />作为最小二乘支持向量机的核函数;然后选择最小二乘支持向量机的惩罚因子c和核函数宽度参数σ作为优化选择参数;再将区间[0,150]作为惩罚因子的值选择范围,将区间[0.1,10]作为核函数宽度参数的值选择范围;其中,k()为径向基函数的表示形式,x为最小二乘支持向量机的核函数的输入变量,D为最小二乘支持向量机的核函数中心,exp()表示以自然基数e为底的指数函数,σ为最小二乘支持向量机的核函数宽度参数,x、D和σ的值均为实数;⑤_2、设定蚁群算法中所需的蚂蚁数量为N;然后从惩罚因子的值选择范围中随机选择N个值分别作为惩罚因子c的值,对应记为c<sub>1</sub>,c<sub>2</sub>,…,c<sub>p</sub>,…,c<sub>N</sub>;并从核函数宽度参数的值选择范围中随机选择N个值分别作为核函数宽度参数σ的值,对应记为σ<sub>1</sub>,σ<sub>2</sub>,…,σ<sub>p</sub>,…,σ<sub>N</sub>;其中,1&lt;N≤ST,1≤p≤N,c<sub>1</sub>、c<sub>2</sub>、c<sub>p</sub>和c<sub>N</sub>对应为从惩罚因子的值选择范围中随机选择的第1个值、第2个值、第p个值和第N个值,σ<sub>1</sub>、σ<sub>2</sub>、σ<sub>p</sub>和σ<sub>N</sub>对应为从核函数宽度参数的值选择范围中随机选择的第1个值、第2个值、第p个值和第N个值;⑤_3、获取蚁群算法第1次搜索时每只蚂蚁的位置,将蚁群算法第1次搜索时第p只蚂蚁的位置记为XA<sub>p,1</sub>,XA<sub>p,1</sub>=[c<sub>p</sub>,σ<sub>p</sub>];其中,[c<sub>p</sub>,σ<sub>p</sub>]表示由第p个惩罚因子c的值c<sub>p</sub>和第p个核函数宽度参数σ的值σ<sub>p</sub>构成的第p只蚂蚁的初始位置矢量;⑤_4、确定蚁群算法第1次搜索时的头蚁及其位置,将蚁群算法第1次搜索时的头蚁的位置记为<img file="FDA0001015944100000022.GIF" wi="139" he="63" />并确定蚁群算法第1次搜索时每只蚂蚁的最佳位置,将蚁群算法第1次搜索时第p只蚂蚁的最佳位置记为<img file="FDA0001015944100000031.GIF" wi="139" he="71" /><img file="FDA0001015944100000032.GIF" wi="110" he="70" />和<img file="FDA0001015944100000033.GIF" wi="115" he="79" />的获取过程为:a1、根据Train中的所有溶解氧数据和蚁群算法第1次搜索时每只蚂蚁的位置,获取蚁群算法第1次搜索时每只蚂蚁对应的ST个拉格朗日乘子和偏差,将蚁群算法第1次搜索时第p只蚂蚁对应的ST个拉格朗日乘子对应记为a<sub>1,p</sub>,a<sub>2,p</sub>,…,a<sub>ST,p</sub>,将蚁群算法第1次搜索时第p只蚂蚁对应的偏差记为b<sub>p</sub>,a<sub>1,p</sub>,a<sub>2,p</sub>,…,a<sub>ST,p</sub>和b<sub>p</sub>是根据Train中的所有溶解氧数据和XA<sub>p,1</sub>,计算<img file="FDA0001015944100000034.GIF" wi="1350" he="605" />得到的;其中,<img file="FDA0001015944100000035.GIF" wi="1878" he="173" /><img file="FDA0001015944100000036.GIF" wi="1879" he="174" /><img file="FDA0001015944100000037.GIF" wi="1286" he="167" /><img file="FDA0001015944100000038.GIF" wi="686" he="167" />a2、根据Train中的所有溶解氧数据和蚁群算法第1次搜索时每只蚂蚁的位置,计算蚁群算法第1次搜索时每只蚂蚁对应的Train中的每个溶解氧数据的估计值,将蚁群算法第1次搜索时第p只蚂蚁对应的Train中的第st个溶解氧数据x<sub>st</sub>的估计值记为<img file="FDA0001015944100000039.GIF" wi="75" he="62" /><img file="FDA00010159441000000310.GIF" wi="715" he="141" />其中,a<sub>i,p</sub>表示蚁群算法第1次搜索时第p只蚂蚁对应的第i个拉格朗日乘子;a3、计算蚁群算法第1次搜索时每只蚂蚁的位置对应的预测误差,将蚁群算法第1次搜索时第p只蚂蚁的位置对应的预测误差记为MSE(XA<sub>p,1</sub>),<img file="FDA0001015944100000041.GIF" wi="710" he="147" />a4、计算蚁群算法第1次搜索时每只蚂蚁的信息素,将蚁群算法第1次搜索时第p只蚂蚁的信息素记为τ(p,1),τ(p,1)=exp(‑MSE(XA<sub>p,1</sub>));a5、将蚁群算法第1次搜索时N只蚂蚁的信息素按序构成一个维数为1×N的信息素矩阵,记为In<sub>1</sub>,In<sub>1</sub>=[τ(1,1) τ(2,1) … τ(N,1)];其中,τ(1,1)表示蚁群算法第1次搜索时第1只蚂蚁的信息素,τ(2,1)表示蚁群算法第1次搜索时第2只蚂蚁的信息素,τ(N,1)表示蚁群算法第1次搜索时第N只蚂蚁的信息素;a6、将In<sub>1</sub>中值最大的信息素对应的蚂蚁确定为蚁群算法第1次搜索时的头蚁,将In<sub>1</sub>中值最大的信息素对应的蚂蚁的位置作为蚁群算法第1次搜索时的头蚁的位置<img file="FDA0001015944100000042.GIF" wi="138" he="63" />a7、确定蚁群算法第1次搜索时第p只蚂蚁的最佳位置<img file="FDA0001015944100000043.GIF" wi="123" he="70" />为<img file="FDA0001015944100000044.GIF" wi="299" he="71" />⑤_5、令g表示蚁群算法的搜索次数,并令g<sub>max</sub>表示设定的最大搜索次数;其中,g的初始值为2,2≤g≤g<sub>max</sub>,g<sub>max</sub>&gt;2;⑤_6、获取蚁群算法第g次搜索时每只蚂蚁的位置,将蚁群算法第g次搜索时第p只蚂蚁的位置记为XA<sub>p,g</sub>,<img file="FDA0001015944100000045.GIF" wi="1061" he="71" />其中,λ表示启发因子,λ∈[0,1],XA<sub>p,g‑1</sub>表示蚁群算法第g‑1次搜索时第p只蚂蚁的位置,<img file="FDA0001015944100000046.GIF" wi="114" he="71" />表示蚁群算法第g‑1次搜索时的头蚁的位置,<img file="FDA0001015944100000047.GIF" wi="147" he="71" />表示蚁群算法第g‑1次搜索时第p蚂蚁的最佳位置;⑤_7、确定蚁群算法第g次搜索时的头蚁及其位置,将蚁群算法第g次搜索时的头蚁的位置记为<img file="FDA0001015944100000048.GIF" wi="138" he="71" />并确定蚁群算法第g次搜索时每只蚂蚁的最佳位置,将蚁群算法第g次搜索时第p只蚂蚁的最佳位置记为<img file="FDA0001015944100000051.GIF" wi="142" he="71" /><img file="FDA0001015944100000052.GIF" wi="110" he="78" />和<img file="FDA0001015944100000053.GIF" wi="122" he="78" />的获取过程为:b1、计算蚁群算法第g次搜索时每只蚂蚁的信息素,将蚁群算法第g次搜索时第p只蚂蚁的信息素记为τ(p,g),τ(p,g)=(1‑ρ)×τ(p,g‑1)+τ(p,1);其中,ρ表示信息素挥发数,ρ∈[0,1],τ(p,g‑1)表示蚁群算法第g‑1次搜索时第p只蚂蚁的信息素,τ(p,1)表示蚁群算法第1次搜索时第p只蚂蚁的信息素;b2、构建一个维数为g×N的信息素矩阵,记为In<sub>g</sub>,In<sub>g</sub>中的第h行中的N个信息素对应为蚁群算法第h次搜索时N只蚂蚁的信息素;其中,1≤h≤g;b3、将In<sub>g</sub>中的第p列中的g个信息素中值最大的信息素对应的蚂蚁的位置确定为蚁群算法第g次搜索时第p只蚂蚁的最佳位置<img file="FDA0001015944100000054.GIF" wi="145" he="78" />b4、将In<sub>g</sub>中值最大的信息素对应的蚂蚁确定为蚁群算法第g次搜索时的头蚁,将In<sub>g</sub>中值最大的信息素对应的蚂蚁的位置作为蚁群算法第g次搜索时的头蚁的位置<img file="FDA0001015944100000055.GIF" wi="133" he="71" />b5、对<img file="FDA0001015944100000056.GIF" wi="107" he="78" />进行精细搜索,得到蚁群算法第g次搜索时的头蚁的新位置,记为<img file="FDA0001015944100000057.GIF" wi="166" he="70" /><img file="FDA0001015944100000058.GIF" wi="846" he="71" />其中,Cauchy(0,1)为用于产生0~1之间分布的随机数的函数;b6、更新<img file="FDA0001015944100000059.GIF" wi="125" he="71" />将更新后的位置记为<img file="FDA00010159441000000510.GIF" wi="147" he="71" /><img file="FDA00010159441000000511.GIF" wi="1182" he="189" />再令<img file="FDA00010159441000000512.GIF" wi="330" he="79" />其中,<img file="FDA00010159441000000513.GIF" wi="294" he="87" />表示蚁群算法第g次搜索时的头蚁的新位置对应的预测误差,<img file="FDA00010159441000000514.GIF" wi="261" he="86" />表示蚁群算法第g次搜索时的头蚁的位置对应的预测误差,<img file="FDA00010159441000000515.GIF" wi="299" he="76" />中的“=”为赋值符号;⑤_8、判断g&lt;g<sub>max</sub>是否成立,如果成立,则令g=g+1,然后返回步骤⑤_6继续执行;否则,确定蚁群算法搜索结束,得到最终的头蚁的位置,记为XA<sup>obj</sup>,<img file="FDA0001015944100000061.GIF" wi="307" he="79" />然后将XA<sup>obj</sup>对应的位置矢量[c<sup>obj</sup>,σ<sup>obj</sup>]中的c<sup>obj</sup>作为最小二乘支持向量机的惩罚因子c的最佳优化值,并将XA<sup>obj</sup>对应的位置矢量[c<sup>obj</sup>,σ<sup>obj</sup>]中的σ<sup>obj</sup>作为最小二乘支持向量机的核函数宽度参数σ的最佳优化值;其中,g=g+1中的“=”为赋值符号,<img file="FDA0001015944100000062.GIF" wi="118" he="71" />表示蚁群算法第g<sub>max</sub>次搜索时的头蚁的位置;⑥根据最小二乘支持向量机的惩罚因子c的最佳优化值c<sup>obj</sup>和核函数宽度参数σ的最佳优化值σ<sup>obj</sup>,计算Test中的每个溶解氧数据的预测值,将Test中的第r个溶解氧数据的预测值记为<img file="FDA0001015944100000063.GIF" wi="126" he="55" /><img file="FDA0001015944100000064.GIF" wi="878" he="191" />其中,1≤r≤S‑ST,x<sub>ST+j</sub>表示Test中的第j个溶解氧数据,x<sub>ST+r</sub>表示Test中的第r个溶解氧数据,a<sub>j</sub>表示Test对应的第j个拉格朗日乘子,b表示Test对应的偏差,a<sub>j</sub>和b是根据Test中的所有溶解氧数据及c<sup>obj</sup>和σ<sup>obj</sup>,计算<img file="FDA0001015944100000065.GIF" wi="1572" he="583" />得到的,<img file="FDA0001015944100000066.GIF" wi="1608" he="198" /><img file="DA00010159441052189.GIF" wi="706" he="191" /><img file="FDA0001015944100000071.GIF" wi="812" he="191" /><img file="FDA0001015944100000072.GIF" wi="1549" he="199" /><img file="FDA0001015944100000073.GIF" wi="1447" he="191" /><img file="FDA0001015944100000074.GIF" wi="622" he="198" />
地址 315100 浙江省宁波市钱湖南路8号