一种基于reABC‑SVM的葡萄酒质量鉴别方法与流程

文档序号:11231307阅读:286来源:国知局

本发明设计葡萄酒质量鉴别领域,具体是一种基于reabc-svm的葡萄酒质量分类方法。

技术背景

葡萄酒中含有丰富的营养物质,至今多达600种以上的物质被测定出来。葡萄具有的营养和医疗作用很早就被认识,葡萄酒因其特殊的营养价值和较好的保健效果,越来越受到广大消费者的欢迎。那么如何准确的对葡萄酒质量进行鉴别就显得尤为重要。对于传统的葡萄酒鉴别方法,通常是靠评酒员的主观评价,这种评价方法首先不具备普遍性,并且绝对依赖于评酒员。其次,在工作量大大增加后,评酒员的瓶酒准确性可能会出现很大的误差,这样可能会造成灾难性的后果。所以需要更精确的鉴别工具。

目前一般都通过交叉验证试算的方法,或者梯度下降法确定,不仅效率较低且稳定性不高。而且对于葡萄酒质量分类问题,如果使用目前普遍的方法,更容易陷入局部最优。



技术实现要素:

为了解决现有技术的不足之处,本发明提供一种基于reabc-svm的葡萄酒质量鉴别方法,以期能利用改进abc算法对svm参数进行优化,从而得到最合适的分类模型实现对葡萄酒质量好坏的分类,进而解决葡萄酒质量鉴别问题。

本发明解决上述技术问题的技术方案包括以下步骤:

本发明一种基于reabc-svm的葡萄酒质量鉴别方法的特点是按如下步骤进行:

步骤1:获取n个葡萄酒的特征向量集合构成训练样本集,记为v=[v1,v2,…,vi,…,vn],其中vi为第i个葡萄酒的特征向量,并有为第i个葡萄酒的第j个特征值,yi为第i个葡萄酒的质量,且yi=1表示第i个葡萄酒的质量为优,yi=0表示第i个葡萄酒的质量为劣;1≤i≤n,1≤j≤n;

步骤2:基于所述训练样本集v,利用改进的人工蜂群优化算法对支持向量机的惩罚系数c和rbf核函数的参数g进行动态调整,从而建立葡萄酒质量鉴别的最优分类模型;

步骤2.0:利用式(1)对训练样本集v进行归一化,得到归一化后的训练样本集v′=[v′1,v′2,…,v′i,…,v′n],并有

式(1)中,为第i个葡萄酒的特征向量vi中的最小特征值,为第i个葡萄酒的特征向量vi中的最大特征值;

步骤2.1:定义种群大小为m、最大迭代次数为len、当前迭代次数为t,蜜源放弃限制为limit,计数器为lim,蜜蜂个体集合为e;初始化t=0、e为空集;

步骤2.2:初始化lim=0;

由第m个惩罚系数cm和第m个参数gm构成第m个蜜蜂个体gm,从而由m个蜜蜂个体构成蜜蜂种群;并在所设置的范围内随机初始化所述蜜蜂种群作为第t代种群;

步骤2.3:利用所述第t代种群中的第m个蜜蜂个体和所述归一化后的训练样本集对svm分类器进行训练,得到第t代种群的第m个分类模型,从而得到第t代种群的m个分类模型;

步骤2.4、利用所述第t代种群的m个分类模型对所述归一化后的训练样本集v′进行分类,得到第t代种群的m个分类模型的分类精度,记为表示第t代种群的第m个分类精度,1≤m≤m;

步骤2.5、从第t代种群的m个分类精度at中选取最大值所对应的蜜蜂个体作为第t+1代种群的中心,记为ft+1

步骤2.6、令m=1;

步骤2.7、在第t+1代种群的中心ft+1的邻域内生成第t代种群的第m个新蜜蜂个体,记为用新蜜蜂个体和所述归一化后的训练样本集v′对svm分类器进行训练,从而得到第t代种群的第m个新蜜蜂个体的分类模型;

