機器學習之無監督學習:九大聚類算法

今天,和大家分享一下機器學習之無監督學習中的常見的聚類方法。

今天,和大家分享一下機器學習之無監督學習中的常見的聚類方法。

在無監督學習中,我們的數據并不帶有任何標簽,因此在無監督學習中要做的就是將這一系列無標簽的數據輸入到算法中,然后讓算法找到一些隱含在數據中的結構,通過下圖中的數據,可以找到的一個結構就是數據集中的點可以分成兩組分開的點集(簇),能夠圈出這些簇(cluster)的算法,就叫做聚類算法(clustering algorithm)。

聚類算法的應用

  • 市場分割:將數據庫中客戶的信息根據市場進行不同的分組,從而實現對其分別銷售或者根據不同的市場進行服務改進。
  • 社交網絡分析:通過郵件最頻繁聯系的人及其最頻繁聯系的人來找到一個關系密切的群體。
  • 組織計算機集群:在數據中心里,計算機集群經常一起協同工作,可以用它來重新組織資源、重新布局網絡、優化數據中心以及通信數據。
  • 了解銀河系的構成:利用這些信息來了解一些天文學的知識。

聚類分析的目標是將觀測值劃分為組(“簇”),以便分配到同一簇的觀測值之間的成對差異往往小于不同簇中的觀測值之間的差異。聚類算法分為三種不同的類型:組合算法、混合建模和模式搜索。

常見的幾種聚類算法有:
  • K-Means Clustering
  • Hierarchical Clustering
  • Agglomerative Clustering
  • Affinity Propagation
  • Mean Shift Clustering
  • Bisecting K-Means
  • DBSCAN
  • OPTICS
  • BIRCH

K-means

K-means 算法是目前最流行的聚類方法之一。

K-means 是由貝爾實驗室的 Stuart Lloyd 在 1957 年提出來的,最開始是用于脈沖編碼調制,直到 1982 年才將該算法對外公布。1965 年,Edward W.Forgy 發布了相同的算法,因此 K-Means 有時被稱為 Lloyd-Forgy。

在聚類問題中,我們會給定一組未加標簽的數據集,同時希望有一個算法能夠自動地將這些數據分成有緊密關系的的(coherent)子集(subsets) 或是簇(clusters)。K 均值(K-means)算法是現在最熱門最為廣泛運用的聚類算法。

直觀理解 K 均值算法:

假如有一個無標簽的數據集(上圖左),并且我們想要將其分為兩個簇,現在執行 K 均值算法,具體操作如下:

  • 第一步,隨機生成兩個點(因為想要將數據聚成兩類)(上圖右),這兩個點叫做聚類中心(cluster centroids)。
  • 第二步,進行 K 均值算法的內循環。K 均值算法是一個迭代算法,它會做兩件事情,第一個是簇分配(cluster assignment),第二個是移動聚類中心(move centroid)。

內循環的第一步是要進行簇分配,也就是說,遍歷每一個樣本,再根據每一個點到聚類中心距離的遠近將其分配給不同的聚類中心(離誰近分配給誰),對于本例而言,就是遍歷數據集,將每個點染成紅色或藍色。

內循環的第二步是移動聚類中心,將紅色和藍色的聚類中心移動到各自點的均值處(每組點的平均位置)。

接著就是將所有的點根據與新的聚類中心距離的遠近進行新的簇分配,如此循環,直至聚類中心的位置不再隨著迭代而改變,并且點的顏色也不再發生改變,此時可以說 K 均值已經聚合了。該算法在找出數據中兩個簇的方面做的相當好。

K-Means算法的優點:

簡單易懂,計算速度較快,適用于大規模數據集。

缺點:
  • 例如對于非球形簇的處理能力較差,容易受到初始簇心的選擇影響,需要預先指定簇的數量K等。
  • 此外,當數據點之間存在噪聲或者離群點時,K-Means算法可能會將它們分配到錯誤的簇中。

Hierarchical Clustering

層次聚類(Hierarchical Clustering)顧名思義就是按照某個層次對樣本集進行聚類操作,這里的層次實際上指的就是某種距離定義。

