一種基于二進(jìn)制螢火蟲算法的屬性選擇方法
【專利摘要】本發(fā)明公開了一種基于二進(jìn)制螢火蟲算法的屬性選擇方法,其特征按如下步驟進(jìn)行:步驟1、利用分形維數(shù)盒計法計算高維數(shù)據(jù)集的分形維數(shù),獲得的所要選擇屬性的個數(shù);步驟2、初始化螢火蟲種群;步驟3、利用二進(jìn)制螢火蟲算法對高維數(shù)據(jù)集的多個屬性進(jìn)行選擇,獲得最優(yōu)屬性子集;步驟4、輸出最優(yōu)解。本發(fā)明使用二制螢火蟲算法作為屬性選擇的搜索策略,以分形維數(shù)作為屬性選擇評估度量準(zhǔn)則,從高維數(shù)據(jù)集的多個指標(biāo)屬性中選擇一個較優(yōu)的屬性子集,這樣能夠降低數(shù)據(jù)處理的復(fù)雜性,提高數(shù)據(jù)處理的效率,從而滿足解決實際問題的需要。
【專利說明】
-種基于二進(jìn)制董火蟲算法的屬性選擇方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及數(shù)據(jù)挖掘與模式識別中的數(shù)據(jù)預(yù)處理領(lǐng)域,具體的說是一種基于二進(jìn) 制蛋火蟲算法的屬性選擇方法。
【背景技術(shù)】
[0002] 數(shù)據(jù)挖掘(Data Mining)指從海量的數(shù)據(jù)中通過一系列復(fù)雜的算法探索隱藏于數(shù) 據(jù)中的有效信息的行為,而數(shù)據(jù)的高維性和多屬性會影響數(shù)據(jù)挖掘的性能。因此,需要對高 維數(shù)據(jù)集進(jìn)行降維預(yù)處理,從而提高數(shù)據(jù)挖掘的效率。所謂數(shù)據(jù)降維就是按照一定的準(zhǔn)則 從原始數(shù)據(jù)集的屬性集中選取一個最具代表性的屬性子集,又稱屬性選擇。屬性選擇是W 屬性變量與目標(biāo)屬性之間的相關(guān)關(guān)系及冗余關(guān)系測度為基礎(chǔ),根據(jù)事先設(shè)定的屬性評估標(biāo) 準(zhǔn)或評估函數(shù)來選擇數(shù)據(jù)挖掘模型所需的輸入屬性。屬性選擇的關(guān)鍵在于評估度量和捜索 策略運(yùn)兩方面。
[0003] 現(xiàn)有的經(jīng)典屬性選擇算法主要從兩個角度進(jìn)行考慮:其一,側(cè)重屬性選擇的評估 度量準(zhǔn)則研究。Inbarani H,Arafat Η及Jing S Y等人將粗糖集理論作為待選屬性子集的 評估度量準(zhǔn)則來解決屬性選擇問題。隨著分形理論的發(fā)展,分形維數(shù)作為評估度量準(zhǔn)則,并 證明其有效性與可行性。其中,Traina C首次提出將分形維數(shù)應(yīng)用到屬性選擇問題中; Camastra F研究表明所選屬性子集的分形維數(shù)越接近于原始數(shù)據(jù)集的分形維數(shù),其分類準(zhǔn) 確率越高;Banati Η驗證分形維數(shù)作為待選屬性子集的評估度量準(zhǔn)則的有效性與可行性; 其二,側(cè)重于屬性選擇的捜索策略研究,具有代表性的有遺傳算法及各種群智能算法。Jing S Y提出采用混合遺傳算法作為屬性選擇捜索策略,Arafat Η與倪麗萍等提出W蟻群算法 作為屬性選擇捜索策略,Inbarani Η將粒子群算法作為捜索策略,化Υ,Ding L等人采用蜂 群算法作為捜索策略等。采不同的捜索策略算法導(dǎo)致選擇的屬性子集不同,其相應(yīng)的分類 準(zhǔn)確率就存在不同的差異。
[0004] 然而上述屬性選擇算法存在如下缺陷:
[0005] (1)使用粗糖集理論作為待選屬性子集的評估度量準(zhǔn)則,屬性約簡率較低,其時間 計算復(fù)雜度較高;
[0006] (2)遺傳算法在尋優(yōu)過程中,對初始種群的選擇具有一定的依賴性,初始種群的選 擇會影響優(yōu)化的速度和性能,其他各種群智能算法易陷入局部最優(yōu),其收斂性難W確定,并 且遺傳算法的時間復(fù)雜度較高。
【發(fā)明內(nèi)容】
[0007] 本發(fā)明為克服現(xiàn)有技術(shù)存在的不足之處,提出一種基于二進(jìn)制蛋火蟲算法的屬性 選擇方法,W期能使用離散型蛋火蟲算法二制蛋火蟲算法作為屬性選擇的捜索策略,W分 形維數(shù)作為屬性選擇評估度量準(zhǔn)則,從高維數(shù)據(jù)集的多個屬性中選擇一個具有代表性的屬 性子集,從而能提高數(shù)據(jù)處理的效率,降低時間復(fù)雜度。
[000引為解決上述技術(shù)問題,本發(fā)明所采用的技術(shù)方案是:
[0009] 本發(fā)明一種基于二進(jìn)制蛋火蟲算法的屬性選擇方法的特點(diǎn)是按如下步驟進(jìn)行:
[0010] 步驟1、利用分形維數(shù)盒計法計算維度為d的高維數(shù)據(jù)集的分形維數(shù),獲得的計算 結(jié)果山,并向上取整后作為選擇屬性的個數(shù)m ;m<d;
[0011] 步驟2、初始化蛋火蟲種群X;
[0012]初始化第i 只蛋火蟲為Xi,并有Xi = (Xii,Xi2,.. ·,Xik,.. ·,Xid),i = 1,2,.. .η; Xi讀示 第i只蛋火蟲的第k位;并有X化=1表示第i只蛋火蟲的第k個屬性被選擇;并有X化=0表示第 i只蛋火蟲的第k個屬性未被選擇;且
從而初始化蛋火蟲種群X={X1,X2,···, 義1,一,^};^第1只蛋火蟲為義1作為屬性選擇的第1個解;
[0013] 定義第i只蛋火蟲XI的巧光素?fù)]發(fā)因子為P、巧光素更新率為丫、動態(tài)決策域更新 率為β、感知半徑為Θ、鄰域集內(nèi)包含的蛋火蟲數(shù)目的闊值為ω、初始巧光素值為li(〇)、初始 動態(tài)決策域半徑為/別0)、初始位置為xi(〇) = {xii(O),xi2(0),…,xik(O),…,xid(O)};
[0014] 步驟3、在所述高維數(shù)據(jù)集上利用二進(jìn)制蛋火蟲算法對d個屬性進(jìn)行選擇,獲得由m 個屬性構(gòu)成的最優(yōu)屬性子集。
[0015] 本發(fā)明所述的基于二進(jìn)制蛋火蟲算法的屬性選擇方法的特點(diǎn)也在于,
[0016] 所述步驟3是按如下過程進(jìn)行:
[001 7]步驟3.1、定義迭代次數(shù)為t、最大迭代次數(shù)Nmax ;
[0018] 初始化t = 0;則第t次迭代時第i個蛋火蟲xi的巧光素值為li(t)、第t次迭代時第i 個蛋火蟲XI的動態(tài)決策域半徑為新句、第t次迭代時第i個蛋火蟲XI的鄰域集Ni(t);第t次迭 代時第i個蛋火蟲XI的位置為xi(t);
[0019] 步驟3.2、巧光素更新階段:
[0020] 步驟3.2.1、通過式(1)計算第t次迭代時第i個蛋火蟲XI的適應(yīng)度函數(shù)值J(Xi(t)):
[0021] J(xi(t))=-(打 ac(xi(t) )-di) (1)
[0022] 步驟3.2.2、通過公式(2)計算第*+1次迭代時第1個蛋火蟲義1的巧光素值11(*+1):
[0023] li(t+l) = (l-p) Xli(t)+y XJ(xi(t)) (2)
[0024] 式(2)表示將第i個蛋火蟲xi在第t次迭代的位置xi(t)對應(yīng)的適應(yīng)度函數(shù)值J(xi (t))轉(zhuǎn)換為巧光素值li(t+l);
[0025] 步驟3.3、蛋火蟲個體位置更新階段:
[00%]步驟3.3.1、利用式(3)獲得第t次迭代時第i只蛋火蟲XI與第j只蛋火蟲為Xj在第k 位上的距離巧(7 J),j = 1,2,.. .η,i辛j:
[0027]
貸)
[0028] 步驟3.3.2、利用式(4)計算第t次迭代時第i個蛋火蟲XI到第j只蛋火蟲之間的海 明距離Dt(iJ):
[0029]
(4)
[0030] 步驟3.3.3、在第i個蛋火蟲XI的動態(tài)決策域半徑/:;(〇內(nèi),選擇巧光素值比自己大的 所有個體構(gòu)成第t次迭代時第i個蛋火蟲XI的鄰域集Ni(t);且所述鄰域集Ni(t)中蛋火蟲總 數(shù)表示為 |Ni(t)|,0</;;(〇<^;
[0031]步驟3.3.4、通過式(5)計算第t次迭代時第i個蛋火蟲Xi移向鄰域集內(nèi)Ni(t)中第s 個蛋火蟲Xs的概率Pis(t):
[00創(chuàng)
巧
[0033] 式(3)表示第t次迭代時第i個蛋火蟲xi移向具有最大概率的第S個蛋火蟲xs;s = l, 2..-.|Ni(t)|、v=l,2..-.|Ni(t)| ;
[0034] 步驟3.3.5、利用式(6)獲得第i個蛋火蟲xi在第k位的位移Mik:
[0035] Μ化= yXcXrX (Xsii-Xik) (6)
[0036] 式(4)中,μ為移動步長;c為學(xué)習(xí)因子;r為[0,1]區(qū)間的隨機(jī)數(shù);
[0037] 步驟3.3.6、利用式(7)和式(8)所示的sigmoid函數(shù)獲得第i個蛋火蟲XI在第k位取 "Γ的概率S(Mik),從而在解空間內(nèi)進(jìn)行全局捜索:
[0040]步驟3.3.7、利用式(7)和式(8)所示的改進(jìn)sigmoid函數(shù)獲得第i個蛋火蟲XI在第k 位取"Γ的概率S/(Mik),從而在解空間內(nèi)進(jìn)行局部捜索:
[0043] 步驟3.4、動態(tài)決策域更新階段:
[0044] 利用式(11)獲得第t+1次迭代時第i個蛋火蟲XI的動態(tài)決策域半徑;:冶+ 1):
[0045]
(11)
[0046] 步驟4、輸出最優(yōu)解:
[0047] 判斷t+l>Nmax是否成立,若成立,則算法結(jié)束,輸出最優(yōu)屬性子集;否則,將t + 1賦 值給t,并返回步驟3順序執(zhí)行。
[004引步驟3.3的蛋火蟲個體位置更新階段中還包括:
[0049] 當(dāng)所獲得的第t次迭代時第i個蛋火蟲xi的位置xi(t) = {xii(t),Xi2(t),…,xik (t),…,xid(t)}中取值為"Γ的個數(shù)不為m時,則表示第i個蛋火蟲xi的位置xi(t)為不可行 解;并隨機(jī)分配包含m個"Γ的d維二進(jìn)制串作為第t次迭代時的初始解。
[0050] 步驟3.3的蛋火蟲個體位置更新階段中還包括:
[0化1] 定義局部與全局捜索平衡因子為('):^^^|^),!;:
[0052] 當(dāng)時,利用式(5)和式(6)在解空間內(nèi)進(jìn)行全局捜索;
[0053] 當(dāng)心口 χΛ?肘,利用式(7)和式(8)在解空間內(nèi)進(jìn)行局部捜索。
[0054] 與已有技術(shù)相比,本發(fā)明的有益效果體現(xiàn)在:
[0055] 1、本發(fā)明將離散型二進(jìn)制蛋火蟲算法應(yīng)用于屬性選擇中,使用二進(jìn)制蛋火蟲算法 作為屬性選擇捜索策略,W分形維數(shù)作為屬性選擇評估度量準(zhǔn)則,降低了數(shù)據(jù)處理的復(fù)雜 性,提高了數(shù)據(jù)處理的效率,從而滿足了解決實際問題的需要。
[0056] 2、本發(fā)明借鑒海明距離的思想計算蛋火蟲個體間的距離:將屬性選擇看作是離散 組合優(yōu)化問題,其解向量中僅含有〇,1兩個值,重新定義了海明距離來度量蛋火蟲個體間的 距離,即兩個等長字符串對應(yīng)位置的字符不同的個數(shù),克服了傳統(tǒng)的歐式距離不適合計算 蛋火蟲個體間距離的問題。
[0057] 3、本發(fā)明借鑒化6'}1曰的和1(611116(17的離散二進(jìn)制粒子群算法的速度與位置更新思 想,提出一種基于二進(jìn)制編碼的新型離散型的蛋火蟲算法,將蛋火蟲進(jìn)行二進(jìn)制編碼,重新 定義了蛋火蟲個體位移方式,并引入sigmoid函數(shù)將個體位移值映射到[0,1]區(qū)間,即將個 體位移的值轉(zhuǎn)換為蛋火蟲個體相應(yīng)二進(jìn)制位取1的概率,W此作為蛋火蟲個體的位置更新 策略,從而能保證了算法的效率及收斂性。
[0058] 4、本發(fā)明可W對不可行解進(jìn)行修正:在每次迭代中解更新后某些二進(jìn)制蛋火蟲編 碼串有可能偏離可行解,即二進(jìn)制串中"Γ的個數(shù)不等于m,其成為不可行解。對于運(yùn)種情 況,可W在一個循環(huán)迭代結(jié)束后,對所有非可行解重新隨機(jī)分配初始解,即對每個非可行解 隨機(jī)分配包含m個"Γ'的d維二進(jìn)制串,運(yùn)樣使得每一次循環(huán)迭代都能保證捜索空間中的解 均為可行解,保證了種群多樣性,同時提高了捜索效率。
[0059] 5、本發(fā)明能解決算法早熟問題:對于領(lǐng)域集Ni(t)的個體進(jìn)行局部捜索,采用改進(jìn) sigmoid概率映射函數(shù),算法會很快收斂于局部最優(yōu)解。為了避免算法早熟,陷入局部最優(yōu) 解,根據(jù)啟發(fā)式算法原理,算法初始應(yīng)該進(jìn)行全局捜索,后期需要增強(qiáng)局部捜索能力,所W, 解決算法早熟問題,需要先采用sigmoid概率映射函數(shù)進(jìn)行全局捜索,再利用改進(jìn)sigmoid 概率映射函數(shù)進(jìn)行局部捜索。運(yùn)樣既保證了算法的全局收斂性,又避免了算法陷入局部最 優(yōu)解。
【附圖說明】
[0060] 圖1為現(xiàn)有技術(shù)中Sigmoid概率映射函數(shù)圖;
[0061 ]圖2為本發(fā)明位移與位變化概率之間關(guān)系圖;
[0062] 圖3為本發(fā)明深入分析位變化的概率與位移之間的關(guān)系圖;
[0063] 圖4為本發(fā)明改進(jìn)Sigmoid概率映射函數(shù)圖。
【具體實施方式】
[0064] 本實施例中,一種基于二進(jìn)制蛋火蟲算法的屬性選擇方法,是將離散型二進(jìn)制蛋 火蟲算法應(yīng)用于屬性選擇中,并按如下步驟進(jìn)行:
[0065] 步驟1、利用分形維數(shù)盒計法計算維度為d的高維數(shù)據(jù)集的分形維數(shù),獲得的計算 結(jié)果山,并向上取整后作為選擇屬性的個數(shù)m ;m<d;
[0066] -個數(shù)據(jù)集通常包含嵌入維與分形維等兩個維度,其中,嵌入維又稱歐氏維,它是 指數(shù)據(jù)點(diǎn)所嵌入的歐氏空間的維數(shù),即數(shù)據(jù)集中包含屬性指標(biāo)的個數(shù);本征維亦稱分形維, 它反映表達(dá)一個數(shù)據(jù)集所需要的關(guān)鍵屬性指標(biāo)個數(shù)。在現(xiàn)實應(yīng)用中,一般用分形維數(shù)來近 似數(shù)據(jù)集的本征維數(shù),分形維數(shù)的上界即數(shù)據(jù)集中關(guān)鍵屬性的個數(shù)。屬性選擇是W屬性變 量與目標(biāo)屬性之間的相關(guān)關(guān)系及冗余關(guān)系測度為基礎(chǔ),根據(jù)事先設(shè)定的屬性評估標(biāo)準(zhǔn)或評 估函數(shù)來選擇數(shù)據(jù)挖掘模型所需的輸入屬性,因此,屬性選擇的關(guān)鍵在于評估度量和捜索 策略運(yùn)兩方面。同時根據(jù)所要處理的數(shù)據(jù)集,利用分形維數(shù)盒計法計算數(shù)據(jù)的分形維數(shù),假 設(shè)計算出原始數(shù)據(jù)集的分形維數(shù)為山,則最優(yōu)屬性子集所包含的屬性個數(shù)為w =「4]。
[0067]步驟2、初始化蛋火蟲種群X;
[00側(cè)初始化第i只蛋火蟲為Xi,并有Xi = (Xii, Xi2,…,Xik,· · ·,Xid),i = 1,2,…η; X化表示 第i只蛋火蟲的第k位;并有X化=1表示第i只蛋火蟲的第k個屬性被選擇;并有X化=0表示第 i只蛋火蟲的第k個屬性未被選擇;且
從而初始化蛋火蟲種群X={X1,X2,···, Xi,···,Xn} ; W第i只蛋火蟲為Xi作為屬性選擇的第i個解;
[0069] 假設(shè)一個蛋火蟲種群中有η個蛋火蟲,第i個蛋火蟲個體記為xi,i = l,···,n,并有XI = [xii,xi2,…,Xik,…,Xid],其中X化化=1,2,…d)在解向量中所處位置與數(shù)據(jù)集中屬性的 序號相對應(yīng),如^=(0,0,0,0,1,0,1,0,0,1),表示原始數(shù)據(jù)集中第5、7、10位屬性是被選中 的,構(gòu)成一個候選屬性子集,其中d = 10,m=3。
[0070] 使用隨機(jī)函數(shù)對第i個蛋火蟲Xi的初始位置Xi(0) = Ixii(O),xi2(0),…,xik(0),…, Xid(o)}進(jìn)行設(shè)置,對d維解向量中隨機(jī)分配為m個1使之成為可行解,該設(shè)置方法具有較大隨 機(jī)性W體現(xiàn)算法不依賴初始值設(shè)定,運(yùn)樣可滿足初始解的多樣性,又可提高算法的精度。同 時,若第t次迭代后第i個蛋火蟲XI的位置成為不可行解,則對所有非可行解重新隨機(jī)分配 初始解,即對每個非可行解隨機(jī)分配包含m個"Γ的d維二進(jìn)制串,運(yùn)樣使得每一次循環(huán)迭代 都能保證捜索空間中的解均為可行解。
[0071] 二進(jìn)制蛋火蟲的每位的取值為1或0,分別表示該相應(yīng)屬性被選擇或者不被選擇; 該方法克服了傳統(tǒng)的連續(xù)型蛋火蟲算法無法解決離散組合優(yōu)化問題,而且運(yùn)樣二進(jìn)制蛋火 蟲編碼對屬性選擇問題的表述簡單直觀,并且降低了計算的復(fù)雜度,提高了數(shù)據(jù)處理的效 率。
[0072] 步驟3、在所述高維數(shù)據(jù)集上利用二進(jìn)制蛋火蟲算法對d個屬性進(jìn)行選擇,獲得由m 個屬性構(gòu)成的最優(yōu)屬性子集。
[0073] 其中,步驟3是按如下過程進(jìn)行:
[0074] 步驟3.1、定義迭代次數(shù)為t、最大迭代次數(shù)Nmax ;
[0075] 初始化t = 0;則第t次迭代時第i個蛋火蟲XI的巧光素值為li(t)、第t次迭代時第i 個蛋火蟲χι的動態(tài)決策域半徑為/;;(/)、第t次迭代時第i個蛋火蟲xi的鄰域集Ni(t);第t次迭 代時第i個蛋火蟲xi的位置為xi(t);
[0076] 步驟3.2、巧光素更新階段:
[0077] 步驟3.2.1、通過式(1)計算第t次迭代時第i個蛋火蟲XI的適應(yīng)度函數(shù)值J(xi(t)):
[007引 J(xi(t))=-(打 ac(Xi(t))-di) (1)
[0079]步驟3.2.2、通過公式(2)計算第*+1次迭代時第1個蛋火蟲^1的巧光素值11(*+1):
[0080] li(t+l) = (l-p) Xli(t)+y XJ(xi(t)) (2)
[0081] 式(2)表示將第i個蛋火蟲xi在第t次迭代的位置xi(t)對應(yīng)的適應(yīng)度函數(shù)值J(xi (t))轉(zhuǎn)換為巧光素值li(t+l);
[0082] 適應(yīng)度函數(shù)的定義:已知數(shù)據(jù)集的嵌入維數(shù)為d,分形維數(shù)為di,對其進(jìn)行屬性選 擇,得到一個原數(shù)據(jù)集的最優(yōu)屬性子集,其分形維數(shù)與原始數(shù)據(jù)集的分形維數(shù)山差值最小, 該屬性子集包含的屬性指標(biāo)個數(shù)為說=「41,可定義適應(yīng)度函數(shù)為:j(xi(t)) = (frac(xi (t))-di),其中,打ac(xi(t))表示第i只蛋火蟲得到的屬性子集分形維數(shù)。由于蛋火蟲XI在 領(lǐng)域中向比自己巧光素比較大的蛋火蟲Xj移動,而其適應(yīng)度函數(shù)值為分形維數(shù)與原始數(shù)據(jù) 集的分形維數(shù)山差值最小,因此J(Xi(t))不適宜作為目標(biāo)函數(shù),需將其加 W改進(jìn),如式(1)所 示:
[0083] 步驟3.3、蛋火蟲個體位置更新階段:
[0084] 步驟3.3.1、利用式(3)獲得第t次迭代時第i只蛋火蟲XI與第j只蛋火蟲為xj在第k 位上的距離巧(/,./) :,j = 1,2,.. .η,i 辛 j:
[0085]
城
[0086] 步驟3.3.2、利用式(4)計算第t次迭代時第i個蛋火蟲XI到第j只蛋火蟲之間的海 明距離Dt(iJ):
[0087]
(4)
[0088] 由于解向量中僅含有0,1兩個值,采用漢明距離來度量蛋火蟲個體間的距離,即兩 個等長字符串對應(yīng)位置的字符不同的個數(shù),克服了傳統(tǒng)的歐式距離不適合計算蛋火蟲個體 間距離的問題。
[0089] 步驟3.3.3、在第i個蛋火蟲xi的動態(tài)決策域半徑/別0內(nèi),選擇巧光素值比自己大 的所有個體構(gòu)成第t次迭代時第i個蛋火蟲XI的鄰域集Ni(t);且所述鄰域集Ni(t)中蛋火蟲 總數(shù)表示為|Ni(t)|,0</^;的< 軟;
[0090] 領(lǐng)域感知半徑的確定:二進(jìn)制蛋火蟲算法中初始感知半徑Θ與種群規(guī)模n,二進(jìn)制 蛋火蟲編碼長度d及鄰域集蛋火蟲數(shù)目闊值ω有著密切的關(guān)系。若種群規(guī)模η與蛋火蟲編碼 長度加角定時,則當(dāng)ω值變大時,領(lǐng)域感知半徑Θ也隨之也變大。根據(jù)個體間距離公式(1)與 (2)可知,兩個個體間最大距離為d。因此,本文中的領(lǐng)域感知半徑Θ及鄰域集蛋火蟲數(shù)目闊 值ω確定為:
[0091] 步驟3.3.4、通過式(5)計算第t次迭代時第i個蛋火蟲XI移向鄰域集內(nèi)Ni(t)中第S 個蛋火蟲Xs的概率Pis(t):
[0092]
(5)
[0093] 式(3)表示第t次迭代時第i個蛋火蟲XI移向具有最大概率的第S個蛋火蟲xs;s = l, 2....|Ni(t)|、v=l,2....|Ni(t)| ;
[0094] 步驟3.3.5、利用式(6)獲得第i個蛋火蟲xi在第k位的位移Mik:
[0095] Μ化= yXcXrX (Xsk-Xik) (6)
[0096] 式(4)中,μ為移動步長;c為學(xué)習(xí)因子;r為[0,1]區(qū)間的隨機(jī)數(shù);
[0097] 步驟3.3.6、利用式(7)和式(8)所示的sigmoid函數(shù)(其函數(shù)圖像如圖1所示)獲得 第i個蛋火蟲XI在第k位取"Γ的概率S(Mik),從而在解空間內(nèi)進(jìn)行全局捜索:
[0100] 運(yùn)里S(Mik)為位移Xik取1的概率,蛋火蟲個體則通過公式(8)改變自身的值,其中 randO是從[0,1]的統(tǒng)一分布中產(chǎn)生的一個隨機(jī)值,由于randO需要與S(Mik)進(jìn)行比較來確 定Xik的取值。參考相關(guān)文獻(xiàn)定義一個最大位移值Mmax來限制Mik的范圍,通常Mik的取值范圍 為[-6,6 ],對位移的限制也就是限制了二進(jìn)制位取0或1的概率,相應(yīng)概率限制在[0.0025, 0.9975]。
[0101] 由公式(7)概率映射函數(shù)可知二進(jìn)制蛋火蟲移動軌跡是一種概率變化,而二進(jìn)制 編碼的蛋火蟲單維位移轉(zhuǎn)換為位取1的概率。由于二進(jìn)制位取值情況只有0和1兩種情況,若 蛋火蟲i第k位為1的概率為S(Mik),則位為0概率就是l-S(Mik)。若當(dāng)前二進(jìn)制位的值是1,則 其發(fā)生改變的概率就是l-S(Mik)。;若當(dāng)前二進(jìn)制位的值是0,則其發(fā)生改變的概率就是S(Mik)。 所W位發(fā)生變化的絕對概率如公式P( Ω ) = S(Mik)(l-S(Mik))所示,其表示為二進(jìn)制位給定 一個位移Mik值,其發(fā)生變化的絕對概念。因此,Mik值變化就是二進(jìn)制位變化的概率變化。將 公式(7)代入到公式P( Ω ) = S(Mik)(l-S(Mik))可得
其表示二進(jìn)制位的位移與位的變化絕對概率之間的關(guān)系,其關(guān)系圖如圖2所示:由圖2可知 當(dāng)二進(jìn)制位位移為0時,位變化的絕對概率值最大為0.25。但運(yùn)種分析結(jié)果不夠全面和客 觀,因為二進(jìn)制位變化不僅與位移及當(dāng)前值有關(guān),而且還會受到上一代位值的影響。因此需 對蛋火蟲二進(jìn)制位進(jìn)行深入分析,設(shè)Mik(t)為第i只蛋火蟲的第t代在k維的位移,第t代二進(jìn) 制位為1的概率為S(Mik(t)),則位為0概率是l-S(Mik(t))。另外,若第t-1代位值是0,則第t 將發(fā)生改變的概率為S(Mik(t));同理,若第t-1代位值是1,則第t代將發(fā)生改變概率為1-S (Mik(t))。因為第t-1代位值為0的概率是l-S(Mik(t-l)),第t-1代位值為1的概率亦是S(Mik (*-1))。可知第*代二進(jìn)制位發(fā)生變化的絕對概率9(〇就為:9(〇 = (1-5(1^^(*-1)))5(111^ (t))+S(Mik(t-l))(l-S(Mik(t)))。假設(shè) Mik(t)=Mik(t-l),則得公式:p(t) = 2(l-S(Mik(t))) S(Mik(t)),將公式(7)代入公式p(t) = 2( l-S(Mik(t) ) )S(Mik(t))得公式:
,其表示二進(jìn)制位變化的概率與位移的關(guān) 系,如圖3所示,圖中拋物線的最高點(diǎn)在位移Mik(t)為0時,最大值為0.5。運(yùn)也就表示蛋火蟲 的位發(fā)生改變的概率為0.5。故當(dāng)?shù)盎鹣x的位置都收斂到全局最優(yōu)位置,蛋火蟲的二進(jìn)制位 改變概率為0.5,達(dá)到了位變化概率的最高值。由此可W得到運(yùn)樣的結(jié)論:屬性選擇算法的 蛋火蟲不可能收斂于全局最優(yōu)值,若其收斂到全局最優(yōu)值,則其位移為ο,運(yùn)反而二進(jìn)制位 發(fā)生變化率最大,即為0.5。此時,具有隨機(jī)性更強(qiáng)的捜索,故算法具有全局性,其隨機(jī)性更 強(qiáng),不具有全局收斂性。運(yùn)應(yīng)該就是算法的缺點(diǎn),需要通過修正蛋火蟲位移與二進(jìn)制位改變 之間的關(guān)系來克服運(yùn)個缺陷。
[0102]步驟3.3.7、利用式(7)和式(8)所示的改進(jìn)sigmoid函數(shù)(其函數(shù)圖像如圖4所示) 獲得第i個蛋火蟲XI在第k位取"Γ的概率S(Mik),從而在解空間內(nèi)進(jìn)行局部捜索:
[010引由位移公式Mik = yXcXrX (Xsk-Xik)可知,Xsk-X化的可能取值為一1,0和1,其中0 表示Xsk與X化位的值相等;一1表示Xsk為0,而X化的值為1; 1表示Xsk為1,而X化的值為0。因此, 位移Mik的值可W理解為,當(dāng)位移為0時,意味著領(lǐng)域最優(yōu)蛋火蟲和自身位置相等,二進(jìn)制位 不需要變化;而當(dāng)位移為負(fù)時,領(lǐng)域最優(yōu)蛋火蟲位置可能為0,而當(dāng)前蛋火蟲的二進(jìn)制位可 能為1,故二進(jìn)制位需要最大可能轉(zhuǎn)變?yōu)?;而位移為正,領(lǐng)域內(nèi)最優(yōu)蛋火蟲位置可能為1,而 蛋火蟲的二進(jìn)制位可能為0,故二進(jìn)制位最大可能轉(zhuǎn)換為1。為了讓蛋火蟲位移與二進(jìn)制位 變化的關(guān)系上面分析一致,對公式(7)進(jìn)行修正,當(dāng)?shù)盎鹣x位移為0,期望新的概率映射函數(shù) 值為0,即體現(xiàn)其收斂性;當(dāng)位移小于0與大于加寸,概率映射函數(shù)為偶函數(shù),則映射函數(shù)關(guān)于 Y軸對稱,現(xiàn)對位移與概率映射函數(shù)修改為公式(9),其函數(shù)圖像如圖4所示:
[0106] 運(yùn)里S(mik)為位移Xik取1的概率,若采用sigmoid函數(shù)作為概率映射函數(shù),則蛋火 蟲個體通過公式(7)與(8)來改變自身的值,運(yùn)樣算法的全局捜索能力較強(qiáng),但算法不易于 收斂;若采用改進(jìn)sigmoid函數(shù)作為概率映射函數(shù),則蛋火蟲個體通過公式(9)與(10)來更 新自身的值,運(yùn)樣算法的局部捜索能力較強(qiáng),但算法易于陷入局部最優(yōu)解。由啟發(fā)式的捜索 算法的原理可知,算法在初始時需要具有全局捜索能力,到了后期需要更強(qiáng)的局部捜索能 力。因此,方法將全局捜索與局部捜索結(jié)合起來,定義一個全局捜索與局部捜索平衡因子終, 其取值為[0,1]區(qū)間的實數(shù),t為當(dāng)前運(yùn)行的迭代次數(shù),Nmax為最大迭代次數(shù)。當(dāng)t小于等于 知V·,。。時,算法采用公式(9)的概率映射函數(shù),位更新機(jī)制采用公式(11);當(dāng)t大于口W,。。、,算 法采用公式(10)概率映射函數(shù),位更新機(jī)制采用公式(12)。經(jīng)大量實驗分析,.皆一般在[0.6- 0.引之間取值。
[0107] 經(jīng)過步驟3.3后產(chǎn)生的解可能會出現(xiàn)解向量中元素為1個數(shù)不是m的情況,即出現(xiàn) 了不可行解,則對所有非可行解重新隨機(jī)分配初始解,即對每個非可行解隨機(jī)分配包含m個 "Γ的d維二進(jìn)制串,運(yùn)樣使得每一次循環(huán)迭代都能保證捜索空間中的解均為可行解,保證 了種群的多樣性,提高捜索效率。
[0108] 步驟3.4、動態(tài)決策域更新階段:
[0109] 利用式(11)獲得第t+1次迭代時第i個蛋火蟲XI的動態(tài)決策域半徑均'(/ + 1);
[0110] +1) = min.供max(0 + /?x(似} (II)
[0111] 采用自適應(yīng)動態(tài)決策域半徑,可W根據(jù)鄰域集內(nèi)的蛋火蟲數(shù)目來調(diào)節(jié)決策域半 徑,若鄰域集內(nèi)的蛋火蟲數(shù)目小于闊值,則增大決策域半徑,擴(kuò)大捜索范圍,避免陷入局部 最優(yōu);若鄰域集內(nèi)的蛋火蟲數(shù)目大于闊值,則減小決策域半徑,縮小捜索范圍,提高收斂速 度。
[0112] 步驟4、輸出最優(yōu)解:
[0113] 判斷t+l>Nmax是否成立,若成立,則算法結(jié)束,輸出最優(yōu)屬性子集;否則,將t + 1賦 值給t,并返回步驟3順序執(zhí)行。
[0114] 利用10個UCI標(biāo)準(zhǔn)數(shù)據(jù)集對提出的屬性選擇算法進(jìn)行實驗驗證,結(jié)合10-fold交叉 驗證和SVM對屬性選擇前后的分類準(zhǔn)確率進(jìn)行分析,并進(jìn)行捜索策略和評估度量準(zhǔn)則間的 性能對比及詳細(xì)的參數(shù)分析,實驗結(jié)果表明該方法具有較高的可行性和有效性。
【主權(quán)項】
1. 一種基于二進(jìn)制螢火蟲算法的屬性選擇方法,其特征是按如下步驟進(jìn)行: 步驟1、利用分形維數(shù)盒計法計算維度為d的高維數(shù)據(jù)集的分形維數(shù),獲得的計算結(jié)果 di,并向上取整后作為選擇屬性的個數(shù) 步驟2、初始化螢火蟲種群X; 初始化第i只螢火蟲為xi,并有xi = (xu,xi2,…,xik,…,xid),i = 1,2,…η;xik表示第i只 螢火蟲的第k位;并有xik=l表示第i只螢火蟲的第k個屬性被選擇;并有xik = 0表示第i只螢 火蟲的第k個屬性未被選擇;;從而初始化螢火蟲種群X= {xi,X2,···,xi,···,xn}; 以第i只螢火蟲為Xl作為屬性選擇的第i個解; 定義第i只螢火蟲xi的熒光素?fù)]發(fā)因子為p、熒光素更新率為γ、動態(tài)決策域更新率為β、 感知半徑為Θ、鄰域集內(nèi)包含的螢火蟲數(shù)目的閾值為ω、初始熒光素值為li(0)、初始動態(tài)決 策域半徑為心〇)、初始位置為xi(〇) = Uii(〇),xi2(〇),…,xik(O),…,xid(O)}; 步驟3、在所述高維數(shù)據(jù)集上利用二進(jìn)制螢火蟲算法對d個屬性進(jìn)行選擇,獲得由m個屬 性構(gòu)成的最優(yōu)屬性子集。2. 根據(jù)權(quán)利要求1所述的基于二進(jìn)制螢火蟲算法的屬性選擇方法,其特征是所述步驟3 是按如下過程進(jìn)行: 步驟3.1、定義迭代次數(shù)為t、最大迭代次數(shù)Nmax; 初始化t = 0;則第t次迭代時第i個螢火SXl的焚光素值為h(t)、第t次迭代時第i個螢 火蟲xi的動態(tài)決策域半徑為你)、第t次迭代時第i個螢火蟲Xi的鄰域集Ni(t);第t次迭代時 第i個螢火蟲xi的位置為&(1:); 步驟3.2、熒光素更新階段: 步驟3.2.1、通過式(1)計算第t次迭代時第i個螢火蟲^的適應(yīng)度函數(shù)值J(Xl(t)): J(xi(t))=-(frac(xi(t))-di) (1) 步驟3.2.2、通過公式(2)計算第1+1次迭代時第1個螢火蟲11的熒光素值11(1+1): li(t+l) = (l-p) Xli(t)+y XJ(xi(t)) (2) 式(2)表示將第i個螢火蟲^在第t次迭代的位置Xl(t)對應(yīng)的適應(yīng)度函數(shù)值J(Xl(t))轉(zhuǎn) 換為熒光素值ii(t+i); 步驟3.3、螢火蟲個體位置更新階段: 步驟3.3.1、利用式(3)獲得第t次迭代時第i只螢火蟲xi與第j只螢火蟲為xj在第k位上 的距離 A:0_,./),j = 1,2,...11,i 關(guān) j :步驟3.3.2、利用式(4)計算第t次迭代時第i個螢火SXl到第j只螢火蟲之間的海明距離步驟3.3.3、在第i個螢火*Χι的動態(tài)決策域半徑rj(〇內(nèi),選擇熒光素值比自己大的所有 個體構(gòu)成第t次迭代時第i個螢火蟲Xi的鄰域集Ni(t);且所述鄰域集Ni(t)中螢火蟲總數(shù)表 示為 |Ni(t) |,() < "";(;〇< 沒.; 步驟3.3.4、通過式(5)計算第t次迭代時第i個螢火蟲Xi移向鄰域集內(nèi)Ni(t)中第s個螢 火蟲Xs的概率Pis(t):式(3)表示第t次迭代時第i個螢火蟲Xi移向具有最大概率的第s個螢火蟲^;8 = 1,2.- |Ni(t) |、v=l,2···· |Ni(t) | ; 步驟3.3.5、利用式(6)獲得第i個螢火蟲Xi在第k位的位移Mik: Mik=yXcXrX (xsk-xik) (6) 式(4)中,μ為移動步長;c為學(xué)習(xí)因子;r為[0,1]區(qū)間的隨機(jī)數(shù); 步驟3.3.6、利用式(7)和式(8)所示的sigmoid函數(shù)獲得第i個螢火SXl在第k位取"Γ的 概率S(Mlk),從而在解空間內(nèi)進(jìn)行全局搜索:步驟3.3.7、利用式(7)和式(8)所示的改進(jìn)sigmoid函數(shù)獲得第i個螢火蟲^在第k位取 "Γ的概率f (Mlk),從而在解空間內(nèi)進(jìn)行局部搜索:步驟3.4、動態(tài)決策域更新階段: 利用式(11)獲得第t+Ι次迭代時第i個螢火蟲Xi的動態(tài)決策域半徑你+ ]):步驟4、輸出最優(yōu)解: 判斷t+Ι >仏^是否成立,若成立,則算法結(jié)束,輸出最優(yōu)屬性子集;否則,將t+Ι賦值給 t,并返回步驟3順序執(zhí)行。3.根據(jù)權(quán)利要求1所述的基于二進(jìn)制螢火蟲算法的屬性選擇方法,其特征是,步驟3.3 的螢火蟲個體位置更新階段中還包括: 當(dāng)所獲得的第t次迭代時第i個螢火蟲Xi的位置Xi(t) = {xil(t),Xi2(t),…,Xik(t),···, Xld(t)}中取值為"Γ的個數(shù)不為m時,則表示第i個螢火蟲^的位置Xl(t)為不可行解;并隨 機(jī)分配包含m個"Γ的d維二進(jìn)制串作為第t次迭代時的初始解。4.根據(jù)權(quán)利要求1所述的基于二進(jìn)制螢火蟲算法的屬性選擇方法,其特征是,步驟3.3 的螢火蟲個體位置更新階段中還包括: 定義局部與全局搜索平衡因子為W P e fOJ]: 當(dāng),利用式(5)和式(6)在解空間內(nèi)進(jìn)行全局搜索; 當(dāng)〃 胃時,利用式⑴和式⑶在解空間內(nèi)進(jìn)行局部搜索。
【文檔編號】G06F17/30GK105824937SQ201610157896
【公開日】2016年8月3日
【申請日】2016年3月17日
【發(fā)明人】倪志偉, 李敬明, 張琛, 朱旭輝, 金飛飛, 伍章俊
【申請人】合肥工業(yè)大學(xué)