【摘要】論文在模糊劃分聚類中加入人工魚群算法使兩者有機結合,充分利用模糊劃分算法的局部快速收斂性、人工魚群算法的并行性、全局性和可視域內聚群行為的特點,使其優勢互補。該算法應用于陜西生態經濟區聚類研究,實驗結果表明,該聚類算法的全局尋優能力優于基于劃分算法,聚類效果較好,能夠反映陜西十地市生態環境污染狀況。
【關鍵詞】 魚群算法;生態經濟;聚類
一、引言
人工魚群算法(Artificial Fish Swarm Algorithm,AFSA)是一種模仿魚群行為方式的隨機搜索優化算法。算法采用自下而上的設計方法,主要利用魚的覓食,聚群和追尾行為,從構造單條魚的行為做起,通過魚群中各個體的局部尋優,從而達到使全局最優值在群體中突現出來的目的。算法具有快速跟蹤極值點、克服局部極值并獲得全局極值的能力,而且對初值和參數要求不高。從魚群算法本身性質上來講,對啟發式函數的要求并不敏感。
論文把近年來新興的于人工魚群算法(Artificial Fish Swarm Algorithm,AFSA)引入聚類分析中,利用人工魚群算法良好的克服局部極值、獲取全局極值的能力和對啟發式函數要求并不敏感等優點,提出了基于人工魚群算法的聚類規則挖掘算法,該算法把樣本空間看作魚池,把聚類中心看作食物源,使用樣本抽樣的方法產生部分初始魚群,通過人工魚群的覓食、聚群、追尾等行為,自適應地完成聚類中心的選定,再使用FCM算法進行局部搜索,得到最終的聚類結果。
二、人工魚群算法原理
人工魚群算法作為一類新的計算模式引入的,它就是通過模擬魚群的覓食和生存活動,采用自下而上的設計方法來實現在空間中尋求全局最優的一種新思路。即首先構造人工魚的個體模型,然后群集現象作為整體模式從個體的局部的相互作用中突現出來。其算法原理如圖1所示。
根據相關定義結合人工魚群算法,進一步描述在聚類挖掘中的人工魚模型。
(一)覓食行為
通過反復試探,在人工魚當前狀態Xi的k-距離鄰域內搜索出更優的解,如果經過trynumber次搜索,無法找到更優的解,則執行隨機行為。
(二)聚群行為
對于人工魚當前狀態Xi的k-距離的鄰域內,如果發現其中心位置的食物濃度Xc(即群體相似度)更高且不太擁擠,則向中心位置前進。
(三)追尾行為
搜索人工魚當前狀態的k-距離鄰域內的最優解Xmax,如果發現該位置的食物濃度Ymax更高且不太擁擠,則向它前進一步。
(四)隨機行為
隨機行為是為了擴大搜索空間,便于跳出局部最優。在本算法當中,可以隨機選擇一個族的屬性值,用另外的屬性值來替換(要求必須都屬于同一個屬性的)。
(五)約束行為
有可能出現孤立點情況,這時出現了不是可行解,那么需要再隨機賦予一個屬性值,使它成為可行解。
(六)公告板
在本算法當中,公告板中記錄當前對象所屬的類和當前最優的函數值,如果發現當前對象聚類要求達到滿意值,則可以停止搜索。
(七)選擇策略
按照有進步就行的原則來選擇合適的行為方式,即只要任何一種行為能夠得到比當前更優的解,則選擇該種行為,這樣可以節省計算量。比如,若發現聚群行為得到的解優于當前的解,選擇該解,否則嘗試追尾行為。
三、基于人工魚群算法的聚類算法
人工魚群算法不需要先驗知識,利用隨機遍歷的原則進行聚類分析,可以避免局部最優的發生,但是卻需要較長的時間。基于目標函數的聚類分析需要一個初始分割,運用確定/啟發式原則進行聚類分析,能夠把“自由”的數據對象快速有效的指定到相應的類中。兩種算法結合的混合聚類算法不再要求輸入初始分割,避免了錯誤的初始信息導致錯誤的聚類結果,提高了聚類的效率。
利用人工魚群算法進行聚類挖掘,關鍵在于人工魚個體(AF)模型的構造,在個體自主行為的過程中,隨著群體效應的逐步形成,而使得最終結果突現出來,算法僅使用了目標問題的函數值,對搜索空間有一定的自適應能力;多個人工魚個體并行進行搜索,具有較高的尋優效率;隨著工作狀況或其他因素的變更造成極值點的漂移,算法具有快速跟蹤變化能力。在本算法中,每條人工魚X代表一個聚類對象,人工魚的距離、鄰域和中心位置這幾個概念比較重要,下面就對它們相關概念進一步定義。
算法實現步驟:
基于上述的人工魚模型的描述及相關定義,用人工魚群算法來進行聚類挖掘,得到基于魚群算法的聚類方法,按照圖5-3步驟進行。
算法步驟如下:
(一)初始化
設定魚群算法的參數,包括魚群規模的大小,最大迭代次數Gemax,人工魚的感知范圍Visual,人工魚擁擠度因子,移動步長,最大試探次數,循環次數nc,計算解對應的目標函數min∑nk=1∑ci=1μikm(dik)2。令當前迭代次數Gen=0,在可行域內隨機產生N條魚,形成初始魚群。進入下一步,全局搜索得最優解。
(二)計算初始人工魚個體當前位置的食物濃度Xc,并比較它們的大小,找到當前全局最大值進入公告板,即確定初始聚類中心,并保存其狀態。公告板具有一定的記憶特點,當其遇到或搭建起一個聚群時,會將該群的特征信息以及位置信息記錄下來。
(三)各人工魚分別模擬執行追尾行為和聚群行為,選擇行動后食物濃度值較大者的行為實際執行,缺省行為方式為覓食行為。各人工魚每行動一次后,檢驗自身狀態與公告板狀態,如果優于公告板狀態,則以自身狀態取代之。
(四)計算新的聚類中心,計算每個模式樣本到新的聚類中心的距離dik2=‖xk-pi‖A;計算聚類質量是否達到滿意,更新公告板信息。主體在聚類過程中會遇到聚類或物體,主體會自行區分這兩種不同情形,從而采取不同的行動來區別對待。endprint
(五)中止條件判定。Gen←Gen+1,若Gen (六)對滿意的全局最優解進行局部優化,應用基于目標函數的聚類算法,對解進一步局部優化,產生高精度的最終解,即得本文的聚類結果。 該算法在產生下一代解時有較大的隨機性,所以不易陷入局部最優;對每條人工魚個體狀態用了基于目標函數(劃分)的優化方法,人工魚的聚群行為的中心恰恰就是人工魚可視域內數據聚類分析的中心,這有利于混合算法快速有效收斂。 四、基于人工魚群的陜西生態環境聚類劃分 為了從實際結果闡述基于人工魚群改進的模糊聚類算法的合理性,本文采用陜西十地市生態環境數據,取COD年排放量、氨氮年排放量、SO2年排放量、煙塵年排放量、粉塵年排放量和工業固廢年排放量,6個指標綜合衡量陜西十地市生態污染狀況進行聚類。 為了確定最佳類個數,可以依次把分類個數設置為1,2,3,…,9,10比較最優分類方案的平均目標函數值,從而確定最佳分類個數。平均目標函數值的定義為:Jb=1c∑ci=1∑nk=1uikb‖xk-vi‖2。根據目標函數最小的依據,最佳聚類數為3。因此,這里將污染狀況分為三個等級,即:嚴重污染、一般污染、污染較輕。 本文分別采用FCM算法和AFS-FCM算法,將陜西污染狀況分成3類。其分類結果為:10個地市可以分為三類,西安、寶雞、咸陽為一類;榆林、延安、銅川、商洛、安康、漢中為一類;渭南為一類。用MapInfor Professional 7.0處理后如圖3所示: 這與筆者用SNOD算法求得10個地市的環境污染狀況偏離因子是吻合的,10地市偏離因子從大到小依次為:渭南、西安、寶雞、咸陽、榆林、漢中、銅川、安康、延安、商洛。其中最離群空間離群點是渭南,偏離因子KSNOD(o)分別為2.7221,屬性值(0.1512,0.1614,0.1235,1.6268,1.19216,0.3102)。其領居為西安,咸陽,商洛,延安,銅川。事實上,渭南市由于造紙行業、化工冶金等污染嚴重,各項污染物排放指標中SO2年排放量最高,COD年排放量、氨氮年排放量、煙塵年排放量位居第二,工業固廢和粉塵排放量也比較多,所以其污染程度排在第一位且單獨為一類。西安、寶雞、咸陽三個城市位于關中且地理位置分布集中,經濟發展相對平衡,相互影響,環境狀況較為類似,各種污染物排放量較多,污染較嚴重,因此被劃分為一類。其余地市根據其污染狀況指標計算結果劃分為一類,但是實際狀況略有差別,但是可以按照較輕度污染來治理。總體上,劃分的結果與實際較為類似,但是由于數據獲取的原因以及指標選取的主觀性等原因,沒有涉及生態破壞的指標,僅僅涉及了三廢排放情況,因此,榆林、延安兩城市的劃分結果與實際狀況有所差距,在進一步的研究中如果細化指標變量,增加數據完整性和客觀性,可以獲得更為滿意的結果。 在模糊劃分聚類中加入人工魚群算法使兩者有機結合,充分利用模糊劃分算法的局部快速收斂性、人工魚群算法的并行性、全局性和可視域內聚群行為的特點,使其優勢互補。實驗結果表明,該聚類算法的全局尋優能力優于基于劃分算法,正確率明顯提高,聚類效果更好。將本文算法有效地應用于解決實際問題是筆者下一步要做的工作。 參考文獻: [1]李曉磊,邵之江,錢積新.一種基于動物自治體的尋優模式:魚群算法[J].系統工程理論與實踐,2002(11):32-38 [2]蘇錦旗,薛惠鋒,吳慧欣.基于熵度量的空間鄰域離群點查找[J].計算機工程與應用,2009,45(21):41-43 [3]奧布力·塔力普,汪慧玲,阿里木江·卡斯木.基于系統聚類分析的西部地區環境污染程度評價[J].冰川凍土,2015,37(1):266-270 [4]張羽婷.寧夏中部干旱帶生態經濟區劃研究[J].經營管理者,2015(36):41-43 [5]張利娜.西氣東輸靖邊段管道沿線生態環境穩定性評價[D].北京:中國地質大學,2016 基金項目: 陜西社會科學基金(13Q081);陜西省教育廳2014年科學研究計劃項目(14JK1642);陜西省社會科學基金面向“十三五”重大理論和現實問題研究項目(2016ZDA10)。