層次聚類最終的目的是消減類別的數量,所以在行為上類似于樹狀圖由葉節點逐步向根節點靠近的過程,這種行為過程又被稱為“自底向上”。

更通俗的,層次聚類是將初始化的多個類簇看做樹節點,每一步迭代,都是將兩兩相近的類簇合并成一個新的大類簇,如此反復,直至最終只剩一個類簇(根節點)。

層次聚類策略分為兩種基本范式:聚集型(自下而上)和分裂型(自上而下)。

與層次聚類相反的是分裂聚類(divisive clustering),又名 DIANA(Divise Analysis),它的行為過程為“自頂向下”。

應用 K-means 的結果取決于要搜索的聚類數量的選擇和起始配置分配。相反,層次聚類方法不需要這樣的規范。相反,它們要求用戶根據兩組觀察值之間的成對差異性,指定(不相交)觀察組之間的差異性度量。顧名思義,它們產生層次結構表示,其中層次結構每個級別的集群都是通過合并下一個較低級別的集群來創建的。在最低級別,每個集群包含一個觀察值。在最高級別,只有一個集群包含所有數據。

優點:
  • 距離和規則的相似度容易定義,限制少;
  • 不需要預先制定聚類數;
  • 可以發現類的層次關系;
  • 可以聚類成其它形狀。
缺點:
  • 計算復雜度太高;
  • 奇異值也能產生很大影響;
  • 算法很可能聚類成鏈狀。

Agglomerative Clustering

凝聚層次聚類(Agglomerative Clustering)是一種自底向上的聚類算法,它將每個數據點視為一個初始簇,并將它們逐步合并成更大的簇,直到達到停止條件為止。在該算法中,每個數據點最初被視為一個單獨的簇,然后逐步合并簇,直到所有數據點被合并為一個大簇。

優點:
  • 適用于不同形狀和大小的簇,且不需要事先指定聚類數目。
  • 該算法也可以輸出聚類層次結構,便于分析和可視化。
缺點:
  • 計算復雜度較高,尤其是在處理大規模數據集時,需要消耗大量的計算資源和存儲空間。
  • 該算法對初始簇的選擇也比較敏感,可能會導致不同的聚類結果。

Affinity Propagation

Affinity Propagation(AP)算法,通常被翻譯為近鄰傳播算法或者親和力傳播算法,

Affinity Propagation 是一種基于圖論的聚類算法,旨在識別數據中的"exemplars"(代表點)和"clusters"(簇)。與 K-Means 等傳統聚類算法不同,Affinity Propagation 不需要事先指定聚類數目,也不需要隨機初始化簇心,而是通過計算數據點之間的相似性得出最終的聚類結果。

優點:
  • 不需要制定最終聚類族的個數
  • 已有的數據點作為最終的聚類中心,而不是新生成一個簇中心。
  • 模型對數據的初始值不敏感。
  • 對初始相似度矩陣數據的對稱性沒有要求。
  • 相比與 k-centers 聚類方法,其結果的平方差誤差較小。
缺點:
  • 該算法的計算復雜度較高,需要大量的存儲空間和計算資源;
  • 對于噪聲點和離群點的處理能力較弱。

Mean Shift Clustering

Mean Shift Clustering 是一種基于密度的非參數聚類算法,其基本思想是通過尋找數據點密度最大的位置(稱為"局部最大值"或"高峰"),來識別數據中的簇。算法的核心是通過對每個數據點進行局部密度估計,并將密度估計的結果用于計算數據點移動的方向和距離。算法的核心是通過對每個數據點進行局部密度估計,并將密度估計的結果用于計算數據點移動的方向和距離。

優點:
  • 不需要指定簇的數目,且對于形狀復雜的簇也有很好的效果。
  • 算法還能夠有效地處理噪聲數據。
缺點:
  • 計算復雜度較高,尤其是在處理大規模數據集時,需要消耗大量的計算資源和存儲空間;
  • 該算法還對初始參數的選擇比較敏感,需要進行參數調整和優化。

Bisecting K-Means

