如何正確選擇聚類演算法?

2021-09-28 16:48:47 字數 2136 閱讀 7769

本文將介紹四種基本的聚類演算法—層次聚類、基於質心的聚類、最大期望演算法和基於密度的聚類演算法,並討論不同演算法的優缺點。

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

資料聚類是搭建乙個正確資料模型的重要步驟。資料分析應當根據資料的共同點整理資訊。然而主要問題是,什麼通用性引數可以給出最佳結果,以及什麼才能稱為「最佳」。

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

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

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

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

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

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

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

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

其次,該演算法找到資料集的每個物件與每個聚類中心之間的距離。最小座標距離(若使用圖形表示)確定了將物件移動到哪個群集。

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

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

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

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

具有雜訊的基於密度的聚類方法(dbscan)將逐步檢查每個物件,將其狀態更改為「已檢視」,將其劃分到具體的類別或雜訊中,直到最終處理整個資料集。用dbscan確定的簇可以具有任意形狀,因此非常精確。此外,該演算法無需人為地設定簇數 —— 演算法可以自動決定。

儘管如此,dbscan也有一些缺點。如果資料集由可變密度簇組成,則該方法的結果較差;如果物件的位置太近,並且無法輕易估算出ε引數,那麼這也不是乙個很好的選擇。

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

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

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

choosing the right clustering algorithm for your dataset

機器學習實戰 如何正確選擇聚類演算法?

聚類演算法十分容易上手,但是選擇恰當的聚類演算法並不是一件容易的事。資料聚類是搭建乙個正確資料模型的重要步驟。資料分析應當根據資料的共同點整理資訊。然而主要問題是,什麼通用性引數可以給出最佳結果,以及什麼才能稱為 最佳 本文適用於菜鳥資料科學家或想提公升聚類演算法能力的專家。下文包括最廣泛使用的聚類...

聚類演算法 近鄰聚類演算法

time is always too short for those who need it,but for those who love,it lasts forever.dracula untold 近鄰聚類法同樣是一種基於距離閾值的聚類演算法。coding utf 8 近鄰聚類演算法的pyth...

聚類演算法 層次聚類演算法

層次聚類演算法 hierarchical clustering method 又稱為系統聚類法 分級聚類法。層次聚類演算法又分為兩種形式 凝聚層次聚類 首先將每個物件作為乙個簇,然後合併這些原子簇為越來越大的簇,直到某個終結條件被滿足。層次聚類 首先將所有物件置於乙個簇中,然後逐漸細分為越來越小的簇...