本發(fā)明設(shè)計葡萄酒質(zhì)量鑒別領(lǐng)域,具體是一種基于reabc-svm的葡萄酒質(zhì)量分類方法。
技術(shù)背景
葡萄酒中含有豐富的營養(yǎng)物質(zhì),至今多達600種以上的物質(zhì)被測定出來。葡萄具有的營養(yǎng)和醫(yī)療作用很早就被認(rèn)識,葡萄酒因其特殊的營養(yǎng)價值和較好的保健效果,越來越受到廣大消費者的歡迎。那么如何準(zhǔn)確的對葡萄酒質(zhì)量進行鑒別就顯得尤為重要。對于傳統(tǒng)的葡萄酒鑒別方法,通常是靠評酒員的主觀評價,這種評價方法首先不具備普遍性,并且絕對依賴于評酒員。其次,在工作量大大增加后,評酒員的瓶酒準(zhǔn)確性可能會出現(xiàn)很大的誤差,這樣可能會造成災(zāi)難性的后果。所以需要更精確的鑒別工具。
目前一般都通過交叉驗證試算的方法,或者梯度下降法確定,不僅效率較低且穩(wěn)定性不高。而且對于葡萄酒質(zhì)量分類問題,如果使用目前普遍的方法,更容易陷入局部最優(yōu)。
技術(shù)實現(xiàn)要素:
為了解決現(xiàn)有技術(shù)的不足之處,本發(fā)明提供一種基于reabc-svm的葡萄酒質(zhì)量鑒別方法,以期能利用改進abc算法對svm參數(shù)進行優(yōu)化,從而得到最合適的分類模型實現(xiàn)對葡萄酒質(zhì)量好壞的分類,進而解決葡萄酒質(zhì)量鑒別問題。
本發(fā)明解決上述技術(shù)問題的技術(shù)方案包括以下步驟:
本發(fā)明一種基于reabc-svm的葡萄酒質(zhì)量鑒別方法的特點是按如下步驟進行:
步驟1:獲取n個葡萄酒的特征向量集合構(gòu)成訓(xùn)練樣本集,記為v=[v1,v2,…,vi,…,vn],其中vi為第i個葡萄酒的特征向量,并有
步驟2:基于所述訓(xùn)練樣本集v,利用改進的人工蜂群優(yōu)化算法對支持向量機的懲罰系數(shù)c和rbf核函數(shù)的參數(shù)g進行動態(tài)調(diào)整,從而建立葡萄酒質(zhì)量鑒別的最優(yōu)分類模型;
步驟2.0:利用式(1)對訓(xùn)練樣本集v進行歸一化,得到歸一化后的訓(xùn)練樣本集v′=[v′1,v′2,…,v′i,…,v′n],并有
式(1)中,
步驟2.1:定義種群大小為m、最大迭代次數(shù)為len、當(dāng)前迭代次數(shù)為t,蜜源放棄限制為limit,計數(shù)器為lim,蜜蜂個體集合為e;初始化t=0、e為空集;
步驟2.2:初始化lim=0;
由第m個懲罰系數(shù)cm和第m個參數(shù)gm構(gòu)成第m個蜜蜂個體gm,從而由m個蜜蜂個體構(gòu)成蜜蜂種群;并在所設(shè)置的范圍內(nèi)隨機初始化所述蜜蜂種群作為第t代種群;
步驟2.3:利用所述第t代種群中的第m個蜜蜂個體
步驟2.4、利用所述第t代種群的m個分類模型對所述歸一化后的訓(xùn)練樣本集v′進行分類,得到第t代種群的m個分類模型的分類精度,記為
步驟2.5、從第t代種群的m個分類精度at中選取最大值所對應(yīng)的蜜蜂個體作為第t+1代種群的中心,記為ft+1;
步驟2.6、令m=1;
步驟2.7、在第t+1代種群的中心ft+1的鄰域內(nèi)生成第t代種群的第m個新蜜蜂個體,記為
用所述第t代種群的第m個新蜜蜂個體的分類模型對所述歸一化后的訓(xùn)練樣本集v′進行分類,得到第t代種群的第m個新蜜蜂個體的分類精度
步驟2.8、將m+1賦值給m,判斷m>m是否成立,若成立,則執(zhí)行步驟2.9,否則,返回步驟2.7;
步驟2.9、根據(jù)步驟2.3和步驟2.4,得到第t+1代種群的m個分類精度,記為
步驟2.10、利用式(2)獲得第t+1代種群中第m個蜜蜂個體的被選概率
式(2)中,表示概率系數(shù);
步驟2.11、定義變量k,并初始化k=1;
步驟2.12、初始化m=1;
步驟2.13、利用隨機數(shù)函數(shù)生成第m個隨機值rm;
步驟2.14、比較
步驟2.15、以第t+1代種群中第m個蜜蜂個體
用所述第t+1代種群的第m個新蜜蜂個體的分類模型對所述歸一化后的訓(xùn)練樣本集v′進行分類,得到第t+1代種群的第m個新蜜蜂個體的分類精度
步驟2.16、將k+1賦值給k,判斷k=m是否成立,若成立,則表示已生成第t+2代種群的m個蜜蜂個體,執(zhí)行步驟2.18;否則,執(zhí)行步驟2.17;
步驟2.17、將m+1賦值給m后,判斷m>m是否成立,若成立,則返回步驟2.12;否則返回步驟2.13;
步驟2.18、根據(jù)步驟2.3和步驟2.4,得到第t+2代種群的m個分類精度,記為
步驟2.19、判斷l(xiāng)im>limit是否成立,若成立,則將max(at+2)對應(yīng)的蜜蜂個體存放到蜜蜂個體集合e中,并返回步驟2.2執(zhí)行,否則,執(zhí)行步驟2.20;
步驟2.20、將t+2賦值給t后,判斷t>len是成立,若成立,則執(zhí)行步驟2.21;否則,執(zhí)行步驟2.5;
步驟2.21、將第len代種群和所述蜜蜂個體集合e合并為一個種群z,根據(jù)步驟2.3和步驟2.4得到種群z中所有蜜蜂個體的分類精度,并將分類精度最大的蜜蜂個體作為支持向量機的最優(yōu)輸入,利用所述最優(yōu)輸入和所述歸一化后的訓(xùn)練樣本集v′對svm分類器進行訓(xùn)練,從而得到葡萄酒質(zhì)量鑒別的最優(yōu)分類模型,以所述葡萄酒質(zhì)量鑒別的最優(yōu)分類模型實現(xiàn)對葡萄酒的質(zhì)量鑒別。
與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果在于:
1、本發(fā)明使用reabc-svm的葡萄酒質(zhì)量鑒別方法,通過改進人工蜂群優(yōu)化算法對支持向量機的懲罰因子和核函數(shù)參數(shù)進行動態(tài)調(diào)整,輸出最優(yōu)參數(shù),利用最優(yōu)參數(shù)建立葡萄酒鑒別模型;從而使得模型具有泛化能力強,效果穩(wěn)定,分類精度高優(yōu)點。
2、由于在葡萄酒質(zhì)量分類問題中存在著參數(shù)效果大致呈梯度分布,即只有在當(dāng)前最優(yōu)個體附近才有可能生成更有個體,因此本發(fā)明中通過將傳統(tǒng)的算法中的新個體生成方式改為“從當(dāng)前最優(yōu)點生成種群”的方式,節(jié)省了搜索時間,增加了搜索能力。
3、本發(fā)明中通過設(shè)置蜜源放棄限制值來判斷種群迭代過程中是否陷入局部最優(yōu),以及時放棄種群,避免了浪費搜索精力,幫助跳出局部最優(yōu)。
附圖說明
圖1是本發(fā)明方法流程圖。
具體實施方式
本實施例中,如圖1所示,一種基于reabc-svm的葡萄酒質(zhì)量鑒別方法,目的在于將改進人工蜂群支持向量機方法應(yīng)用于葡萄酒質(zhì)量鑒別中,具體的說,是按如下步驟進行:
步驟1:獲取n個葡萄酒的特征向量集合構(gòu)成訓(xùn)練樣本集,記為v=[v1,v2,…,vi,…,vn],其中vi為第i個葡萄酒的特征向量,并有
步驟2:基于所述訓(xùn)練樣本集v,利用改進的人工蜂群優(yōu)化算法對支持向量機的懲罰系數(shù)c和rbf核函數(shù)的參數(shù)g進行動態(tài)調(diào)整,從而建立葡萄酒質(zhì)量鑒別的最優(yōu)分類模型;
步驟2.0:利用式(1)對訓(xùn)練樣本集v進行歸一化,得到歸一化后的訓(xùn)練樣本集v′=[v′1,v′2,…,v′i,…,v′n],并有
式(1)中,
對訓(xùn)練樣本集進行歸一化,得到如圖所示的樣本集,對訓(xùn)練樣本進行歸一化,可以排除個別數(shù)據(jù)對整體數(shù)據(jù)的效果影響,使得到的分類模型產(chǎn)生更高的分類精度。
步驟2.1:定義種群大小為m、最大迭代次數(shù)為len、當(dāng)前迭代次數(shù)為t,蜜源放棄限制為limit,計數(shù)器為lim,蜜蜂個體集合為e;初始化t=0、e為空集,此步驟為如圖所示step1。
步驟2.2:初始化lim=0;
由第m個懲罰系數(shù)cm和第m個參數(shù)gm構(gòu)成第m個蜜蜂個體gm,從而由m個蜜蜂個體構(gòu)成蜜蜂種群;并在所設(shè)置的范圍內(nèi)隨機初始化所述蜜蜂種群作為第t代種群;
步驟2.3:利用所述第t代種群中的第m個蜜蜂個體
步驟2.4、利用所述第t代種群的m個分類模型對所述歸一化后的訓(xùn)練樣本集v′進行分類,得到第t代種群的m個分類模型的分類精度,記為
以上步驟均為圖中step1的操作。
步驟2.5、從第t代種群的m個分類精度at中選取最大值所對應(yīng)的蜜蜂個體作為第t+1代種群的中心,記為ft+1;
步驟2.6、令m=1;
步驟2.7、在第t+1代種群的中心ft+1的鄰域內(nèi)生成第t代種群的第m個新蜜蜂個體,記為
用所述第t代種群的第m個新蜜蜂個體的分類模型對所述歸一化后的訓(xùn)練樣本集v′進行分類,得到第t代種群的第m個新蜜蜂個體的分類精度
因為要保持種群中個體的優(yōu)越性,所以每產(chǎn)生一個新個體,就要對其對應(yīng)的原個體比較進行替換,從而保持種群整體的優(yōu)越性,讓種群不斷進化。
步驟2.8、將m+1賦值給m,判斷m>m是否成立,若成立,則執(zhí)行步驟2.9,否則,返回步驟2.7;
如果m>m成立,則代表已生成m個新個體,即種群已更新完成。步驟2.5,步驟2.6,步驟2.7,步驟2.8,即為圖1中的step2的操作。
步驟2.9、根據(jù)步驟2.3和步驟2.4,得到第t+1代種群的m個分類精度,記為
該步驟是在對種群是否進步進行判斷,即若max(at+1)>max(at)成立,則認(rèn)為種群進步,否則,認(rèn)為種群沒有進步,即停滯。同時還要記錄下種群連續(xù)停滯次數(shù),以配合后面判斷種群是否陷入局部最優(yōu)。
步驟2.10、利用式(2)獲得第t+1代種群中第m個蜜蜂個體的被選概率
式(2)中,表示概率系數(shù);被選概率,既是每個個體被選擇在其附近生成新個體的概率。
步驟2.11、定義變量k,并初始化k=1;
步驟2.12、初始化m=1;
步驟2.13、利用隨機數(shù)函數(shù)生成第m個隨機值rm;
步驟2.14、比較
步驟2.15、以第t+1代種群中第m個蜜蜂個體
用所述第t+1代種群的第m個新蜜蜂個體的分類模型對所述歸一化后的訓(xùn)練樣本集v′進行分類,得到第t+1代種群的第m個新蜜蜂個體的分類精度
步驟2.16、將k+1賦值給k,判斷k=m是否成立,若成立,則表示已生成第t+2代種群的m個蜜蜂個體,執(zhí)行步驟2.18;否則,執(zhí)行步驟2.17;
步驟2.17、將m+1賦值給m后,判斷m>m是否成立,若成立,則返回步驟2.12;否則返回步驟2.13;
以上步驟2.10至步驟2.17為圖1中的step3的具體操作。首先按照個體的被選概率選擇個體,在其鄰域內(nèi)生成新個體,并對兩個個體的進行比較替換。由于按照式(2)計算被選概率,可以使種群中優(yōu)越的個體得到更多的被選擇地機會。避免浪費搜索時間。
對于第t代種群的生成方式,即以最優(yōu)個體為中心,在其鄰域內(nèi)產(chǎn)生心中群,在這里并不適用。其原因是,在產(chǎn)生第t代種群時,已經(jīng)保證全部個體都在最優(yōu)個體的鄰域內(nèi),已經(jīng)保證種群整體的優(yōu)越性。如果繼續(xù)在此范圍內(nèi)搜索,種群將會陷入局部最優(yōu),此時應(yīng)該擴大搜索范圍,在種群附近進行精確查找。
步驟2.18、根據(jù)步驟2.3和步驟2.4,得到第t+2代種群的m個分類精度,記為
步驟2.19、判斷l(xiāng)im>limit是否成立,若成立,則將max(at+2)對應(yīng)的蜜蜂個體存放到蜜蜂個體集合e中,并返回步驟2.2執(zhí)行,否則,執(zhí)行步驟2.20;
如果lim>limit成立,則說明種群一陷入局部最優(yōu)。在這種情況下,不應(yīng)該浪費搜索盡力讓種群繼續(xù)迭代更新,而是應(yīng)該放棄當(dāng)前種群,重新初始化種群。
步驟2.20、將t+2賦值給t后,判斷t>len是成立,若成立,則執(zhí)行步驟2.21;否則,執(zhí)行步驟2.5;
步驟2.21、將第len代種群和所述蜜蜂個體集合e合并為一個種群z,根據(jù)步驟2.3和步驟2.4得到種群z中所有蜜蜂個體的分類精度,并將分類精度最大的蜜蜂個體作為支持向量機的最優(yōu)輸入,利用所述最優(yōu)輸入和所述歸一化后的訓(xùn)練樣本集v′對svm分類器進行訓(xùn)練,從而得到葡萄酒質(zhì)量鑒別的最優(yōu)分類模型,以所述葡萄酒質(zhì)量鑒別的最優(yōu)分類模型實現(xiàn)對葡萄酒的質(zhì)量鑒別。
以上步驟2.19,步驟2.20,步驟2.21即為圖1中的step4中的操作,由于在放棄種群時,不能確定下一次迭代完成的種群會比要被放棄的種群效果更優(yōu)越,所以在放棄種群時,要先記錄下其中的最優(yōu)個體。最后在種群e和最后一代種群中挑選最優(yōu)個體,作為最后的svm的參數(shù),以保證得到最有分類模型。