鄂 旭,周 藝,李俏竺
(渤海大學(xué) 信息科學(xué)與技術(shù)學(xué)院,遼寧 錦州 121013)
魚類對水環(huán)境的變化十分敏感,當(dāng)水體中的農(nóng)藥、污染物等化學(xué)物質(zhì)到達一定程度時,會對魚類造成一些不良影響和危害,包括急性毒性、慢性毒性、胚胎毒性及致畸性.因此,對各類化學(xué)物質(zhì)的結(jié)構(gòu)特性及其對環(huán)境影響的分析就顯得十分重要.在安全評價中,通常只對急性毒性進行評價,而半致死濃度(LC50)則是衡量急性毒性的指標.
預(yù)測LC50濃度不僅可以為測定化學(xué)物質(zhì)毒性強度、測試水體污染程度、檢查廢水處理的有效程度做出貢獻[1],也可以為制定水質(zhì)標準、評價環(huán)境質(zhì)量和管理廢水排放提供環(huán)境依據(jù).近年來,大多數(shù)學(xué)者采用定量構(gòu)效關(guān)系(QSAR)的手段來預(yù)測化學(xué)物質(zhì)的急性毒性[2].其中,多維構(gòu)效關(guān)系等價于多元線性回歸問題,因此該手段在處理非線性關(guān)系時存在一定局限性.支持向量機(Support vector machine,SVM)是基于Vapnik提出的統(tǒng)計學(xué)習(xí)理論和結(jié)構(gòu)風(fēng)險最小化原理而建立的一種機器學(xué)習(xí)方法[3],被認為是高維度、非線性情況下進行分類和回歸的最佳方法,已經(jīng)在不同領(lǐng)域和學(xué)科中被廣泛應(yīng)用.
本文在支持向量機的理論基礎(chǔ)上,利用人工蜂群算法(Artificial bee colony algorithm,ABC)對支持向量機的核函數(shù)參數(shù)和懲罰因子進行優(yōu)化,建立了一種ABC-SVM魚類毒性LC50預(yù)測模型.這為快速、準確地預(yù)測各種化學(xué)物質(zhì)中的魚類毒性LC50濃度提供了一種新的可行方法,避免了人工使用化學(xué)方法進行分析預(yù)測的繁瑣性和低效性.
設(shè)訓(xùn)練樣本集為(x1,y1),(xi,yi),…,(xN,yN),其中xN為樣本的輸入值,yN為樣本對應(yīng)的目標值.利用非線性映射函數(shù)φ(x)將原本輸入的特征空間映射到某一高維空間內(nèi),在映射后的空間內(nèi)構(gòu)造最優(yōu)擬合函數(shù)f(x) =[ω,φ(x)]+b,其中ω為權(quán)向量,用來說明函數(shù)f(x)的復(fù)雜度,b為常數(shù).目的是要尋找使得結(jié)構(gòu)風(fēng)險最小化的ω和b,上述問題可等價于:
式中,ξ為松弛變量,C為懲罰因子,N為樣本數(shù),其對應(yīng)的Lagrange函數(shù)為:
根據(jù)KKT(Karush-Kuhn-Tucker)最優(yōu)條件:
可得條件:
定義核函數(shù)k(x,xi)滿足Mercer條件,進行消元計算,消去ξi和ω后,得到線性方程組為:
其中,Qij=K(xi,xj),i,j= 1,2,…,N;e=[1,1,…,1]T;α=[α1,α2,…,αi]T;I為單位矩陣.最后可得回歸決策函數(shù)為:
對于公式(5)中的核函數(shù)k(x,xi)來說,本文使用的核函數(shù)為徑向基核函數(shù)(Radial Basis Function,RBF),RBF核函數(shù)生成模型的泛化能力最佳,且比多項式核函數(shù)取值簡單,即:
人工蜂群算法(Artificial bee colony algorithm,ABC)是Karaboga[4]在2005年通過模仿蜜蜂的采蜜行為而提出的一種優(yōu)化算法.該算法只需要對問題進行優(yōu)劣的比較而不需要了解問題的特殊信息,在很大程度上避免了陷入局部最優(yōu)解問題,具備比傳統(tǒng)優(yōu)化方法更好的優(yōu)化性能[5],具有控制參數(shù)少、計算復(fù)雜度低、易實現(xiàn)的特點.
標準的ABC算法將人工蜂分為三類:采蜜蜂、跟隨蜂和偵查蜂[6-7].蜂群的整體目標就是尋找富含花蜜量最多的蜜源.三種蜂分別在不同的階段完成任務(wù),采蜜蜂的任務(wù)是利用當(dāng)前蜜源信息尋找到新的蜜源,并將該信息傳遞給跟隨蜂;跟隨蜂的任務(wù)是在接收到采蜜蜂傳遞的信息后,依據(jù)該信息尋找新的蜜源;偵查蜂的任務(wù)是在蜂房附近隨機地尋找一個新的有價值的蜜源.
標準的ABC算法將優(yōu)化問題的求解過程看作是在D維搜索空間中進行搜索的過程,將新生成的解和原來的解作比較,并采用貪婪選擇策略保留較好的解.假設(shè)問題的解空間維度為D,采蜜蜂與跟隨蜂的個數(shù)為SN,采蜜蜂與跟隨蜂的個數(shù)與蜜源相等.每個蜜源的位置代表一個可能解,蜜源的花蜜量對應(yīng)相應(yīng)解的適應(yīng)度值.適用度值用來衡量當(dāng)前蜜源和原來蜜源的優(yōu)劣,適應(yīng)度值越高蜜源的質(zhì)量越優(yōu).一個采蜜蜂對應(yīng)一個蜜源,則與第i個蜜源相對應(yīng)的采蜜蜂的搜索公式為:
其中i= 1,2,…,N,d= 1,2,…,D,r是區(qū)間[-1,1]上的隨機數(shù),k是除了i以外的任意蜜源,k≠i.
采蜜蜂完成搜索任務(wù)后回到蜂巢,將搜索得到的蜜源信息傳遞給跟隨蜂.跟隨蜂獲得蜜源信息后,根據(jù)適應(yīng)度概率選擇一個蜜源,跟隨蜂按照與采蜜蜂相同的搜索方式,對原始解的鄰域進行搜索,適應(yīng)度概率公式為:
其中,pi為第i個蜜源被選擇的適應(yīng)度概率,fiti為第i個蜜源的適應(yīng)度值.適應(yīng)度值十分重要,其用來衡量當(dāng)前蜜源和原來蜜源的優(yōu)劣,計算公式為:
其中,fi為第i個蜜源的目標函數(shù)值.
在全部的采蜜蜂和跟隨蜂完成對整個解空間的搜索任務(wù)后,如果某個蜜源的適應(yīng)度值,在limit(控制參數(shù)“l(fā)imit”,用于控制蜜源被改進的次數(shù))次內(nèi)沒有被提高,則舍棄該蜜源位置對應(yīng)的解,從而與該蜜源對應(yīng)的采蜜蜂轉(zhuǎn)變?yōu)閭刹榉洌^續(xù)搜索新的蜜源,偵查蜂的搜索公式為:
其中,xid是第i個蜜源的第d維的值,d∈{1,2,…,D},r是區(qū)間[0,1]上的隨機數(shù),xmind和xmaxd是第d維的下界和上界.
在ABC算法中,以支持向量回歸機的平均均方誤差(MSE)為目標函數(shù),以懲罰因子和核函數(shù)參數(shù)的參數(shù)組合(C,σ)為尋優(yōu)目標,在尋優(yōu)過程中,三種類型的蜜蜂通過完成各自的搜索任務(wù),最終在解空間尋得最優(yōu)解,最后利用得到的最優(yōu)蜜源(C,σ)構(gòu)建ABC-SVM魚類毒性預(yù)測模型,具體步驟如下:
步驟一 參數(shù)初始化.需要進行初始化的參數(shù)包括:蜂群規(guī)模和蜜源數(shù)量NP、蜜源最大循環(huán)次數(shù)limit、最大迭代次數(shù)maxC、懲罰因子和核函數(shù)參數(shù)的參數(shù)組合(C,σ)的取值范圍.
步驟二 設(shè)置適應(yīng)度函數(shù).由于優(yōu)化支持向量機參數(shù)的目的是為了減小其預(yù)測誤差,因此使用支持向量機回歸預(yù)測的平均均方誤差(MSE)作為優(yōu)化的目標函數(shù)值,即:
其中yi是魚類毒性的真實值,y?i為魚類毒性的預(yù)測值,n為訓(xùn)練樣本的個數(shù).按照公式(10)來計算其適應(yīng)度值,當(dāng)fi≥0時,平均均方誤差越小,適應(yīng)度值fiti就越大.
步驟三 采蜜階段.采蜜蜂按照公式(8)對蜜源(C,σ)進行搜索工作,通過比較可能解的適應(yīng)度值,對蜜源進行優(yōu)選.
步驟四 跟隨階段.跟隨蜂根據(jù)適應(yīng)度概率公式(9)選擇要進行搜索的新解.
步驟五 偵查階段.判斷蜜源循環(huán)次數(shù)是否超過設(shè)定值limit,若超過,則該蜜源不能被繼續(xù)優(yōu)化,跟隨蜂放棄該解,偵查蜂利用公式(11)隨機產(chǎn)生一個新解.
步驟六 判斷是否超過最大迭代次數(shù)maxC.若超過,則模型訓(xùn)練結(jié)束,否則返回步驟三繼續(xù)進行搜索.
綜上所述,圖1為本文建立的ABC-SVM魚類毒性預(yù)測模型流程圖.
圖1 ABC-SVM魚類毒性預(yù)測模型流程圖
采用本文提出的ABC-SVM模型對908種化學(xué)物質(zhì)所含有的魚類毒性LC50濃度進行預(yù)測.本文所用數(shù)據(jù)來源于UCI數(shù)據(jù)庫,由Davide Ballabio等人分析整理所得(http://archive.ics.uci.edu/ml/datasets/QSAR+fish+toxicity)[8].該數(shù)據(jù)集共908組數(shù)據(jù),每組數(shù)據(jù)共有六個屬性(自變量),均為化學(xué)物質(zhì)的分子描述符,分別是:MLOGP(分子特性)、CIC0(信息指數(shù))、GATS1i(2D自相關(guān))、NDSSC(原子型計數(shù))、NDSCH(原子型計數(shù))、SM1_Dz(Z)(2D矩陣).以6個量子化學(xué)參數(shù)作為模型的輸入變量,以半致死濃度(LC50)作為模型的輸出變量.利用前800組數(shù)據(jù)對ABC-SVM模型進行訓(xùn)練,將后面的108組數(shù)據(jù)放入訓(xùn)練好的模型中進行仿真預(yù)測.
本文的實驗環(huán)境為:Windows10 64位,CPU 為AMD A8-7100 Radeon R5,8 Compute Cores 4C+4G 1.80 GHz,MATLAB2020.在開始進行實驗前,先對實驗數(shù)據(jù)進行極差歸一化處理,將所有數(shù)據(jù)歸至[-1,1]區(qū)間內(nèi).然后對ABC算法進行初始化參數(shù)設(shè)定,通過多次調(diào)試,ABC算法初始化時控制參數(shù)的設(shè)置如表1所示.
表1 ABC算法初始化控制參數(shù)設(shè)置
利用ABC-SVM模型對魚類毒性LC50濃度進行預(yù)測的實驗數(shù)值結(jié)果如表2所示,為了避免一定的偶然性,確保實驗的嚴謹性,實驗共運行10次,最終結(jié)果取10次結(jié)果的平均值.從表2中可知,利用ABC-SVM模型的預(yù)測準確率已達到了85.166%,在迭代多次的情況下,運行時間共46.518 019 3秒,初步體現(xiàn)了利用ABC-SVM模型進行預(yù)測的精準性和高效性.
表2 ABC-SVM模型對魚類毒性LC50濃度進行預(yù)測的實驗數(shù)值結(jié)果
為了能夠進一步直觀突顯出ABC-SVM模型較好的擬合預(yù)測效果,本文選取了GA-SVM模型[9]、PSOSVM模型、ABC-SVM模型和原SVM模型四個模型分別進行擬合,對魚類毒性進行預(yù)測.圖2為4種模型的擬合預(yù)測曲線.從圖2中可以看出,ABC-SVM模型的擬合曲線更接近真實值,原SVM模型與真實值的偏差較大,PSO-SVM模型和GA-SVM模型較原SVM模型相比,偏差較小,但不如ABC-SVM模型的擬合預(yù)測效果好.
圖2 四種模型的擬合、預(yù)測曲線
通過比較四者平均絕對誤差(MAE)、均方誤差(MSE)、平均百分比誤差(MAPE)、預(yù)測準確率、運行時間等方面的具體數(shù)值來判斷四個模型的優(yōu)劣.其中,每種模型所進行的預(yù)測實驗分別獨立運行十次,最終結(jié)果取其平均值,對比結(jié)果如表3所示.從表3中可以看出,三種結(jié)合了優(yōu)化算法的SVM模型的MAE、MSE、MAPE均小于默認參數(shù)的原SVM模型,平均預(yù)測準確率都高于原SVM模型,證明了三種優(yōu)化后的模型效果均比原模型好.在三種結(jié)合了優(yōu)化算法的SVM模型中,在種群規(guī)模大小和最大迭代次數(shù)相同的情況下,GA-SVM預(yù)測模型的平均運行時間太長,近似等于其他兩種模型的3倍運行時間,運行效率較低,浪費內(nèi)存空間.PSO-SVM模型較GA-SVM模型相比,誤差更小,具有更高的平均預(yù)測準確率,并大大提升了平均運行時間,模型表現(xiàn)較GA-SVM模型好.而ABC-SVM模型在三者中擁有最高的平均預(yù)測準確率,且運行10次的平均時間最短,與GA-SVM模型、PSO-SVM模型相比較,具有較高的預(yù)測精度和運行效率.表3中的對比結(jié)果與圖2所表明的結(jié)果相吻合,明確地驗證了ABC-SVM模型較好的預(yù)測效果,因此在對魚類毒性LC50濃度進行預(yù)測時,優(yōu)先考慮使用ABC算法對支持向量機參數(shù)進行優(yōu)化,以此建立相應(yīng)的預(yù)測模型.
表3 默認參數(shù)的原SVM模型、GA-SVM模型、PSO-SVM模型、ABC-SVM模型的對比實驗結(jié)果
本文主要研究了人工蜂群算法對支持向量機控制參數(shù)進行優(yōu)化的基本原理,建立了ABC-SVM的魚類毒性LC50預(yù)測模型,以均方誤差(MSE)作為適應(yīng)度值,利用極差歸一化的方式對數(shù)據(jù)進行歸一化處理,使用ABC-SVM模型對魚類毒性LC50濃度進行預(yù)測,預(yù)測準確率達到了85.17%,運行時間僅共46.518秒.通過對比實驗分析,ABC-SVM模型效果的預(yù)測準確率高于PSO-SVM模型和GA-SVM模型,并具有更高的運行效率.這為快速、準確地預(yù)測各種化學(xué)物質(zhì)中所含魚類毒性LC50濃度提供了一種新的可行方法,避免了人工使用化學(xué)方法進行分析預(yù)測的繁瑣性和低效性.