如何為數據集選擇正確的聚類算法?

2020-12-15 CDA數據分析師

作者 | CDA數據分析師

應用聚類算法比選擇最佳算法要容易得多。每種類型都有其優缺點,如果您要爭取一個整潔的集群結構,則必須加以考慮。數據聚類是安排正確的整個數據模型的重要步驟。為了進行分析,應根據共同點整理信息量。主要問題是,什麼通用性參數可以提供最佳結果,以及「最佳」定義中到底蘊含著什麼。

本文對於新手數據科學家或想刷新其在該主題上的記憶的專家應該是有用的。它包括最廣泛使用的聚類算法及其深入的綜述。根據每種方法的特殊性,提供了考慮其應用的建議。

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

根據聚類模型,可以區分四種常見的算法類別。一般而言,算法不少於100種,但是它們的流行程度以及應用領域都很適中。

分層聚類

基於整個數據集對象之間距離的計算,聚類稱為基於連通性或分層。根據算法的「方向」,它可以組合或反過來劃分信息數組- 聚集和分裂的名稱正是源於這種精確的變化。最為流行和合理的類型是聚集型,您可以從輸入數據點的數量開始,然後將這些數據點組合成越來越大的簇,直到達到極限。

基於連接的聚類的最突出示例是植物的分類。數據集的「樹」以特定物種開始,以一些植物王國結束,每個植物王國都由更小的簇組成(門,類,階等)。

應用基於連接性的算法之一後,您將收到樹狀圖數據,該樹狀圖向您展示了信息的結構,而不是集群上的不同分隔。這樣的功能可能既有好處,也有壞處:算法的複雜性可能變得過高或根本不適用於幾乎沒有層次的數據集。它還顯示出較差的性能:由於存在大量的迭代,因此完整的處理將花費不合理的時間。最重要的是,使用分層算法不會獲得精確的結構。

同時,從計數器要求的輸入數據下降到數據點的數量,該點不會對最終結果產生實質性影響,也不會影響預設的距離度量,該距離度量也可以進行粗略測量和近似計算。

KMeans聚類

根據我的經驗,基於質心的聚類由於其比較簡單而成為最常出現的模型。該模型旨在將數據集的每個對象分類為特定的聚類。簇數( k)是隨機選擇的,這可能是該方法最大的「弱點」。由於與 k近鄰(kNN)相似,該 k均值算法在機器學習中特別受歡迎。

計算過程包括多個步驟。首先,選擇輸入數據,這是應將數據集劃分為的大致聚類數。聚類的中心應放置在儘可能遠的位置,這將提高結果的準確性。其次,該算法找到數據集的每個對象與每個聚類之間的距離。最小坐標(如果我們在談論圖形表示)確定了將對象移動到哪個群集。之後,將根據所有對象坐標的平均值重新計算聚類的中心。重複算法的第一步,但是重新計算了簇的新中心。除非達到某些條件,否則此類迭代將繼續。例如,當集群的中心距上一次迭代沒有移動或移動不明顯時,該算法可能會結束。

儘管數學和編碼都很簡單,但k-means仍然存在一些缺點,因此我無法在所有可能的情況下使用它。那包括:

每個集群的疏忽之處,因為優先級設置在集群的中心,而不是邊界;無法創建一個數據集結構,該結構的對象可以按等量的方式分類到多個群集中;需要猜測最佳k數,或者需要進行初步計算以指定此量規。同時,期望最大化算法可以避免那些複雜情況,同時提供更高的準確性。簡而言之,它計算每個數據集點與我們指定的所有聚類的關聯概率。用於該聚類模型的主要「工具」是高斯混合模型(GMM) –假設數據集的點通常遵循高斯分布。

EM算法

k-means算法基本上是EM原理的簡化版本。它們都需要人工輸入簇數,這是方法所要面對的主要難題。除此之外,計算原理(對於GMM或k均值)很簡單:簇的近似範圍是在每次新迭代中逐漸指定的。

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

DBSCAN

最後,基於密度的聚類,名稱包括模型的要點–將數據集劃分為聚類,計數器會輸入ε參數,即「鄰居」距離。因此,如果對象位於ε半徑的圓(球)內,則它與群集有關。

DBSCAN(帶有噪聲的基於應用程式的基於密度的空間聚類)算法將逐步檢查每個對象,將其狀態更改為「已查看」,將其分類為OR聚類,直到最終處理整個數據集。用DBSCAN確定的簇可以具有任意形狀,因此非常精確。此外,該算法不會讓您計算聚類數-它是自動確定的。

儘管如此,即使像DBSCAN這樣的傑作也有缺點。如果數據集由可變密度簇組成,則該方法顯示的結果較差。如果對象的放置位置太近,並且無法輕鬆估算ε參數,也可能不是您的選擇。

