熱線電話:13121318867

登錄
首頁精彩閱讀如何正確選擇聚類算法?
如何正確選擇聚類算法?
2019-11-26
收藏
如何正確選擇聚類算法?

作者 | Josh Thompson

來源 | 數據派THU

Choosing the Right Clustering Algorithm for your Dataset - KDnuggets

聚類算法十分容易上手,但是選擇恰當的聚類算法并不是一件容易的事。

數據聚類是搭建一個正確數據模型的重要步驟。數據分析應當根據數據的共同點整理信息。然而主要問題是,什么通用性參數可以給出最佳結果,以及什么才能稱為“最佳”。

本文適用于菜鳥數據科學家或想提升聚類算法能力的專家。下文包括最廣泛使用的聚類算法及其概況。根據每種方法的特殊性,本文針對其應用提出了建議。

四種基本算法以及如何選擇

聚類模型可以分為四種常見的算法類別。盡管零零散散的聚類算法不少于100種,但是其中大部分的流行程度以及應用領域相對有限。

基于整個數據集對象間距離計算的聚類方法,稱為基于連通性的聚類(connectivity-based)或層次聚類。根據算法的“方向”,它可以組合或反過來分解信息——聚集和分解的名稱正是源于這種方向的區別。最流行和合理的類型是聚集型,你可以從輸入所有數據開始,然后將這些數據點組合成越來越大的簇,直到達到極限。

層次聚類的一個典型案例是植物的分類。數據集的“樹”從具體物種開始,以一些植物王國結束,每個植物王國都由更小的簇組成(門、類、階等)。

層次聚類算法將返回樹狀圖數據,該樹狀圖展示了信息的結構,而不是集群上的具體分類。這樣的特點既有好處,也有一些問題:算法會變得很復雜,且不適用于幾乎沒有層次的數據集。這種算法的性能也較差:由于存在大量的迭代,因此整個處理過程浪費了很多不必要的時間。最重要的是,這種分層算法并不能得到精確的結構。

如何正確選擇聚類算法?

同時,從預設的類別一直分解到所有的數據點,類別的個數不會對最終結果產生實質性影響,也不會影響預設的距離度量,該距離度量粗略測量和近似估計得到的。

根據我的經驗,由于簡單易操作,基于質心的聚類(Centroid-based)是最常出現的模型。 該模型旨在將數據集的每個對象劃分為特定的類別。 簇數(k)是隨機選擇的,這可能是該方法的最大問題。 由于與k最近鄰居(kNN)相似,該k均值算法在機器學習中特別受歡迎。

如何正確選擇聚類算法?

計算過程包括多個步驟。首先,輸入數據集的目標類別數。聚類的中心應當盡可能分散,這有助于提高結果的準確性。

其次,該算法找到數據集的每個對象與每個聚類中心之間的距離。最小坐標距離(若使用圖形表示)確定了將對象移動到哪個群集。

之后,將根據類別中所有點的坐標平均值重新計算聚類的中心。重復算法的上一步,但是計算中要使用簇的新中心點。除非達到某些條件,否則此類迭代將繼續。例如,當簇的中心距上次迭代沒有移動或移動不明顯時,聚類將結束。

盡管數學和代碼都很簡單,但k均值仍有一些缺點,因此我們無法在所有情景中使用它。缺點包括:

  • 因為優先級設置在集群的中心,而不是邊界,所以每個集群的邊界容易被疏忽。
  • 無法創建數據集結構,其對象可以按等量的方式分類到多個群集中。
  • 需要猜測最佳類別數(k),或者需要進行初步計算以指定此量規。

相比之下,期望最大化算法可以避免那些復雜情況,同時提供更高的準確性。簡而言之,它計算每個數據集點與我們指定的所有聚類的關聯概率。用于該聚類模型的主要工具是高斯混合模型(GMM)–假設數據集的點服從高斯分布。

k-means算法可以算是EM原理的簡化版本。它們都需要手動輸入簇數,這是此類方法要面對的主要問題。除此之外,計算原理(對于GMM或k均值)很簡單:簇的近似范圍是在每次新迭代中逐漸更新的。

與基于質心的模型不同,EM算法允許對兩個或多個聚類的點進行分類-它僅展示每個事件的可能性,你可以使用該事件進行進一步的分析。更重要的是,每個聚類的邊界組成了不同度量的橢球體。這與k均值聚類不同,k均值聚類方法用圓形表示。但是,該算法對于不服從高斯分布的數據集根本不起作用。這也是該方法的主要缺點:它更適用于理論問題,而不是實際的測量或觀察。

最后,基于數據密度的聚類成為數據科學家心中的最愛。

這個名字已經包括了模型的要點——將數據集劃分為聚類,計數器會輸入ε參數,即“鄰居”距離。因此,如果目標點位于半徑為ε的圓(球)內,則它屬于該集群。

如何正確選擇聚類算法?

具有噪聲的基于密度的聚類方法(DBSCAN)將逐步檢查每個對象,將其狀態更改為“已查看”,將其劃分到具體的類別或噪聲中,直到最終處理整個數據集。用DBSCAN確定的簇可以具有任意形狀,因此非常精確。此外,該算法無需人為地設定簇數 —— 算法可以自動決定。

盡管如此,DBSCAN也有一些缺點。如果數據集由可變密度簇組成,則該方法的結果較差;如果對象的位置太近,并且無法輕易估算出ε參數,那么這也不是一個很好的選擇。

總而言之,我們并不能說選擇了錯誤的算法,只能說其中有些算法會更適合特定的數據集結構。為了采用最佳的(看起來更恰當的)算法,你需要全面了解它們的優缺點。

例如,如果某些算法不符合數據集規范,則可以從一開始就將其排除在外。為避免繁瑣的工作,你可以花一些時間來記住這些信息,而無需反復試驗并從自己的錯誤中學習。

我們希望本文能幫助你在初始階段選擇最好的算法。繼續這了不起的工作吧!

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