譚琳
摘要:由于聚類技術(shù)的不斷發(fā)展,近幾年運用范圍越來越大,在生物學上,營銷分析學上,在對Internet上的Web中文檔管理上都有很大的運用。但是這些跨領(lǐng)域,跨專業(yè)的運用需要一個公用平臺來實現(xiàn),這就是本篇文章提倡的基于Java來實現(xiàn)聚類分析。
關(guān)鍵詞:聚類技術(shù)、Java
中圖分類號:TP3 文獻標識碼:A 文章編號:1009-3044(2013)08-1894-06
1 研究背景
JAVA是一種跨平臺的語言,靈活性比較大,運用范圍廣,能運用到各種系統(tǒng)和領(lǐng)域中。聚類技術(shù)最近幾年越來越受到大家的追捧,聚類算法的應(yīng)用也得到了推廣,在生物學上,聚類能通過基因和蛋白質(zhì)的這兩類的分類或者聚類,對種群中固定結(jié)果的重新認識和分析,從而推導(dǎo)出不同的植物或者動物種類:在市場關(guān)系上,市場分析人員也可以通過聚類發(fā)現(xiàn)客戶數(shù)據(jù)中不同的客戶群體,對這些群體的不相同類的特征進行模式刻畫,從而能預(yù)測某客戶群體的購買類型。不僅如此,聚類也能對internet上的web中的文檔或者文件進行分類,而發(fā)現(xiàn)對人們有價值的知識,此外聚類還可以對其他方法進行預(yù)處理過程,對這些方法起輔助作用。
基于JAVA的聚類分析的實現(xiàn),給聚類技術(shù)的推廣起到推風助浪的作用,使得聚類技術(shù)能在更多的領(lǐng)域中拓寬。
2 聚類分析概念
聚類是運用數(shù)據(jù)對象之間的距離,并運用相關(guān)的聚類分析原則將對象逐一劃分到多個簇(clusters)中。每一個簇中中也包含了多個相同類屬對象,同一個簇鐘的對象之間的相似度要比不同簇的相似度大,最終的聚類能使得各簇種對象的相似度最小,這樣就達到聚類的目的了。這樣的聚類分析不僅可以對數(shù)據(jù)分析和知道的挖掘提供數(shù)據(jù)依據(jù),也可以解開事物數(shù)據(jù)之間的內(nèi)在聯(lián)系和區(qū)分,這使得聚類分析愛成為數(shù)據(jù)挖掘技術(shù)中不可缺少的成員。
3.2 層次聚類
層次聚類是根據(jù)凝聚或分裂的層次分解形式對數(shù)據(jù)對象集合進行層次分解。分裂的方法是自頂向下的方法,首先把所有的數(shù)據(jù)對象點歸為一類,然后以此分裂成更小的類,分裂到每個對象能夠單獨在一個類中為止。凝聚與分裂的方法相反,是一種自底向上的方法,“底”在這里指的是單個數(shù)據(jù)點,首先以單個數(shù)據(jù)點作為一個類,然后對相近的數(shù)據(jù)對象進行合并歸納成新的類,直到所有的數(shù)據(jù)對象合并成一個類為止,這個類在層次上面叫著的最上層,整個運作過程是自底向上的方式運作。常用的算法有利用層次方法的平衡迭代歸約和聚類—BIRCH。
3.3 基于密度的方法
基于密度的方法就是讓最近區(qū)域密度值達到一定的標準,也就是有一個具體的閥值即對象的個數(shù),還有就是該區(qū)域半徑值,以這些標準來對對象進行聚類。用這種方法的好處是避免了劃分方法中發(fā)現(xiàn)球狀簇的局限。例如基于高密度連接區(qū)域的密度聚類方法——DBSCAN。
3.4 基于網(wǎng)格的方法
基于網(wǎng)格的方法就是在網(wǎng)格接結(jié)構(gòu)的基礎(chǔ)上對數(shù)據(jù)進行聚類,我們將采用量化的方式把空間對象分成有限的數(shù)目單元,這樣就是對空間對象進行網(wǎng)格。這種算法有—CLIQUE算法。
3.5 基于模型的方法
基于模型的方式就是給定一個模型,根據(jù)模型的要求尋找最合適的對象的方法。在對象空間的密度數(shù)來構(gòu)建一個模型,通過統(tǒng)計數(shù)字自動來決定聚類的數(shù)目,從而去掉不需要的噪聲數(shù)據(jù),使得聚類的方法更有力。這種方法有COBWEB算法,網(wǎng)絡(luò)神經(jīng)方法有SOM算法。
3.6 基于約束的方法
對數(shù)據(jù)的個體對象進行約束,或者設(shè)置聚類參數(shù)來約束,來進行聚類的方法。因為在我們的客觀世界中聚類的問題存在很多的約束條件,但是這些條件都是很發(fā)雜的,往往不被有效的利用出來,從而不能對這方法進行進行廣泛的推廣和應(yīng)用。這種方法有COD (Clustering with Ob2structed Distance)。
第三步:計算每個聚類中所有對象的均值,得出新的聚類中心。
第四步:對新的聚類中心重復(fù)上面的第二和第三步,并得到新的聚類中心,直止新的聚類點不再更新。得出最終的聚類中心。
初值的好壞直接影響到K—Means算法的最后結(jié)果,也可以因為初值的問題導(dǎo)致聚類的結(jié)果有天差萬別,因此要改變K—Means算法的初值的取法,是K—Means算法的改進的關(guān)鍵。
中心點的選取不同直接影響到聚類結(jié)果不同,因此初始聚類中心的選擇在 K—Means算法中非常重要。實際應(yīng)用中,我們即希望中心點能夠盡量分散,也希望這些中心點具有一定的代表性,這也是我們聚類的目的。我們運用一種基于試探性的算法---最大最小距離算法可以對初始聚類中心的選擇做出相對較好判斷,它能相對智能地確定最佳的初始聚類的中心,可以提高劃分初始數(shù)據(jù)集的效率,避免過去K—Means算法中選取初始聚類過于鄰近,而導(dǎo)致聚類結(jié)果不佳的情況。
參考文獻:
[1] 朱福喜. Java程序設(shè)計技巧與開發(fā)實例[M].北京:人民郵電出版社,2004,2.
[2] 陸惠恩.實用軟件工程[M].北京:清華大學出版社,2006,5.
[3] (美)Bruce Eckel著,陳昊天譯.Java編程思想[M].北京:機械工業(yè)出版社,2007,6.
[4] 朱福喜,黃昊.Java項目開發(fā)與畢業(yè)設(shè)計指導(dǎo)[M].北京:清華大學出版社,2008,6.
[5] 鄭人杰,殷人昆.陶永雷.實用軟件工程[M].北京:清華大學出版社,2004,11.