張 軍
(江蘇海事職業(yè)技術學院信息工程學院 江蘇 211170)
數據挖掘是一個涉及到很多領域的學科,因為大數據的出現使得數據挖掘需要運用統(tǒng)計學,人工智能等等來對數據進行處理分析。而聚類算法作為數據挖掘的核心方法之一,已經在科研和具體實踐中得到了廣泛的應用。聚類算法是數據挖掘中相對而言較復雜的算法,比分類算法在理解和處理上都有難度。聚類算法在實踐中,要想有意義,就必須具有可伸縮性,即對不同大小的數據集合,處理效果要是一致的;聚類分析可以處理不同類型的數據,并且對于不同形狀的簇,也要有合理的效果;聚類算法還可以識別其噪聲數據,拋棄不相干的的噪聲,聚類結果有邏輯上的意義,有可解釋性;聚類還可以處理高緯度的數據,而且在合理的時間內處理完成。
所謂聚類就是將一些數據集合進行分組,每一組的對象之間是有相似的屬性。聚類分析就是將給定的數據對象集合分成不同的簇,所謂的簇即是聚類產生的對象的集合,而簇的特點是每個簇內其屬性相似,簇間屬性不同。目標就是使類之間差異盡可能大,類內部的相似度盡可能大。
聚類和分類是完全不同的,分類的目標類別是已知的,而聚類的結果是未知的,需要不停的嘗試聚類的結果類別數(除特殊情況,如已知總共的類別數)。聚類分析可以通過建模的方式簡化數據,建模方法有分解法,模糊聚類等方法。從數據挖掘的角度來說,聚類算法是一種無監(jiān)督學習的方式,所產生的簇是隱含的,這是與分類算法最大的不同點。在無監(jiān)督學習中,用來訓練的樣本是沒有進行標記的,事先不知道類別,通過聚類算法后,每個元素被分到某個類中,才有了類別。
聚類分析的過程是不斷探索的,因此開始時,不必事先確定分類標準,聚類算法能夠從樣本自身中進行挖掘,進行分類。使用不同的聚類方法,其結果往往不同,同樣的聚類算法,對不同的數據,聚類結果也可能不同。
在運用到實際生活中,其聚類分析是數據挖掘的核心,聚類可以獨立獲得其散布,觀察其數據的特點,對其進行分析。
傳統(tǒng)的聚類分析計算方法有以下幾種類型:
(1)劃分法
對于一個數據集,其大小為M,劃分結果為K個類,K小于M。結果中每個類至少包含一個元素;每一個元素僅屬于一個類。一般情況下K未知,算法首先給出一個初始的分組(有時為隨機劃分),然后通過某種確定的方法,衡量分組的好壞。得到一個衡量值。再通過迭代的方法改變分組里的元素,再次計算衡量值,選擇其中最大衡量值的分組方式,思想是:同一組中的元素距離盡可能的近,而不同分組之間的距離盡可能的遠。使用這種思想的最簡單易懂應用最廣泛的的算法是K-MEANS算法。
(2)層次聚類
有些數據可以進行層次分解,這種聚類方法要求數據滿足層次性。不是所有的數據都適應。劃分層次時,需要設定一個停止條件。在實際執(zhí)行中,層次聚類可分為“自底向上”和“自頂向下”兩種。“自底向上”算法的意思是,每一個元素剛開始都是一個單獨的類,在下一輪迭代中,算法把最相近的元素歸為一個類,此處需要事先設定好一個相似度,大于此相似度的才歸類,否則仍然自己單獨一類,如果不滿足要求,則繼續(xù)進行迭代。再次迭代時,相似度要相應的降低,以便聚類,直到所產生的類滿足要求。這種思想的典型算法是BIRCH算法。
(3)基于密度的聚類
以上兩種方法,在度量相似度時候,都是基于各種距離的,而基于密度的聚類不考慮元素之間的距離。基于距離的算法,其缺點是只能發(fā)現“類圓形”的簇,對于特殊形狀的簇效果很差。基于密度的算法的思想是,只要某一個區(qū)域中點的密度大于事先設定好的值,就把這個點歸到和它最相近的類中?;诿芏鹊牡湫退惴ㄓ蠨BSCAN算法等;
(1)K原型算法
該算法通過改進其K均值算法,使得該算法能夠處理符號屬性的數據。
(2)層次算法(CURE)
CURE算法選擇類是以數據點作為依據,合并類是按照距離最近的類將其合并,直到其合并的個數滿足要求位置。層次算法不在使用半徑或所有點表示類別,而是從了類別選擇數量一定并且分布比較好的點來描述該類別,并且為了使這些點更加靠近中心,乘以一個因子,而這個因子還可以將噪音的影響降到最低。將一個類用代表點來表示,使得類在擴展時,并不一定要按照球形的方式來擴展,采用隨機抽樣的方法提升空間,可以調整類的形狀,來表示更大形狀范圍的簇。
(3)劃分算法(CLARANS)
劃分算法的過程是,先隨機選一個點,隨機對周圍設定不超過最大鄰居的鄰接點,假如找出一個比它更好的點,就將其移入到該點中,如果沒有更好的點則該點就作為其局部最小量。然后再隨機選擇一個點,去尋找另一個局部最小的點。
(4)基于密度算法
這種方法也叫DBSCAN算法,主要是利用類的密度連通性對類進行研究分析。其思想是,對于任意一個對象,在其給定的半徑空間內,含有的對象數不能少于某一數值。只要區(qū)域的密度符合要求,就歸為一類(一簇),而不關心類的形狀和大小,其優(yōu)點的其聚類的速度快,能夠處理噪聲,能夠處理各種奇形怪狀的簇。但其缺點也比較明顯,一旦遇到大數據的樣本則需要的內存也隨之增加,其很消耗I/O。如果簇的密度不均勻,則效果也不夠好。
在商業(yè)領域內,聚類較早的應用時發(fā)現客戶群,對客戶進行聚類,每個類之間的購買模式不同,針對不同客戶群,采取不同的措施。
聚類算法可以用來細化細分市場,用來分析消費者的消費特點,歸納出新的潛在市場。互聯網公司紛紛研究大數據和聚類分析,就是為了研究客戶的行為特點,提高用戶體驗。
聚類算法還可以進行動植物分類,基因工程的大幅度進展,也跟大數據技術,分類聚類技術有關,對基因進行分類和聚類,是當前研究的熱點。
聚類分析應用在保險領域,可以通過消費水平來對購買了汽車保險的人進行分組,或者根據住宅的類型,住宅的位置,住宅的價值等屬性,來對一個城市的房產所有人進行分組,針對不同的分組,推薦不同的保險措施。
聚類分析在Internet上廣泛用來文本歸類。
聚類分析在電子商務中也有更加廣泛的應用。數據挖掘通過用戶瀏覽網頁所產生的互動數據,如點擊,購買,加入購物車等行為,對客戶進行聚類分析。對不同類別的客戶,給以不同的推薦和激勵措施,極大的提高了用戶體驗,極大幫助了電子商務的發(fā)展。
數據挖掘是現如今廣泛研究的熱點課題,數據挖掘可以從大量的數據中挖掘有價值的數據,并制定用戶可以理解的模式。聚類分析做為數據挖掘的核心功能之一,本文對聚類分析做出了深入的分析,通過分析幾種聚類算法在數據挖掘中的應用,可以對大數據進行處理,并可以將其運用到各行各業(yè)當中。
[1]Margart H.Dunham,DATA MINING Introductory and Advanced Topics,北京:清華大學出版社,2011.
[2]郭軍華,數據挖掘中聚類分析的研究:[碩士學位論文],湖北:武漢理工大學,2012.