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