作者 | CDA數據分析師
應用聚類算法比選擇最佳算法要容易得多。每種類型都有其優缺點,如果您要爭取一個整潔的集群結構,則必須加以考慮。數據聚類是安排正確的整個數據模型的重要步驟。為了進行分析,應根據共同點整理信息量。主要問題是,什麼通用性參數可以提供最佳結果,以及「最佳」定義中到底蘊含著什麼。
本文對於新手數據科學家或想刷新其在該主題上的記憶的專家應該是有用的。它包括最廣泛使用的聚類算法及其深入的綜述。根據每種方法的特殊性,提供了考慮其應用的建議。
四種基本算法以及如何選擇一種
根據聚類模型,可以區分四種常見的算法類別。一般而言,算法不少於100種,但是它們的流行程度以及應用領域都很適中。
分層聚類
基於整個數據集對象之間距離的計算,聚類稱為基於連通性或分層。根據算法的「方向」,它可以組合或反過來劃分信息數組- 聚集和分裂的名稱正是源於這種精確的變化。最為流行和合理的類型是聚集型,您可以從輸入數據點的數量開始,然後將這些數據點組合成越來越大的簇,直到達到極限。
基於連接的聚類的最突出示例是植物的分類。數據集的「樹」以特定物種開始,以一些植物王國結束,每個植物王國都由更小的簇組成(門,類,階等)。
應用基於連接性的算法之一後,您將收到樹狀圖數據,該樹狀圖向您展示了信息的結構,而不是集群上的不同分隔。這樣的功能可能既有好處,也有壞處:算法的複雜性可能變得過高或根本不適用於幾乎沒有層次的數據集。它還顯示出較差的性能:由於存在大量的疊代,因此完整的處理將花費不合理的時間。最重要的是,使用分層算法不會獲得精確的結構。
同時,從計數器要求的輸入數據下降到數據點的數量,該點不會對最終結果產生實質性影響,也不會影響預設的距離度量,該距離度量也可以進行粗略測量和近似計算。
KMeans聚類
根據我的經驗,基於質心的聚類由於其比較簡單而成為最常出現的模型。該模型旨在將數據集的每個對象分類為特定的聚類。簇數( k)是隨機選擇的,這可能是該方法最大的「弱點」。由於與 k近鄰(kNN)相似,該 k均值算法在機器學習中特別受歡迎。
計算過程包括多個步驟。首先,選擇輸入數據,這是應將數據集劃分為的大致聚類數。聚類的中心應放置在儘可能遠的位置,這將提高結果的準確性。其次,該算法找到數據集的每個對象與每個聚類之間的距離。最小坐標(如果我們在談論圖形表示)確定了將對象移動到哪個群集。之後,將根據所有對象坐標的平均值重新計算聚類的中心。重複算法的第一步,但是重新計算了簇的新中心。除非達到某些條件,否則此類疊代將繼續。例如,當集群的中心距上一次疊代沒有移動或移動不明顯時,該算法可能會結束。
儘管數學和編碼都很簡單,但k-means仍然存在一些缺點,因此我無法在所有可能的情況下使用它。那包括:
同時,期望最大化算法可以避免那些複雜情況,同時提供更高的準確性。簡而言之,它計算每個數據集點與我們指定的所有聚類的關聯機率。用於該聚類模型的主要「工具」是高斯混合模型(GMM) –假設數據集的點通常遵循高斯分布。
EM算法
k-means算法基本上是EM原理的簡化版本。它們都需要人工輸入簇數,這是方法所要面對的主要難題。除此之外,計算原理(對於GMM或k均值)很簡單:簇的近似範圍是在每次新疊代中逐漸指定的。
與基於質心的模型不同,EM算法允許對兩個或多個聚類的點進行分類-它僅向您展示每個事件的可能性,您可以使用該事件進行進一步的分析。更重要的是,每個聚類的邊界組成了不同度量的橢球體,這與k均值不同,在k均值中,聚類在視覺上表示為圓形。但是,該算法對於對象不遵循高斯分布的數據集根本不起作用。這是該方法的主要缺點:它更適用於理論問題,而不是實際的測量或觀察。
DBSCAN
最後,基於密度的聚類,名稱包括模型的要點–將數據集劃分為聚類,計數器會輸入ε參數,即「鄰居」距離。因此,如果對象位於ε半徑的圓(球)內,則它與群集有關。
DBSCAN(帶有噪聲的基於應用程式的基於密度的空間聚類)算法將逐步檢查每個對象,將其狀態更改為「已查看」,將其分類為OR聚類,直到最終處理整個數據集。用DBSCAN確定的簇可以具有任意形狀,因此非常精確。此外,該算法不會讓您計算聚類數-它是自動確定的。
儘管如此,即使像DBSCAN這樣的傑作也有缺點。如果數據集由可變密度簇組成,則該方法顯示的結果較差。如果對象的放置位置太近,並且無法輕鬆估算ε參數,也可能不是您的選擇。
總結起來,沒有錯誤選擇算法之類的東西-其中有些更適合特定的數據集結構。為了始終採用最佳(更適合)算法,您需要全面了解它們的優缺點。
例如,如果某些算法不符合數據集規範,則可以從一開始就將其排除在外。為避免繁瑣的工作,您可以花一些時間來記住信息,而不是選擇反覆試驗的路徑並從自己的錯誤中學習。
我們希望您一開始總是選擇最好的算法。繼續這了不起的工作吧!
掃碼進入CDA官方小程序,解鎖更多新鮮資訊和優質內容,還有免費試聽課程,不要錯過喲!