用所述第t代种群的第m个新蜜蜂个体的分类模型对所述归一化后的训练样本集v′进行分类,得到第t代种群的第m个新蜜蜂个体的分类精度比较是否成立,若成立,则将第t代种群中的第m个蜜蜂个体作为第t+1代种群的第m个蜜蜂个体,若不成立,则将新蜜蜂个体作为第t+1代种群的第m个蜜蜂个体;

步骤2.8、将m+1赋值给m,判断m>m是否成立,若成立,则执行步骤2.9,否则,返回步骤2.7;

步骤2.9、根据步骤2.3和步骤2.4,得到第t+1代种群的m个分类精度,记为比较max(at+1)>max(at)是否成立,若成立,则令lim=0,否则,令lim+1赋值给lim;

步骤2.10、利用式(2)获得第t+1代种群中第m个蜜蜂个体的被选概率从而得到第t+1代种群中m个蜜蜂个体的被选概率:

式(2)中,表示概率系数;

步骤2.11、定义变量k,并初始化k=1;

步骤2.12、初始化m=1;

步骤2.13、利用随机数函数生成第m个随机值rm;

步骤2.14、比较是否成立,若成立,则执行步骤2.15;否则,执行步骤2.17;

步骤2.15、以第t+1代种群中第m个蜜蜂个体为中心,并在邻域内随机生成第t+1代种群的第m个新蜜蜂个体,记为用新蜜蜂个体和所述归一化后的训练样本集v′对svm分类器进行训练,从而得到第t+1代种群的第m个新蜜蜂个体的分类模型;

用所述第t+1代种群的第m个新蜜蜂个体的分类模型对所述归一化后的训练样本集v′进行分类,得到第t+1代种群的第m个新蜜蜂个体的分类精度比较是否成立,若成立,则将第t+1代种群中第m个蜜蜂个体作为第t+2代种群的第k个蜜蜂个体,若不成立,则将第t+1代种群的第m个新蜜蜂个体作为第t+2代种群的第k个蜜蜂个体;

步骤2.16、将k+1赋值给k,判断k=m是否成立,若成立,则表示已生成第t+2代种群的m个蜜蜂个体,执行步骤2.18;否则,执行步骤2.17;

步骤2.17、将m+1赋值给m后,判断m>m是否成立,若成立,则返回步骤2.12;否则返回步骤2.13;

步骤2.18、根据步骤2.3和步骤2.4,得到第t+2代种群的m个分类精度,记为比较max(at+2)>max(at+1)是否成立;若成立,则令lim=0,否则,令lim+1赋值给lim;

步骤2.19、判断lim>limit是否成立,若成立,则将max(at+2)对应的蜜蜂个体存放到蜜蜂个体集合e中,并返回步骤2.2执行,否则,执行步骤2.20;

步骤2.20、将t+2赋值给t后,判断t>len是成立,若成立,则执行步骤2.21;否则,执行步骤2.5;

步骤2.21、将第len代种群和所述蜜蜂个体集合e合并为一个种群z,根据步骤2.3和步骤2.4得到种群z中所有蜜蜂个体的分类精度,并将分类精度最大的蜜蜂个体作为支持向量机的最优输入,利用所述最优输入和所述归一化后的训练样本集v′对svm分类器进行训练,从而得到葡萄酒质量鉴别的最优分类模型,以所述葡萄酒质量鉴别的最优分类模型实现对葡萄酒的质量鉴别。

与现有技术相比,本发明的有益效果在于:

1、本发明使用reabc-svm的葡萄酒质量鉴别方法,通过改进人工蜂群优化算法对支持向量机的惩罚因子和核函数参数进行动态调整,输出最优参数,利用最优参数建立葡萄酒鉴别模型;从而使得模型具有泛化能力强,效果稳定,分类精度高优点。

2、由于在葡萄酒质量分类问题中存在着参数效果大致呈梯度分布,即只有在当前最优个体附近才有可能生成更有个体,因此本发明中通过将传统的算法中的新个体生成方式改为“从当前最优点生成种群”的方式,节省了搜索时间,增加了搜索能力。

3、本发明中通过设置蜜源放弃限制值来判断种群迭代过程中是否陷入局部最优,以及时放弃种群,避免了浪费搜索精力,帮助跳出局部最优。