總結起來,沒有錯誤選擇算法之類的東西-其中有些更適合特定的數據集結構。為了始終採用最佳(更適合)算法,您需要全面了解它們的優缺點。

例如,如果某些算法不符合數據集規範,則可以從一開始就將其排除在外。為避免繁瑣的工作,您可以花一些時間來記住信息,而不是選擇反覆試驗的路徑並從自己的錯誤中學習。

我們希望您一開始總是選擇最好的算法。繼續這了不起的工作吧!

相關焦點

  • 如何正確選擇聚類算法?|CSDN博文精選
    作者 | Josh Thompson翻譯 | 張睿毅校對 | 王雨桐本文將介紹四種基本的聚類算法—層次聚類、基於質心的聚類、最大期望算法和基於密度的聚類算法,並討論不同算法的優缺點。聚類算法十分容易上手,但是選擇恰當的聚類算法並不是一件容易的事。數據聚類是搭建一個正確數據模型的重要步驟。
  • 一種面向高維數據的集成聚類算法
    該方法針對高維數據的特點,先用分層抽樣的方法結合信息增益對每個特徵簇選擇合適數量比較重要的特徵的生成新的具代表意義的數據子集,然後用基於連結的方法[1]對數據子集上生成的聚類結果進行集成.最後在文本、圖像、基因數據集上進行實驗,結果表明,與集成前的K均值聚類算法及基於連結的聚類集成算法相比,該方法能有效的改善聚類結果。
  • 如何選擇正確的機器學習算法
    如果模型的輸出是一組輸入組,則是一個聚類問題。2 - 了解數據在為正確的問題選擇正確的算法的過程中,數據的理解過程起著關鍵的作用。一些算法可以處理較小的樣本集,而另一些算法則需要大量的樣本。某些算法處理分類數據,而另一些算法則喜歡處理數值輸入。
  • 聚類之EM算法
    定義:在統計計算中,最大期望(EM)算法是在概率模型中(E步)尋找參數最大似然估計或者最大後驗估計(M步)的算法,其中概率模型依賴於無法觀測的隱藏變量(LatentVariable),聚類應用中就是隱藏的類別。
  • 機器學習聚類算法綜述
    這些核心對象的ϵ-鄰域裡所有的樣本的集合組成的一個DBSCAN聚類簇。那麼怎麼才能找到這樣的簇樣本集合呢?DBSCAN使用的方法很簡單,它任意選擇一個沒有類別的核心對象作為種子,然後找到所有這個核心對象能夠密度可達的樣本集合,即為一個聚類簇。接著繼續選擇另一個沒有類別的核心對象去尋找密度可達的樣本集合,這樣就得到另一個聚類簇。
  • 數據科學中必須熟知的5種聚類算法
    在給定的數據集中,我們可以通過聚類算法將其分成一些不同的組。在理論上,相同的組的數據之間有相同的屬性或者是特徵,不同組數據之間的屬性或者特徵相差就會比較大。聚類算法是一種非監督學習算法,並且作為一種常用的數據分析算法在很多領域上得到應用。在數據科學領域,我們利用聚類分析,通過將數據分組可以比較清晰的獲取到數據信息。
  • DBSCAN聚類算法原理總結
    DBSCAN算法實戰5  DBSCAN算法的優缺點DBSCAN算法處理後的聚類樣本點分為:核心點(core points),邊界點(border points)和噪聲點(noise),這三類樣本點的定義如下:核心點:對某一數據集D,若樣本p的
  • 有了K均值聚類,為什麼還需要DBSCAN聚類算法?
    所有聚類法都使用相同的方法,即首先計算相似度,然後使用相似度將數據點聚類為組或群。本文將重點介紹具有噪聲的基於密度的聚類方法(DBSCAN)。既然已經有了K均值聚類,為什麼還需要DBSCAN這樣的基於密度的聚類算法呢?K均值聚類可以將鬆散相關的觀測聚類在一起。
  • 無監督機器學習中,最常見的聚類算法有哪些?
    通過聚合具有相似屬性的變量來簡化數據集。總之,主要目標是研究數據的內在(和通常隱藏)的結構。這種技術可以濃縮為無監督學習試圖解決的兩種主要類型的問題。聚類分析在基本術語中,聚類的目的是在數據中的元素內找到不同的組。為此,聚類算法在數據中找到結構,以使相同聚類(或組)的元素彼此比來自不同聚類的元素更相似。以可視方式想像一下,我們有一個電影數據集,並希望對它們進行分類。
  • 機器學習算法實踐 K均值聚類的實用技巧
    在本文中,他詳細介紹了一種稱為 K-Means Clustering(k均值聚類)的算法,其中包括如何衡量算法效果,以及如何確定你需要生成的數據段集數量。雷鋒網編譯整理,更多AI開發技術文章,關注AI研習社(微信號:okweiwu)。Bilal Mahmood:我們最常做的分析之一,便是在數據中提取模式。 比方說,某公司的客戶可被劃分入哪些細分市場?
  • 聚類算法中的若干挑戰問題
    在朋友圈形成過程的性格、觀點、愛好都可視為提取的特徵。特徵是對樣本的本質的抽象,用來度量兩個樣本的相似程度。聚類過程根據相似性度量對樣本進行劃分。結果評估估計聚類結果的好壞程度。在一些實際應用中還需要對聚類結果進行解釋,以發現新的知識。經典的聚類算法有層次化聚類、劃分式聚類、基於密度的聚類、基於圖的聚類、基於網格的聚類、基於模型的聚類等。
  • 深度剖析:數據科學家需懂的5種聚類算法
    首先,你必須選擇有多少組,這並不總是微不足道的,理想情況下,我們希望它使用一個聚類算法來幫助我們,因為它的目的是從數據中獲得一些見解。 K-means也從隨機選擇的聚類中心開始,因此可能在算法的不同運行中產生不同的聚類結果。因此,結果可能不可重複,並且缺乏一致性。其他的集群方法更一致。
  • 二十三、聚類算法介紹
    聚類算法聚類:數據對象的集合在同一個聚類中的對象彼此相似不同聚類中的對象則差別較大聚類分析將物理或抽象對象的集合分組成為由類似的對象組成的多個類的過程圖像處理商務應用中,幫市場分析人員發現不同的顧客群對WEB日誌的數據進行聚類,以發現相同的用戶訪問模式常見的聚類算法基於劃分的方法:
  • python之kmeans數據聚類算法
    一 Kmeans原理kmeans是屬於無監督學習的數據聚類算法,根據點與點之間的距離推測每個點屬於哪個中心,常用計算距離的方式有:餘弦距離、歐式距離、曼哈頓距離等,本文以歐式距離為例。圖2假設1點的數據為:A中心數據為:歐式公式計算為:
  • 數據科學家們必須知道的5種聚類算法
    這並不能忽略,理想情況下,我們希望它使用聚類算法來幫助我們理解這些數據,因為它的重點在於從數據中獲得一些有價值的發現。由於K-means算法選擇的聚類中心是隨機的(即初始化是隨機的),因此它可能會因為類數不同而運行算法中產生不同的聚類結果。因此,結果可能不可重複且缺乏一致性。相反,其他集群方法更一致。
  • 機器學習算法實踐之K均值聚類的實用技巧
    編者按:本文作者為美國數據分析專家 Bilal Mahmood,他是用戶數據分析平臺 Bolt 的創始人之一。在本文中,他詳細介紹了一種稱為 K-Means Clustering(k均值聚類)的算法,其中包括如何衡量算法效果,以及如何確定你需要生成的數據段集數量。雷鋒網編譯整理,更多AI開發技術文章,關注AI研習社(微信號:okweiwu)。
  • k-means聚類算法原理總結
    k-means聚類算法步驟實質是EM算法的模型優化過程,具體步驟如下:1)隨機選擇k個樣本作為初始簇類的均值向量;2)將每個樣本數據集劃分離它距離最近的簇;3)根據每個樣本所屬的簇,更新簇類的均值向量;4)重複(2)(3)步,當達到設置的迭代次數或簇類的均值向量不再改變時,模型構建完成,輸出聚類算法結果。
  • 機器學習十大經典算法之K-Means聚類算法
    聚類也能用於對Web上的文檔進行分類,以發現信息。諸如此類,聚類有著廣泛的實際應用。K-Means聚類算法簡介K-Means是發現給定數據集的 K 個簇的聚類算法, 之所以稱之為 K-均值是因為它可以發現 K 個不同的簇, 且每個簇的中心採用簇中所含值的均值計算而成。簇個數 K 是用戶指定的, 每一個簇通過其質心(centroid), 即簇中所有點的中心來描述。
  • 如何使用K-MEANS聚類算法解決分類問題
    算法是很典型的基於距離的聚類算法,採用距離作為相似性的評價指標,即認為兩個對象的距離越近,其相似度就越大。該對於聚類問題,我們事先並不知道給定的一個訓練數據集到底具有哪些類別的標籤,只是先行設定分類類別的數量,然後通過K-means算法將具有相同特徵或者相似特徵的數據樣本聚集到一起,形成分組。之後,我們可以根據每一組的數據的特點,給定一個相應的類標籤。要了解K-MEANS算法,先要了解兩個概念,第一是質心,第二是距離。
  • 聚類算法簡析(一):樸素貝葉斯算法的場景案例
    本文作者通過一些場景案例,帶領大家了解一下樸素貝葉斯算法作為聚類算法中的一員,如何來區分各類數組。通過一組參數模型來區分互斥群組中的個體十分常見,我們可以使用樸素貝葉斯分析來應用於這種場景,取決於模型的相似矩陣算法常常運用在估算決策論框架的矩陣中。