推薦 :如何正確選擇聚類算法?

2022-01-03 數據分析

作者:Josh Thompson 翻譯:張睿毅 校對:王雨桐

本文將介紹四種基本的聚類算法—層次聚類、基於質心的聚類、最大期望算法和基於密度的聚類算法,並討論不同算法的優缺點。聚類算法十分容易上手,但是選擇恰當的聚類算法並不是一件容易的事。數據聚類是搭建一個正確數據模型的重要步驟。數據分析應當根據數據的共同點整理信息。然而主要問題是,什麼通用性參數可以給出最佳結果,以及什麼才能稱為「最佳」。本文適用於菜鳥數據科學家或想提升聚類算法能力的專家。下文包括最廣泛使用的聚類算法及其概況。根據每種方法的特殊性,本文針對其應用提出了建議。聚類模型可以分為四種常見的算法類別。儘管零零散散的聚類算法不少於100種,但是其中大部分的流行程度以及應用領域相對有限。基於整個數據集對象間距離計算的聚類方法,稱為基於連通性的聚類(connectivity-based)或層次聚類。根據算法的「方向」,它可以組合或反過來分解信息——聚集和分解的名稱正是源於這種方向的區別。最流行和合理的類型是聚集型,你可以從輸入所有數據開始,然後將這些數據點組合成越來越大的簇,直到達到極限。層次聚類的一個典型案例是植物的分類。數據集的「樹」從具體物種開始,以一些植物王國結束,每個植物王國都由更小的簇組成(門、類、階等)。層次聚類算法將返回樹狀圖數據,該樹狀圖展示了信息的結構,而不是集群上的具體分類。這樣的特點既有好處,也有一些問題:算法會變得很複雜,且不適用於幾乎沒有層次的數據集。這種算法的性能也較差:由於存在大量的迭代,因此整個處理過程浪費了很多不必要的時間。最重要的是,這種分層算法並不能得到精確的結構。