附图说明

图1是本发明方法流程图。

具体实施方式

本实施例中,如图1所示,一种基于reabc-svm的葡萄酒质量鉴别方法,目的在于将改进人工蜂群支持向量机方法应用于葡萄酒质量鉴别中,具体的说,是按如下步骤进行:

步骤1:获取n个葡萄酒的特征向量集合构成训练样本集,记为v=[v1,v2,…,vi,…,vn],其中vi为第i个葡萄酒的特征向量,并有为第i个葡萄酒的第j个特征值,yi为第i个葡萄酒的质量,且yi=1表示第i个葡萄酒的质量为优,yi=0表示第i个葡萄酒的质量为劣;1≤i≤n,1≤j≤n;

步骤2:基于所述训练样本集v,利用改进的人工蜂群优化算法对支持向量机的惩罚系数c和rbf核函数的参数g进行动态调整,从而建立葡萄酒质量鉴别的最优分类模型;

步骤2.0:利用式(1)对训练样本集v进行归一化,得到归一化后的训练样本集v′=[v′1,v′2,…,v′i,…,v′n],并有

式(1)中,为第i个葡萄酒的特征向量vi中的最小特征值,为第i个葡萄酒的特征向量vi中的最大特征值;

对训练样本集进行归一化,得到如图所示的样本集,对训练样本进行归一化,可以排除个别数据对整体数据的效果影响,使得到的分类模型产生更高的分类精度。

步骤2.1:定义种群大小为m、最大迭代次数为len、当前迭代次数为t,蜜源放弃限制为limit,计数器为lim,蜜蜂个体集合为e;初始化t=0、e为空集,此步骤为如图所示step1。

步骤2.2:初始化lim=0;

由第m个惩罚系数cm和第m个参数gm构成第m个蜜蜂个体gm,从而由m个蜜蜂个体构成蜜蜂种群;并在所设置的范围内随机初始化所述蜜蜂种群作为第t代种群;

步骤2.3:利用所述第t代种群中的第m个蜜蜂个体和所述归一化后的训练样本集对svm分类器进行训练,得到第t代种群的第m个分类模型,从而得到第t代种群的m个分类模型;

步骤2.4、利用所述第t代种群的m个分类模型对所述归一化后的训练样本集v′进行分类,得到第t代种群的m个分类模型的分类精度,记为表示第t代种群的第m个分类精度,1≤m≤m;

以上步骤均为图中step1的操作。

步骤2.5、从第t代种群的m个分类精度at中选取最大值所对应的蜜蜂个体作为第t+1代种群的中心,记为ft+1

步骤2.6、令m=1;

步骤2.7、在第t+1代种群的中心ft+1的邻域内生成第t代种群的第m个新蜜蜂个体,记为用新蜜蜂个体和所述归一化后的训练样本集v′对svm分类器进行训练,从而得到第t代种群的第m个新蜜蜂个体的分类模型;

用所述第t代种群的第m个新蜜蜂个体的分类模型对所述归一化后的训练样本集v′进行分类,得到第t代种群的第m个新蜜蜂个体的分类精度比较是否成立,若成立,则将第t代种群中的第m个蜜蜂个体作为第t+1代种群的第m个蜜蜂个体,若不成立,则将新蜜蜂个体作为第t+1代种群的第m个蜜蜂个体;

因为要保持种群中个体的优越性,所以每产生一个新个体,就要对其对应的原个体比较进行替换,从而保持种群整体的优越性,让种群不断进化。

步骤2.8、将m+1赋值给m,判断m>m是否成立,若成立,则执行步骤2.9,否则,返回步骤2.7;

如果m>m成立,则代表已生成m个新个体,即种群已更新完成。步骤2.5,步骤2.6,步骤2.7,步骤2.8,即为图1中的step2的操作。

步骤2.9、根据步骤2.3和步骤2.4,得到第t+1代种群的m个分类精度,记为比较max(at+1)>max(at)是否成立,若成立,则令lim=0,否则,令lim+1赋值给lim;

该步骤是在对种群是否进步进行判断,即若max(at+1)>max(at)成立,则认为种群进步,否则,认为种群没有进步,即停滞。同时还要记录下种群连续停滞次数,以配合后面判断种群是否陷入局部最优。

