
聚類分析中幾種算法的比較
將數(shù)據(jù)庫中的對象進(jìn)行聚類是聚類分析的基本操作,其準(zhǔn)則是使屬于同一類的個體間距離盡可能小,而不同類個體間距離盡可能大,為了找到效率高、通用性強(qiáng)的聚 類方法人們從不同角度提出了近百種聚類方法,典型的有K-means方法、K-medoids方法、CLARANS方法,BIRCH方法等,這些算法適用 于特定的問題及用戶。本文綜合提出了評價聚類算法好壞的5個標(biāo)準(zhǔn),基于這5個標(biāo)準(zhǔn),對數(shù)據(jù)挖掘中常用聚類方法作了比較分析,以便于人們更容易、更快捷地找 到一種適用于特定問題及用戶的聚類算法。
聚類算法研究及比較框架
聚類算法一般有五種方法,最主要的是劃分方法和層次方法兩種。劃分聚類算法通過優(yōu)化評價函數(shù)把數(shù)據(jù)集分割為K個部分,它需要K作為
輸人參數(shù)。典型的分割聚類算法有K-means算法,
K-medoids算法、CLARANS算法。層次聚類由不同層次的分割聚類組成,層次之間的分割具有嵌套的關(guān)系。它不需要輸入?yún)?shù),這是它優(yōu)于分割聚類
算法的一個明顯的優(yōu)點(diǎn),其缺點(diǎn)是終止條件必須具體指定。典型的分層聚類算法有BIRCH算法、DBSCAN算法和CURE算法等。
對各聚類算法的比較研究基于以下5個標(biāo)準(zhǔn):
?、?是否適用于大數(shù)據(jù)量,算法的效率是否滿足大數(shù)據(jù)量高復(fù)雜性的要求;
?、?是否能應(yīng)付不同的數(shù)據(jù)類型,能否處理符號屬性;
?、?是否能發(fā)現(xiàn)不同類型的聚類;
?、?是否能應(yīng)付臟數(shù)據(jù)或異常數(shù)據(jù);
?、?是否對數(shù)據(jù)的輸入順序不敏感。
下面將在該框架下對各聚類算法作分析比較。
數(shù)據(jù)挖掘常用聚類算法比較分析
3.1 K-pototypes算法
K-pototypes算法結(jié)合了K-means方法和根據(jù)K-means方法改進(jìn)的能夠處理符號屬性的K-modes方法,同K-means方法相比,K-pototypes 算法能夠處理符號屬性。
3.2 CLARANS算法(劃分方法)
CLARANS算法即隨機(jī)搜索聚類算法,是一種分割聚類方法。它首先隨機(jī)選擇一個點(diǎn)作為當(dāng)前點(diǎn),然后隨機(jī)檢查它周圍不超過參數(shù)Maxneighbor
個的一些鄰接點(diǎn),假如找到一個比它更好的鄰接點(diǎn),則把它移人該鄰接點(diǎn),否則把該點(diǎn)作為局部最小量。然后再隨機(jī)選擇一個點(diǎn)來尋找另一個局部最小量,直至所找
到的局部最小量數(shù)目達(dá)到用戶要求為止。該算法要求聚類的對象必須都預(yù)先調(diào)人內(nèi)存,并且需多次掃描數(shù)據(jù)集,這對大數(shù)據(jù)量而言,無論時間復(fù)雜度還是空間復(fù)雜度
都相當(dāng)大。雖通過引人R-樹結(jié)構(gòu)對其性能進(jìn)行改善,使之能夠處理基于磁盤的大型數(shù)據(jù)庫,但R*-樹的構(gòu)造和維護(hù)代價太大。該算法對臟數(shù)據(jù)和異常數(shù)據(jù)不敏
感,但對數(shù)據(jù)物人順序異常敏感,且只能處理凸形或球形邊界聚類。
3.3 BIRCH算法(層次方法)
BIRCH算法即平衡迭代削減聚類法,其核心是用一個聚類特征3元組表示一個簇的有關(guān)信息,從而使一簇點(diǎn)的表示可用對應(yīng)的聚類特征,而不必用具體的一
組點(diǎn)來表示。它通過構(gòu)造滿足分支因子和簇直徑限制的聚類特征樹來求聚類。BIRCH算法通過聚類特征可以方便地進(jìn)行中心、半徑、直徑及類內(nèi)、類間距離的運(yùn)
算。算法的聚類特征樹是一個具有兩個參數(shù)分枝因子B和類直徑T的高度平衡樹。分枝因子規(guī)定了樹的每個節(jié)點(diǎn)子女的最多個數(shù),而類直徑體現(xiàn)了對一類點(diǎn)的直徑大
小的限制即這些點(diǎn)在多大范圍內(nèi)可以聚為一類,非葉子結(jié)點(diǎn)為它的子女的最大關(guān)鍵字,可以根據(jù)這些關(guān)鍵字進(jìn)行插人索引,它總結(jié)了其子女的信息。
聚類特征樹可以動態(tài)構(gòu)造,因此不要求所有數(shù)據(jù)讀人內(nèi)存,而可以在外存上逐個讀人。新的數(shù)據(jù)項(xiàng)總是插人到樹中與該數(shù)據(jù)距離最近的葉子中。如果插人后使得
該葉子的直徑大于類直徑T,則把該葉子節(jié)點(diǎn)分裂。其它葉子結(jié)點(diǎn)也需要檢查是否超過分枝因子來判斷其分裂與否,直至該數(shù)據(jù)插入到葉子中,并且滿足不超過類直
徑,而每個非葉子節(jié)點(diǎn)的子女個數(shù)不大于分枝因子。算法還可以通過改變類直徑修改特征樹大小,控制其占內(nèi)存容量。
BIRCH算法通過一次掃描就可以進(jìn)行較好的聚類,由此可見,該算法適合于大數(shù)據(jù)量。對于給定的M兆內(nèi)存空間,其空間復(fù)雜度為O(M),時間間復(fù)雜度
為O(dNBlnB(M/P)).其中d為維數(shù),N為節(jié)點(diǎn)數(shù),P為內(nèi)存頁的大小,B為由P決定的分枝因子。I/O花費(fèi)與數(shù)據(jù)量成線性關(guān)系。BIRCH算法
只適用于類的分布呈凸形及球形的情況,并且由于BIRCH算法需提供正確的聚類個數(shù)和簇直徑限制,對不可視的高維數(shù)據(jù)不可行。
3.4 CURE算法(層次方法)
CURE算法即使用代表點(diǎn)的聚類方法。該算法先把每個數(shù)據(jù)點(diǎn)看成一類,然后合并距離最近的類直至類個數(shù)為所要求的個數(shù)為止。CURE算法將傳統(tǒng)對類的
表示方法進(jìn)行了改進(jìn),回避了用所有點(diǎn)或用中心和半徑來表示一個類,而是從每一個類中抽取固定數(shù)量、分布較好的點(diǎn)作為描述此類的代表點(diǎn),并將這些點(diǎn)乘以一個
適當(dāng)?shù)氖湛s因子,使它們更靠近類的中心點(diǎn)。將一個類用代表點(diǎn)表示,使得類的外延可以向非球形的形狀擴(kuò)展,從而可調(diào)整類的形狀以表達(dá)那些非球形的類。另外,
收縮因子的使用減小了嗓音對聚類的影響。CURE算法采用隨機(jī)抽樣與分割相結(jié)合的辦法來提高算法的空間和時間效率,并且在算法中用了堆和K-d樹結(jié)構(gòu)來提
高算法效率。
3.5 DBSCAN算法(基于密度的方法)
DBSCAN算法即基于密度的聚類算法。該算法利用類的密度連通性可以快速發(fā)現(xiàn)任意形狀的類。其基本思想是:對于一個類中的每個對象,在其給定半徑的
領(lǐng)域中包含的對象不能少于某一給定的最小數(shù)目。在DBSCAN算法中,發(fā)現(xiàn)一個類的過程是基于這樣的事實(shí):一個類能夠被其中的任意一個核心對象所確定。為
了發(fā)現(xiàn)一個類,DBSCAN先從對象集D中找到任意一對象P,并查找D中關(guān)于關(guān)徑Eps和最小對象數(shù)Minpts的從P密度可達(dá)的所有對象。如果P是核心
對象,即半徑為Eps的P的鄰域中包含的對象不少于Minpts,則根據(jù)算法,可以找到一個關(guān)于參數(shù)Eps和Minpts的類。如果P是一個邊界點(diǎn),則半
徑為Eps的P鄰域包含的對象少于Minpts,P被暫時標(biāo)注為噪聲點(diǎn)。然后,DBSCAN處理D中的下一個對象。
密度可達(dá)對象的獲取是通過不斷執(zhí)行區(qū)域查詢來實(shí)現(xiàn)的。一個區(qū)域查詢返回指定區(qū)域中的所有對象。為了有效地執(zhí)行區(qū)域查詢,DBSCAN算法使用了空間查
詢R-樹結(jié)構(gòu)。在進(jìn)行聚類前,必須建立針對所有數(shù)據(jù)的R*-樹。另外,DBSCAN要求用戶指定一個全局參數(shù)Eps(為了減少計(jì)算量,預(yù)先確定參數(shù)
Minpts)。為了確定取值,DBSCAN計(jì)算任意對象與它的第k個最臨近的對象之間的距離。然后,根據(jù)求得的距離由小到大排序,并繪出排序后的圖,稱
做k-dist圖。k-dist圖中的橫坐標(biāo)表示數(shù)據(jù)對象與它的第k個最近的對象間的距離;縱坐標(biāo)為對應(yīng)于某一k-dist距離值的數(shù)據(jù)對象的個數(shù)。
R*-樹的建立和k-dist圖的繪制非常消耗時間。此外,為了得到較好的聚類結(jié)果,用戶必須根據(jù)k-dist圖,通過試探選定一個比較合適的Eps值。
DBSCAN算法不進(jìn)行任何的預(yù)處理而直接對整個數(shù)據(jù)集進(jìn)行聚類操作。當(dāng)數(shù)據(jù)量非常大時,就必須有大內(nèi)存量支持,I/O消耗也非常大。其時間復(fù)雜度為
O(nlogn)(n為數(shù)據(jù)量),聚類過程的大部分時間用在區(qū)域查詢操作上。DBSCAN算法對參數(shù)Eps及Minpts非常敏感,且這兩個參數(shù)很難確定。
3.6 CLIQUE算法(綜合了基于密度和基于網(wǎng)格的算法)
CLIQUE算法即自動子空間聚類算法。該算法利用自頂向上方法求出各個子空間的聚類單元。CLUQUE算法主要用于找出在高維數(shù)據(jù)空間中存在的低維
聚類。為了求出d維空間聚類,必須組合給出所有d-1維子空間的聚類,導(dǎo)致其算法的空間和時間效率都較低,而且要求用戶輸入兩個參數(shù):數(shù)據(jù)取值空間等間隔
距離和密度闊值。這2個參數(shù)與樣木數(shù)據(jù)緊密相關(guān),用戶一般難以確定。CLIQUE算法對數(shù)據(jù)輸人順序不敏感。
4 總結(jié)
基于上述分析,我們得到各聚類算法的比較結(jié)果,結(jié)論如下:
算法 算法效率 適合的數(shù)據(jù)類型 發(fā)現(xiàn)的聚類類型 對臟數(shù)據(jù)或異常數(shù)據(jù)的敏感性 對數(shù)據(jù)輸入順序的敏感性
BIRCH 高 數(shù)值 凸形或球形 不敏感 不太敏感
DBSCAN 一般 數(shù)值 任意形狀 敏感 敏感
CURE 較高 數(shù)值 任意形狀 不敏感 不太敏感
K-poto 一般 數(shù)值和符號 凸形或球形 敏感 一般
CLARANS 較低 數(shù)值 凸形或球形 不敏感 非常敏感
CUQUE 較低 數(shù)值 凸形或球形 一般 不敏感
由于每個方法都有其特點(diǎn)和不同的適用領(lǐng)域,在數(shù)據(jù)挖掘中,用戶應(yīng)該根據(jù)實(shí)際需要選擇恰當(dāng)?shù)木垲愃惴ā?
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡稱 BI)深度融合的時代,BI ...
2025-07-10SQL 在預(yù)測分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢預(yù)判? ? 在數(shù)據(jù)驅(qū)動決策的時代,預(yù)測分析作為挖掘數(shù)據(jù)潛在價值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢性檢驗(yàn):捕捉數(shù)據(jù)背后的時間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢性檢驗(yàn)如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢變化以及識別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對策略? 長短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場調(diào)研是企業(yè)洞察市場動態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03