Bisecting K-Means 是一種基于 K-Means 算法的層次聚類算法,其基本思想是將所有數據點劃分為一個簇,然后將該簇分成兩個子簇,并對每個子簇分別應用 K-Means 算法,重復執行這個過程,直到達到預定的聚類數目為止。

算法首先將所有數據點視為一個初始簇,然后對該簇應用K-Means算法,將該簇分成兩個子簇,并計算每個子簇的誤差平方和(SSE)。然后,選擇誤差平方和最大的子簇,并將其再次分成兩個子簇,重復執行這個過程,直到達到預定的聚類數目為止。

優點:
  • 具有較高的準確性和穩定性,能夠有效地處理大規模數據集,并且不需要指定初始聚類數目。
  • 該算法還能夠輸出聚類層次結構,便于分析和可視化。
缺點:
  • 計算復雜度較高,尤其是在處理大規模數據集時,需要消耗大量的計算資源和存儲空間。
  • 此外該算法對初始簇的選擇也比較敏感,可能會導致不同的聚類結果。

DBSCAN

具有噪聲的基于密度的聚類方法(Density-Based Spatial Clustering of Applications with Noise,DBSCAN)是一種典型的基于密度的空間聚類算法。

基于密度的方法的特點是不依賴于距離,而是依賴于密度,從而克服基于距離的算法只能發現“球形”聚簇的缺點。

DBSCAN算法的核心思想是:對于一個給定的數據點,如果它的密度達到一定的閾值,則它屬于一個簇中;否則,它被視為噪聲點。

優點:
  • 這類算法能克服基于距離的算法只能發現“類圓形”(凸)的聚類的缺點;
  • 可發現任意形狀的聚類,且對噪聲數據不敏感;
  • 不需要指定類的數目 cluster;
  • 算法中只有兩個參數,掃描半徑 (eps)和最小包含點數(min_samples)。
缺點:
  • 計算復雜度,不進行任何優化時,算法的時間復雜度是O(N^{2}),通常可利用R-tree,k-d tree, ball;
  • tree索引來加速計算,將算法的時間復雜度降為O(Nlog(N));
  • 受eps影響較大。在類中的數據分布密度不均勻時,eps較小時,密度小的cluster會被劃分成多個性質相似的cluster;eps較大時,會使得距離較近且密度較大的cluster被合并成一個cluster。在高維數據時,因為維數災難問題,eps的選取比較困難;
  • 依賴距離公式的選取,由于維度災害,距離的度量標準不重要;
  • 不適合數據集集中密度差異很大的,因為eps和metric選取很困難。

OPTICS

OPTICS(Ordering Points To Identify the Clustering Structure)是一種基于密度的聚類算法,其能夠自動確定簇的數量,同時也可以發現任意形狀的簇,并能夠處理噪聲數據。

OPTICS 算法的核心思想是:對于一個給定的數據點,通過計算它到其它點的距離,確定其在密度上的可達性,從而構建一個基于密度的距離圖。然后,通過掃描該距離圖,自動確定簇的數量,并對每個簇進行劃分。

優點:
  • 能夠自動確定簇的數量,并能夠處理任意形狀的簇,并能夠有效地處理噪聲數據。
  • 該算法還能夠輸出聚類層次結構,便于分析和可視化。
缺點:
  • 計算復雜度較高,尤其是在處理大規模數據集時,需要消耗大量的計算資源和存儲空間。
  • 該算法對于密度差異較大的數據集,可能會導致聚類效果不佳。

BIRCH

BIRCH(Balanced Iterative Reducing and Clustering using Hierarchies)是一種基于層次聚類的聚類算法,其可以快速地處理大規模數據集,并且對于任意形狀的簇都有較好的效果。

BIRCH算法的核心思想是:通過對數據集進行分級聚類,逐步減小數據規模,最終得到簇結構。BIRCH算法采用一種類似于B樹的結構,稱為CF樹,它可以快速地插入和刪除子簇,并且可以自動平衡,從而確保簇的質量和效率。

優點:
  • 能夠快速處理大規模數據集,并且對于任意形狀的簇都有較好的效果。
  • 該算法對于噪聲數據和離群點也有較好的容錯性。