同時,從預設的類別一直分解到所有的數據點,類別的個數不會對最終結果產生實質性影響,也不會影響預設的距離度量,該距離度量粗略測量和近似估計得到的。根據我的經驗,由於簡單易操作,基於質心的聚類(Centroid-based)是最常出現的模型。 該模型旨在將數據集的每個對象劃分為特定的類別。 簇數(k)是隨機選擇的,這可能是該方法的最大問題。 由於與k最近鄰居(kNN)相似,該k均值算法在機器學習中特別受歡迎。(附連結:https://www.kaggle.com/chavesfm/tuning-parameters-for-k-nearest-neighbors-iris)

計算過程包括多個步驟。首先,輸入數據集的目標類別數。聚類的中心應當儘可能分散,這有助於提高結果的準確性。其次,該算法找到數據集的每個對象與每個聚類中心之間的距離。最小坐標距離(若使用圖形表示)確定了將對象移動到哪個群集。之後,將根據類別中所有點的坐標平均值重新計算聚類的中心。重複算法的上一步,但是計算中要使用簇的新中心點。除非達到某些條件,否則此類迭代將繼續。例如,當簇的中心距上次迭代沒有移動或移動不明顯時,聚類將結束。儘管數學和代碼都很簡單,但k均值仍有一些缺點,因此我們無法在所有情景中使用它。缺點包括:

因為優先級設置在集群的中心,而不是邊界,所以每個集群的邊界容易被疏忽。

無法創建數據集結構,其對象可以按等量的方式分類到多個群集中。

需要猜測最佳類別數(k),或者需要進行初步計算以指定此量規。

相比之下,期望最大化算法可以避免那些複雜情況,同時提供更高的準確性。簡而言之,它計算每個數據集點與我們指定的所有聚類的關聯概率。用於該聚類模型的主要工具是高斯混合模型(GMM)–假設數據集的點服從高斯分布。(連結:https://www.encyclopedia.com/science-and-technology/mathematics/mathematics/normal-distribution#3)k-means算法可以算是EM原理的簡化版本。它們都需要手動輸入簇數,這是此類方法要面對的主要問題。除此之外,計算原理(對於GMM或k均值)很簡單:簇的近似範圍是在每次新迭代中逐漸更新的。與基於質心的模型不同,EM算法允許對兩個或多個聚類的點進行分類-它僅展示每個事件的可能性,你可以使用該事件進行進一步的分析。更重要的是,每個聚類的邊界組成了不同度量的橢球體。這與k均值聚類不同,k均值聚類方法用圓形表示。但是,該算法對於不服從高斯分布的數據集根本不起作用。這也是該方法的主要缺點:它更適用於理論問題,而不是實際的測量或觀察。最後,基於數據密度的聚類成為數據科學家心中的最愛。(連結:http://www.mastersindatascience.org/careers/data-scientist/)這個名字已經包括了模型的要點——將數據集劃分為聚類,計數器會輸入ε參數,即「鄰居」距離。因此,如果目標點位於半徑為ε的圓(球)內,則它屬於該集群。

具有噪聲的基於密度的聚類方法(DBSCAN)將逐步檢查每個對象,將其狀態更改為「已查看」,將其劃分到具體的類別或噪聲中,直到最終處理整個數據集。用DBSCAN確定的簇可以具有任意形狀,因此非常精確。此外,該算法無需人為地設定簇數 —— 算法可以自動決定。儘管如此,DBSCAN也有一些缺點。如果數據集由可變密度簇組成,則該方法的結果較差;如果對象的位置太近,並且無法輕易估算出ε參數,那麼這也不是一個很好的選擇。總而言之,我們並不能說選擇了錯誤的算法,只能說其中有些算法會更適合特定的數據集結構。為了採用最佳的(看起來更恰當的)算法,你需要全面了解它們的優缺點。例如,如果某些算法不符合數據集規範,則可以從一開始就將其排除在外。為避免繁瑣的工作,你可以花一些時間來記住這些信息,而無需反覆試驗並從自己的錯誤中學習。我們希望本文能幫助你在初始階段選擇最好的算法。繼續這了不起的工作吧!

原文標題:

Choosing the Right Clustering Algorithm for your Dataset

原文連結:

https://www.kdnuggets.com/2019/10/right-clustering-algorithm.html

譯者簡介:張睿毅,北京郵電大學大二物聯網在讀。我是一個愛自由的人。在郵電大學讀第一年書我就四處跑去蹭課,折騰整一年驚覺,與其在當下焦慮,不如在前輩中沉澱。

本文轉自: 數據派THU ;獲授權;

END

合作請加QQ:365242293  

數據分析(ID : ecshujufenxi )網際網路科技與數據圈自己的微信,也是WeMedia自媒體聯盟成員之一,WeMedia聯盟覆蓋5000萬人群。

相關焦點

  • 推薦系統算法初探
    經過推薦算法處理後,返回一個按照用戶喜好度排序的item列表。推薦算法大致可以分為以下幾類[1]:基於流行度的算法協同過濾算法基於內容的算法基於模型的算法混合算法2.1 基於流行度的算法基於流行度的算法非常簡單粗暴,類似於各大新聞、微博熱榜等,根據PV、UV、日均PV或分享率等數據來按某種熱度排序來推薦給用戶
  • 基於聚類的圖像分割-Python
    讓我們嘗試一種稱為基於聚類的圖像分割技術,它會幫助我們在一定程度上提高模型性能,讓我們看看它是什麼以及一些進行聚類分割的示例代碼。想像一下我們要過馬路,過馬路之前我們會做什麼?首先,我們會看道路兩旁,以確定接近的車輛等環境對象,然後我們會對接近的車輛的速度做出一些快速的估計,並決定何時以及如何過馬路。所有這些都發生在很短的時間內,非常很的神奇。
  • 推薦系統架構與算法流程詳解
    結果回傳中會返回推薦系統給用戶推薦的結果。推薦算法:算法按照一定的邏輯為用戶產生最終的推薦結果。不同的推薦算法基於不同的邏輯與數據運算過程。消息隊列:數據的上報與處理。根據用戶的 ID,拉取例如用戶的性別、之前的點擊、收藏等用戶信息。而用戶在 APP 中產生的新行為,例如新的點擊會儲存在存儲單元裡面。
  • 深度描述聚類——加州大學戴維斯分校計算機系博士生張洪境
    可解釋AI致力於提高複雜機器學習模型的可解釋性,尤其是深度學習相關的算法。本文工作主要關注深度聚類算法的可解釋性,假設我們使用深度聚類算法對下圖左邊的6個動物進行聚類生成A、B兩個簇(cluster),這裡就會有一個問題:如何描述和概括這兩個簇?
  • 聚類調整標準誤
    聚類調整標準誤的基本思想4. Stata 實操4.1 一維聚類調整4.2 二維聚類調整4.3 二維聚類調整邏輯分析5. FAQs6. 參考文獻溫馨提示: 文中連結在微信中無法生效。因此,正確地估計標準誤在實證分析的過程中顯得尤為重要。當幹擾項滿足「獨立同分布 (iid)」 條件時, OLS 所估計的標準誤是無偏的。但是當誤差項之間存在相關性時,OLS 所估計的標準誤是有偏的,不能很好地反映估計係數的真實變異性 (Petersen, 2009),故需要對標準誤進行調整。
  • 人工智慧算法|K均值聚類算法Python實現
    clusterDict.keys():        print(key, ' --> ', clusterDict[key])    print('k個均值向量: ',centroidList)    print('平均均方誤差: ',newVar)    print(showCluster(centroidList,clusterDict))  # 展示聚類結果
  • 推薦系統常用的推薦算法
    /(點擊尾部閱讀原文前往)《推薦系統算法初探》《推薦系統的典型推薦案例》《美團推薦算法實踐》《TOP 10開源的推薦系統簡介》《各廠推薦算法體會》《常用推薦算法》個人覺得這個指標有點扯~~(5)信任度:這個指標比較的主觀,就是讓用戶信任推薦系統做出的推薦是有根據有理由的,以及推薦系統內部是如何運作的。例如亞馬遜的商品推薦會給出推薦理由,作為用戶的我會覺得很貼心,否則用戶會覺得商家的利益驅動而帶有牴觸心理。
  • 一文梳理聯邦學習推薦系統研究進展
    並且最近國家網際網路信息辦公室開始公開徵求《網際網路信息服務算法推薦管理規定》的徵求意見,都說明了大家對於數據隱私與安全的重視程度,因此如何在為用戶提供高效的推薦服務的同時,能夠為用戶的數據以及隱私提供安全的保障成為了近年來的研究熱點。
  • 來Offer技術講解 | 最近鄰搜索算法
    假設查找點和最近鄰沒有被我們的LSH函數分到同一個空間下,那他們有很大的可能出現在相鄰的空間,哈希值可能只相差一點。就像上圖所表示那樣,一個哈希值是一串函數g的合併結果,在探測完查找點對應的哈希桶後引入一些擾動Delta,首先探索距離當前哈希桶相差一步的哈希桶,再去探索相差兩步的哈希桶。但是因為這樣的探測可能性是非常多的,最終你有可能探測每一個哈希桶。
  • 經典算法筆記:異常檢測和推薦系統
    代碼部分- 異常檢測和推薦系統在本練習中,我們將使用高斯模型實現異常檢測算法,並將其應用於檢測網絡上的故障伺服器。 我們還將看到如何使用協作過濾構建推薦系統,並將其應用於電影推薦數據集。Anomaly detection(異常檢測)我們的第一個任務是使用高斯模型來檢測數據集中未標記的示例是否應被視為異常。 我們有一個簡單的二維數據集開始,以幫助可視化該算法正在做什麼。
  • 推薦系統 Embedding 技術實踐總結
    分群,bnb 分群,增量聚類,動態規則聚類。該算法有提升顯著,已經鋪量使用。bnb 分群是借鑑 airbn(愛彼迎)公布的房源推薦算法,把文章的多個特徵的 embedding(tag,topic,cat)拼接成一個向量,類似得到文章的向量。剩下的步驟和簇召回類似,該算法有一定提升,不十分顯著。
  • 推薦系統之特徵構建
    數據就是信息,有信息算法才能發揮作用。garbage in, garbage out,什麼樣的信息輸入基本就決定了什麼樣的結果輸出。在推薦系統中,數據的質量基本決定了推薦效果的上限,而數據質量主要由特徵構建、數據清洗等過程決定。
  • 如何為電子系統選擇正確的風扇?
    最簡單的做法是,選擇一個風扇,驅動空氣強制對流換熱。要為一個電子系統選擇適當的風扇,需要進一步考慮各方面因素。以下內容,我們將回顧風扇的選擇和結構原理,還將使用一個案例來說明如何選擇正確的風扇類型,同時考慮一些額外的控制策略來提高風扇的性能和可靠性。
  • 推薦系統之Exploitation & Exploration
    但是推薦系統經常被詬病的問題是,總是推薦相似的信息,缺乏新意,容易造成審美疲勞,這也是很多用戶在使用相關APP一段時間後選擇離開的重要原因。如果系統裡面存在用戶感興趣的內容,但是卻沒有讓用戶方便地獲取到相應的信息,說明當前的推薦系統有問題。用戶越看什麼系統越推什麼,慢慢造成推薦的信息形式越來越窄,從而形成信息繭房,這是當前推薦系統普遍會遇到的問題。
  • YouTube 推薦算法原理
    近日,在谷歌刊登的一篇論文中,YouTube工程師詳細地分析了YouTube推薦算法的內部工作原理。
  • 【揭秘】美團如何用機器學習優化推薦系統算法
    兩個優化亮點是將候選集進行融合與引入重排序模型。在用戶意圖明確時,我們通常用搜尋引擎來解決網際網路時代的信息過載問題,但當用戶的意圖不明確或者很難用清晰的語義表達,搜尋引擎就無能為力。此時,藉助推薦系統通過用戶行為的分析理解其意圖,為其推送個性化的結果,便成為一種更好的選擇。
  • 乾貨|教你如何用Stata做二元選擇模型
    先確定二元選擇模型的類型,通常有Probit模型、Logit模型、Extreme模型等,前面兩種最常用。如果隨機誤差項服從標準正態分布,就用Probit模型;如果隨機誤差項服從邏輯分布,就用Logit模型。當然,事先也不知道隨機誤差項究竟服從何種分布,所以Probit模型和Logit模型任選一種即可,問題不是很大。二元選擇模型是非線性模型,所以參數估計要用最大似然估計法(MLE)。
  • 如何找到正確的超平面
    在機器學習中,支持向量機是在分類與回歸分析中分析數據的監督式學習模型與相關的學習算法。給定一組訓練實例,每個訓練實例被標記為屬於兩個類別中的一個或另一個,SVM訓練算法創建一個將新的實例分配給兩個類別之一的模型,使其成為非概率二元線性分類器。SVM模型是將實例表示為空間中的點,這樣映射就使得單獨類別的實例被儘可能寬的明顯的間隔分開。
  • 深度解析 youtube深度學習推薦算法
    國內很多知名的推薦系統也進入了深度模型推薦的階段,並借鑑了youtube的模型,獲得了不錯的收益。 youtube視頻推薦系統,擁有10億級用戶,以及用戶不斷上傳的新內容,在推薦過程中有如下挑戰    1. 規模大。 10億級用戶,百億級視頻內容。已經證明在小規模數據有效的算法在youtube大規模數據面前將很難work。高效的分布式學習算法和服務系統是一個主要問題。
  • 如何正確的選擇伺服器機櫃?
    下面我們就分析下如何正確的選擇伺服器機櫃,及注意事項。選擇伺服器機櫃的空間考量計劃並列出所有裝在機櫃內的設備和它們完整的測量數據:高、長、寬、重量。綜合這些設備的體積及空間佔用,將最終決定你將選擇多高的機櫃。顯然,高的機櫃能裝進更多的設備,而且更省地方。儘量利用機櫃的高度不是唯一的考慮,機櫃的後部也有很大的地方可以利用。這就是要測量機櫃深度的原因。