步骤2.10、利用式(2)获得第t+1代种群中第m个蜜蜂个体的被选概率从而得到第t+1代种群中m个蜜蜂个体的被选概率:

式(2)中,表示概率系数;被选概率,既是每个个体被选择在其附近生成新个体的概率。

步骤2.11、定义变量k,并初始化k=1;

步骤2.12、初始化m=1;

步骤2.13、利用随机数函数生成第m个随机值rm;

步骤2.14、比较是否成立,若成立,则执行步骤2.15;否则,执行步骤2.17;

步骤2.15、以第t+1代种群中第m个蜜蜂个体为中心,并在邻域内随机生成第t+1代种群的第m个新蜜蜂个体,记为用新蜜蜂个体和所述归一化后的训练样本集v′对svm分类器进行训练,从而得到第t+1代种群的第m个新蜜蜂个体的分类模型;

用所述第t+1代种群的第m个新蜜蜂个体的分类模型对所述归一化后的训练样本集v′进行分类,得到第t+1代种群的第m个新蜜蜂个体的分类精度比较是否成立,若成立,则将第t+1代种群中第m个蜜蜂个体作为第t+2代种群的第k个蜜蜂个体,若不成立,则将第t+1代种群的第m个新蜜蜂个体作为第t+2代种群的第k个蜜蜂个体;

步骤2.16、将k+1赋值给k,判断k=m是否成立,若成立,则表示已生成第t+2代种群的m个蜜蜂个体,执行步骤2.18;否则,执行步骤2.17;

步骤2.17、将m+1赋值给m后,判断m>m是否成立,若成立,则返回步骤2.12;否则返回步骤2.13;

以上步骤2.10至步骤2.17为图1中的step3的具体操作。首先按照个体的被选概率选择个体,在其邻域内生成新个体,并对两个个体的进行比较替换。由于按照式(2)计算被选概率,可以使种群中优越的个体得到更多的被选择地机会。避免浪费搜索时间。

对于第t代种群的生成方式,即以最优个体为中心,在其邻域内产生心中群,在这里并不适用。其原因是,在产生第t代种群时,已经保证全部个体都在最优个体的邻域内,已经保证种群整体的优越性。如果继续在此范围内搜索,种群将会陷入局部最优,此时应该扩大搜索范围,在种群附近进行精确查找。

步骤2.18、根据步骤2.3和步骤2.4,得到第t+2代种群的m个分类精度,记为比较max(at+2)>max(at+1)是否成立;若成立,则令lim=0,否则,令lim+1赋值给lim;此步骤与步骤2.9相同,为记录种群连续停滞次数。

步骤2.19、判断lim>limit是否成立,若成立,则将max(at+2)对应的蜜蜂个体存放到蜜蜂个体集合e中,并返回步骤2.2执行,否则,执行步骤2.20;

如果lim>limit成立,则说明种群一陷入局部最优。在这种情况下,不应该浪费搜索尽力让种群继续迭代更新,而是应该放弃当前种群,重新初始化种群。

步骤2.20、将t+2赋值给t后,判断t>len是成立,若成立,则执行步骤2.21;否则,执行步骤2.5;

步骤2.21、将第len代种群和所述蜜蜂个体集合e合并为一个种群z,根据步骤2.3和步骤2.4得到种群z中所有蜜蜂个体的分类精度,并将分类精度最大的蜜蜂个体作为支持向量机的最优输入,利用所述最优输入和所述归一化后的训练样本集v′对svm分类器进行训练,从而得到葡萄酒质量鉴别的最优分类模型,以所述葡萄酒质量鉴别的最优分类模型实现对葡萄酒的质量鉴别。

以上步骤2.19,步骤2.20,步骤2.21即为图1中的step4中的操作,由于在放弃种群时,不能确定下一次迭代完成的种群会比要被放弃的种群效果更优越,所以在放弃种群时,要先记录下其中的最优个体。最后在种群e和最后一代种群中挑选最优个体,作为最后的svm的参数,以保证得到最有分类模型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1