缺點:
  • 對于密度差異較大的數據集,可能會導致聚類效果不佳;
  • 對于高維數據集的效果也不如其他算法。?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/208906.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/208906.shtml
英文地址,請注明出處:http://en.pswp.cn/news/208906.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Spring Cloud Gateway中對admin端點進行認證

前言 我們被掃了一個漏洞,SpringBoot Actuator 未授權訪問,漏洞描述是這樣的: Actuator 是 springboot 提供的用來對應用系統進行自省和監控的功能模塊,借助于 Actuator 開發者可以很方便地對應用系統某些監控指標進行查看、統計…

計算機基礎知識65

cookie和session的使用 # 概念:cookie 是客戶端瀏覽器上的鍵值對 # 目的:為了做會話保持 # 來源:服務端寫入的,服務端再返回的響應頭中寫入,瀏覽器會自動取出來 存起來是以key value 形式,有過期時間、path…

STM32單片機項目實例:基于TouchGFX的智能手表設計(3)嵌入式程序任務調度的設計

STM32單片機項目實例:基于TouchGFX的智能手表設計(3)嵌入式程序任務調度的設計 目錄 一、嵌入式程序設計 1.1輪詢 1.2 前后臺(中斷輪詢) 1.3 事件驅動與消息 1.3.1 事件驅動的概念 1.4 定時器觸發事件驅動型的任…

golang游戲服務器 - tgf系列課程02

環境準備和服務創建 課程介紹了TGF框架的前期的準備工作,啟動一個websocket網關服務,和大廳邏輯節點。 文章最后附有項目案例地址和視頻教程地址,下期預告等信息安裝第三方軟件 tgf框架的服務發現依賴于Consul,所以我們需要先安裝并啟動Consul官網安裝 :訪問官網下載對應的包…

點云從入門到精通技術詳解100篇-針對三維點云分類神經網絡模型的不可感知對抗攻擊

目錄 前言 國內外研究現狀 三維點云分類神經網絡 三維點云傳統攻擊方法

C/C++ 實現動態資源文件釋放

當我們開發Windows應用程序時,通常會涉及到使用資源(Resource)的情況。資源可以包括圖標、位圖、字符串等,它們以二進制形式嵌入到可執行文件中。在某些情況下,我們可能需要從可執行文件中提取自定義資源并保存為獨立的…

vivado時序方法檢查7

TIMING-25 &#xff1a; 千兆位收發器 (GT) 上的時鐘波形無效 收發器輸出管腳 <pin_name> 上或連接到該管腳的信號線上定義的時鐘 <clock_name> 的波形與收發器設置不一 致&#xff0c; 或者缺少參考時鐘定義。自動衍生時鐘的周期為 <PERIOD> &#xf…

物聯網后端個人第十四周總結

物聯網方面進度 1.登陸超時是因為后端運行的端口和前端監聽的接口不一樣&#xff0c;所以后端也沒有報錯&#xff0c;將二者修改一致即可 2.登錄之后會進行平臺的初始化&#xff0c;但是初始化的時候會卡住,此時只需要將路徑的IP端口后邊的內容去掉即可 3.閱讀并完成了jetlinks…

通過誤差改變控制的兩種策略

如果反饋誤差越來越大&#xff0c;需要改變調節方向以減小誤差并實現更好的控制。以下是兩種常見的調節方向改變的方法&#xff1a; PID控制器中的積分限制&#xff1a;在PID控制中&#xff0c;積分項可以用來減小穩態誤差。然而&#xff0c;當反饋誤差持續增大時&#xff0c;積…

浪潮信息:數字化轉型的策略與實踐

在數字化浪潮的推動下&#xff0c;浪潮信息正致力于將計算創新推向新的高度。作為科技發展的排頭兵&#xff0c;浪潮信息深知算力的重要性&#xff0c;因此不斷探索前所未有的解決方案。在這個過程中&#xff0c;浪潮信息的研發人員和科技工作者如同探險家&#xff0c;勇敢地迎…

RocketMQ安裝和使用

RocketMQ快速入門 下載RocketMQ 下載地址 環境要求 Linux64位系統 JDK1.8(64位) 安裝RocketMQ 解壓 unzip rocketmq-all-4.4.0-bin-release.zip啟動RocketMQ 啟動NameServer # 1.啟動NameServer nohup sh bin/mqnamesrv & # 2.查看啟動日志 tail -f ~/logs/rocke…

學會用bash在linux寫腳本 (二)

接著上一章繼續 數值的對比 判斷語句 循環語句 22.5 比較、對比、判斷 在寫腳本時&#xff0c;有時需要做一些比較&#xff0c;例如&#xff0c;兩個數字誰大誰小&#xff0c;兩個字符串是否相同等。 做對比的表達式有[]、[[]]、test&#xff0c;其中[]和 test這兩種表達式的…

如何通過3000個傳感器幫助大型大學附屬醫院實現遠程環境監測?

得益于ELPRO提供的可擴展、可信賴和可靠的環境監測解決方案&#xff0c;一家領先的大學研究醫院系統在COVID-19新冠肺炎大流行初始迅速為員工遠程工作做好了準備。 在本案例研究中&#xff0c;您將了解大城市的一家大型大學附屬醫院如何做到&#xff1a; 建立了遠程溫度控制數…

身份統一管理創新與優化 ——華為云OneAccess應用身份管理服務的2023年

2023年&#xff0c;隨著云計算、物聯網、人工智能等技術的快速發展&#xff0c;企業面臨著數字化轉型的巨大挑戰與機遇。身份統一管理是企業數字化轉型的基礎&#xff0c;也是業務發展的關鍵。如何高效、安全、靈活地實現身份統一管理&#xff0c;成為企業亟待解決的首要課題。…

解決MySQL字段名與關鍵字沖突

如果字段名與MySQL內部關鍵字相同&#xff0c;可能會導致語法錯誤、數據訪問問題甚至系統崩潰。 1、避免使用MySQL關鍵字作為字段名。 2、使用反引號&#xff08;backticks&#xff09;&#xff1a; 如果使用一個與MySQL關鍵字相同的字段名&#xff0c;可以使用反引號將其括起…

boost-字符串處理-判斷-查找-裁剪-刪除-替換-分割-合并

文章目錄 1.判斷1.1.equals1.2.all1.3.starts_with1.4.ends_with1.5.contains 2.大小寫轉換3.字符串刪除4.字符串替換5.字符串查找6.字符串修剪7.字符串分割8.字符串合并9.總結 1.判斷 判別式函數和分類函數大多數都是以is_開頭&#xff0c;這些函數如下&#xff1a; 判別式函…

ElasticSearch之線程池

ElasticSearch節點可用的CPU核的數量&#xff0c;通常可以交給ElasticSearch來自行檢測和判定&#xff0c;另外可以在elasticsearch.yml中顯式指定。樣例如下&#xff1a; node.processors: 2如下表格中的processors即CPU核的數量。 線程池的列表 線程池名稱類型線程數量隊列…

屏蔽百度首頁推薦和熱搜的實戰方案

大家好,我是愛編程的喵喵。雙985碩士畢業,現擔任全棧工程師一職,熱衷于將數據思維應用到工作與生活中。從事機器學習以及相關的前后端開發工作。曾在阿里云、科大訊飛、CCF等比賽獲得多次Top名次。現為CSDN博客專家、人工智能領域優質創作者。喜歡通過博客創作的方式對所學的…

電視節目中活動滅燈系統是如何實現的

活動滅燈系統主要用于各種需要亮燈或滅燈的活動節目&#xff0c;如招聘滅燈、相親滅燈等。有多種燈光顏色供選擇&#xff0c;本設備通過按鈕燈軟件組合實現&#xff0c;用戶可以自己設置亮燈或滅燈規則。 軟件功能&#xff1a; 1、后臺統一控制亮燈&#xff0c;重新開始下輪…

華為交換機基本配置

一、配置時間 sys ntp-service unicast-server 192.168.1.1 ntp-service unicast-server 192.168.1.2 clock timezone UTC add 8 clock timezone CST add 08:00:00 undo ntp-service disable q手動設置一個時間 clock datetime 13:43:00 2023-10-10save ysys保存&#xff01;保…