聚類分析的原理、常用算法及其應用

聚類分析的原理、常用算法及其應用

一、聚類分析的基本原理

(一)什么是聚類分析

聚類分析是一種無監督學習方法,其目標是將數據集中的樣本劃分為若干個簇,每個簇包含相似的樣本。聚類分析的核心思想是通過某種相似性度量(如距離)來衡量樣本之間的相似性,并根據這些相似性將樣本分組。

(二)相似性度量

在聚類分析中,相似性度量是關鍵。常用的相似性度量方法包括:

  1. 歐氏距離:這是最常用的距離度量方法,適用于連續數值型數據。對于兩個樣本 ( x ) 和 ( y ),歐氏距離定義為:
    [
    d(x, y) = \sqrt{\sum_{i=1}^{n} (x_i - y_i)^2}
    ]
    其中,( n ) 是特征的維度,( x_i ) 和 ( y_i ) 分別是樣本 ( x ) 和 ( y ) 在第 ( i ) 維上的值。

  2. 曼哈頓距離:適用于連續數值型數據,計算方式為:
    [
    d(x, y) = \sum_{i=1}^{n} |x_i - y_i|
    ]
    曼哈頓距離在某些情況下比歐氏距離更魯棒,尤其是在高維空間中。

  3. 余弦相似度:適用于文本數據或其他稀疏數據。余弦相似度衡量的是兩個向量之間的夾角,計算公式為:
    [
    \text{cosine similarity}(x, y) = \frac{x \cdot y}{|x| |y|}
    ]
    其中,( x \cdot y ) 是向量 ( x ) 和 ( y ) 的點積,( |x| ) 和 ( |y| ) 分別是向量 ( x ) 和 ( y ) 的模。

  4. Jaccard相似度:適用于二值數據(如集合)。Jaccard相似度計算兩個集合的交集與并集的比值,公式為:
    [
    \text{Jaccard similarity}(A, B) = \frac{|A \cap B|}{|A \cup B|}
    ]
    其中,( A ) 和 ( B ) 是兩個集合。

(三)聚類的目標

聚類的目標是使簇內的樣本盡可能相似,而不同簇之間的樣本盡可能不相似。這可以通過以下兩個方面來衡量:

  1. 簇內相似性:同一簇內的樣本之間的相似性越高越好。通常用簇內樣本之間的平均距離來衡量,距離越小,簇內相似性越高。
  2. 簇間相似性:不同簇之間的樣本之間的相似性越低越好。通常用簇中心之間的距離來衡量,距離越大,簇間相似性越低。

二、常用聚類算法

(一)K-Means算法

K-Means算法是最經典的聚類算法之一,它通過迭代優化的方式將數據劃分為 ( K ) 個簇。

1. 算法步驟
  1. 初始化:隨機選擇 ( K ) 個樣本作為初始簇中心(質心)。
  2. 分配樣本:將每個樣本分配到最近的簇中心所在的簇。
  3. 更新簇中心:重新計算每個簇的質心,質心是簇內所有樣本的均值。
  4. 重復步驟2和3:直到簇中心不再變化或達到預定的迭代次數。
2. 優缺點
  • 優點
    • 簡單易實現。
    • 收斂速度快。
    • 適合大規模數據集。
  • 缺點
    • 需要預先指定簇的數量 ( K )。
    • 對初始簇中心的選擇敏感,可能導致局部最優解。
    • 對離群點敏感。
3. 優化方法
  • K-Means++:改進初始簇中心的選擇方法,通過概率采樣選擇初始簇中心,減少對初始值的依賴。
  • 多次運行:多次運行K-Means算法,選擇最佳的聚類結果。

(二)層次聚類

層次聚類是一種基于樹狀結構的聚類方法,它通過不斷合并或分割簇來形成層次結構。

1. 算法步驟
  • 凝聚型層次聚類
    1. 初始時,每個樣本是一個單獨的簇。
    2. 計算簇之間的距離,選擇距離最近的兩個簇合并。
    3. 重復步驟2,直到所有樣本合并為一個簇。
  • 分裂型層次聚類
    1. 初始時,所有樣本屬于一個簇。
    2. 選擇一個簇進行分裂,分裂為兩個子簇。
    3. 重復步驟2,直到每個樣本成為一個單獨的簇。
2. 簇間距離計算方法
  • 單鏈接法:簇間距離是兩個簇中最近的兩個樣本之間的距離。
  • 全鏈接法:簇間距離是兩個簇中最遠的兩個樣本之間的距離。
  • 平均鏈接法:簇間距離是兩個簇中所有樣本之間的平均距離。
  • Ward方法:基于誤差平方和的減少量來選擇合并的簇。
3. 優缺點
  • 優點
    • 不需要預先指定簇的數量。
    • 可以生成層次結構,方便可視化。
  • 缺點
    • 計算復雜度高,不適合大規模數據集。
    • 一旦合并或分裂,無法撤銷。

(三)DBSCAN算法

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一種基于密度的聚類算法,能夠發現任意形狀的簇,并且可以識別離群點。

1. 算法步驟
  1. 定義核心點、邊界點和噪聲點
    • 核心點:在半徑 ( \epsilon ) 內的鄰域內至少包含 ( \text{MinPts} ) 個點。
    • 邊界點:在半徑 ( \epsilon ) 內的鄰域內點的數量小于 ( \text{MinPts} ),但屬于某個核心點的鄰域。
    • 噪聲點:既不是核心點也不是邊界點的點。
  2. 初始化:選擇一個未訪問的點,標記為已訪問。
  3. 擴展簇
    • 如果該點是核心點,則將其鄰域內的所有點加入到簇中,并將這些點標記為已訪問。
    • 對新加入的點重復上述過程,直到沒有新的核心點可以擴展。
  4. 重復步驟2和3:直到所有點都被訪問過。
2. 優缺點
  • 優點
    • 能夠發現任意形狀的簇。
    • 能夠識別離群點。
    • 不需要預先指定簇的數量。
  • 缺點
    • 對參數 ( \epsilon ) 和 ( \text{MinPts} ) 的選擇敏感。
    • 在高維數據中,密度估計可能不夠準確。

(四)譜聚類

譜聚類是一種基于圖論的聚類方法,通過構建相似度矩陣和拉普拉斯矩陣來實現聚類。

1. 算法步驟
  1. 構建相似度矩陣:計算樣本之間的相似度,形成相似度矩陣 ( W )。
  2. 構建度矩陣:度矩陣 ( D ) 是一個對角矩陣,對角線上的元素是相似度矩陣每一行的和。
  3. 構建拉普拉斯矩陣:拉普拉斯矩陣 ( L = D - W )。
  4. 特征分解:對拉普拉斯矩陣進行特征分解,取前 ( K ) 個最小特征值對應的特征向量。
  5. K-Means聚類:將特征向量作為樣本,使用K-Means算法進行聚類。
2. 優缺點
  • 優點
    • 能夠發現任意形狀的簇。
    • 對噪聲和離群點有較好的魯棒性。
  • 缺點
    • 計算復雜度較高,不適合大規模數據集。
    • 需要預先指定簇的數量 ( K )。

三、聚類結果評估

(一)內部評估指標

內部評估指標僅依賴于數據本身,不依賴于外部標簽。常用的內部評估指標包括:

  1. 輪廓系數(Silhouette Coefficient)

    • 輪廓系數衡量的是樣本在簇內的相似性與簇間的不相似性的對比。計算公式為:
      [
      s(i) = \frac{b(i) - a(i)}{\max{a(i), b(i)}}
      ]
      其中,( a(i) ) 是樣本 ( i ) 與其同簇內其他樣本的平均距離,( b(i) ) 是樣本 ( i ) 與其最近的簇中所有樣本的平均距離。輪廓系數的值范圍為 ([-1, 1]),值越接近1,聚類效果越好。
  2. 戴維斯-邦丁指數(Davies-Bouldin Index)

    • 戴維斯-邦丁指數衡量的是簇間的相似性與簇內不相似性的比值。值越小,聚類效果越好。
  3. Calinski-Harabasz指數

    • 該指數衡量的是簇間方差與簇內方差的比值。值越大,聚類效果越好。

(二)外部評估指標

外部評估指標依賴于外部標簽,用于評估聚類結果與真實標簽的一致性。常用的外部評估指標包括:

  1. 調整蘭德指數(Adjusted Rand Index, ARI)

    • 調整蘭德指數衡量的是聚類結果與真實標簽之間的一致性。值范圍為 ([-1, 1]),值越接近1,聚類效果越好。
  2. 互信息(Mutual Information, MI)

    • 互信息衡量的是聚類結果與真實標簽之間的信息共享程度。值越大,聚類效果越好。
  3. 歸一化互信息(Normalized Mutual Information, NMI)

    • 歸一化互信息是對互信息的歸一化處理,值范圍為 ([0, 1]),值越接近1,聚類效果越好。

四、聚類分析的應用

(一)客戶細分

在市場營銷中,聚類分析可以用于客戶細分。通過對客戶的行為數據、消費習慣等進行聚類,將客戶劃分為不同的群體,從而為每個群體制定個性化的營銷策略。

(二)圖像分割

在計算機視覺中,聚類分析可以用于圖像分割。通過對圖像像素的顏色、紋理等特征進行聚類,將圖像劃分為不同的區域,從而實現目標檢測和背景分離。

(三)文本聚類

在自然語言處理中,聚類分析可以用于文本聚類。通過對文本的特征向量(如TF-IDF向量)進行聚類,將文本劃分為不同的主題類別,從而實現文本分類和主題發現。

(四)生物醫學

在生物醫學中,聚類分析可以用于基因表達數據分析。通過對基因表達數據進行聚類,發現基因之間的相似性,從而揭示基因的功能和調控機制。

五、總結

聚類分析是一種強大的無監督學習方法,通過相似性度量將數據劃分為多個簇,從而揭示數據的內在結構。常見的聚類算法包括K-Means、層次聚類、DBSCAN和譜聚類,每種算法都有其優缺點和適用場景。聚類結果可以通過內部評估指標和外部評估指標進行評估。聚類分析在客戶細分、圖像分割、文本聚類和生物醫學等領域有廣泛的應用。

希望以上內容對你理解聚類分析有所幫助!如果你還有其他問題,歡迎繼續向我提問。

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

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

相關文章

Aware和InitializingBean接口以及@Autowired注解失效分析

Aware 接口用于注入一些與容器相關信息,例如: ? a. BeanNameAware 注入 Bean 的名字 ? b. BeanFactoryAware 注入 BeanFactory 容器 ? c. ApplicationContextAware 注入 ApplicationContext 容器 ? d. EmbeddedValueResolverAware 注入 解析器&a…

JDK 安裝與配置

JDK 全稱是 Java SE Development Kit,翻譯成中文就是:Java 標準版開發包,是 Sun 公司(后被 Oracle 公司收購)專門外 Java 開發人員提供的一套用于開發 Java 應用程序的工具包。 JDK 提供了用于編譯和運行 Java 應用程序…

防火墻來回路徑不一致導致的業務異常

案例拓撲: 拓撲描述: 服務器有2塊網卡,內網網卡2.2.2.1/24 網關2.2.254 提供內網用戶訪問; 外網網卡1.1.1.1/24,外網網關1.1.1.254 80端口映射到公網 這個時候服務器有2條默認路由,分布是0.0.0.0 0.0.0.0 1…

Java面試高頻問題(36-37)

三十六、服務網格核心能力與設計模式 服務網格架構分層模型 mermaid graph TB subgraph 數據平面 ASidecar代理 -->攔截流量 BEnvoy B -->協議轉換 CHTTP/gRPC B -->策略執行 D熔斷/限流 end subgraph 控制平面 E配置中心 -->下發策略 Fistiod F -->證書管理 …

redis數據結構-02(INCR、DECR、APPEND)

字符串操作:INCR、DECR、APPEND Redis 字符串不僅僅是簡單的文本,它們還可以表示數字。此功能使我們能夠直接對存儲在 Redis 中的字符串值執行原子的遞增和遞減操作。此外,Redis 還提供了一種附加到現有字符串的方法,從而可以輕松…

Spring MVC 中Model, ModelMap, ModelAndView 之間有什么關系和區別?

在 Spring MVC 中,Model, ModelMap, 和 ModelAndView 都是用來在 Controller 和 View 之間傳遞數據的,但它們在使用方式和功能上有所不同。 它們的核心在于:Spring MVC 需要知道兩件事來渲染視圖:① 數據 (Model) ② 視圖名稱 (V…

配置Hadoop集群-免密登錄

在 Hadoop 集群中配置免密登錄是確保各節點間高效通信的關鍵步驟。以下是基于 SSH 密鑰認證的免密登錄配置方案,支持主節點(NameNode)到所有從節點(DataNode)的無密碼訪問: 1. 環境準備 集群規劃&#xff…

C++類與對象(二):六個默認構造函數(一)

在學C語言時,實現棧和隊列時容易忘記初始化和銷毀,就會造成內存泄漏。而在C的類中我們忘記寫初始化和銷毀函數時,編譯器會自動生成構造函數和析構函數,對應的初始化和在對象生命周期結束時清理資源。那是什么是默認構造函數呢&…

嵌入式培訓之數據結構學習(一)數據結構的基礎概念、線性表

一、基礎概念 1、數據結構:相互之間存在一種或多種特定關系的數據元素的集合。(特定關系有邏輯關系與線性關系) (1)邏輯結構 集合,所有數據在同一個集合中,關系平等(數組&#xff…

Android Exoplayer 實現多個音視頻文件混合播放以及音軌切換

在之前的文章ExoPlayer中常見MediaSource子類的區別和使用場景中介紹了Exoplayer中各種子MediaSource的使用場景,這篇我們著重詳細介紹下實現多路流混合播放的用法。常見的使用場景有:視頻文件電影字幕、正片視頻廣告視頻、背景視頻背景音樂等。 初始化…

推特逆向算法,推特爬蟲,數據分析,推特關鍵詞搜索

祝大家五一假期快樂! 最近推特加了逆向,頻繁出現404,無法正常抓取數據,這里給出推特逆向的思路及代碼,供大家參考學習! 本文將介紹如何使用 Python 模擬請求 Twitter 的 GraphQL 接口,結合 re…

圖形化編程平臺的破局之道:從工具同質化到生態差異化

一、同質化困局的底層邏輯剖析 在全球圖形化編程市場中,工具功能趨同已成為行業共識。據 Statista 2024 年數據顯示,主流平臺的基礎功能重合度高達 78%,核心模塊(如條件判斷、循環結構)的實現方式高度相似。這種現象的…

【Rust】枚舉和模式匹配

目錄 枚舉和模式匹配枚舉的定義Option 枚舉控制流運算符 match簡潔控制流 if let 枚舉和模式匹配 枚舉的定義 結構體給予你將字段和數據聚合在一起的方法,像 Rectangle 結構體有 width 和 height 兩個字段。而枚舉給予你一個途徑去聲明某個值是一個集合中的一員。…

應急響應靶機——WhereIS?

用戶名及密碼:zgsf/zgsf 下載資源還有個解題.exe: 1、攻擊者的兩個ip地址 2、flag1和flag2 3、后門程序進程名稱 4、攻擊者的提權方式(輸入程序名稱即可) 之前的命令: 1、攻擊者的兩個ip地址 先獲得root權限,查看一下歷史命令記錄&#x…

變量函數實戰:高保真APP原型“發票頁面”動態交互教程

變量函數是高保真交互原型設計中常見的高級交互功能,能夠避免重復復制與手動修改頁面元素和邏輯標注,讓演示更有真實體驗感。本文分享一個高保真APP交互原型頁面的實操案例,結合原型設計工具中的變量函數與邏輯判斷功能,手把手教你…

量子加密通信:守護信息安全的未來之盾

摘要 在數字化時代,信息安全成為全球關注的焦點。傳統加密技術面臨著被量子計算破解的風險,而量子加密通信作為一種基于量子力學原理的新型加密技術,提供了理論上無條件安全的通信保障。本文將詳細介紹量子加密通信的基本原理、技術實現、應用…

《Vue.js》閱讀之響應式數據與副作用函數

Vue.js 《Vue.js設計與實現》(霍春陽) 適合:從零手寫Vue3響應式系統,大廠面試源碼題直接覆蓋。重點章節:第4章(響應式)、第5章(渲染器)、第8章(編譯器&…

數據處理專題(十三)

學會基本的圖像處理技術。? OpenCV 基礎 實踐:使用 OpenCV 進行圖像讀取、顯示和基本處理? 03 代碼示例 1. 導入必要的庫 import cv2import numpy as npimport matplotlib.pyplot as plt 2. 圖像讀取 # 讀取圖像image_path path_to_your_image.jpg # 替換…

springboot旅游小程序-計算機畢業設計源碼76696

目 錄 摘要 1 緒論 1.1研究背景與意義 1.2研究現狀 1.3論文結構與章節安排 2 基于微信小程序旅游網站系統分析 2.1 可行性分析 2.1.1 技術可行性分析 2.1.2 經濟可行性分析 2.1.3 法律可行性分析 2.2 系統功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系統…

P1874 快速求和

目錄 題目算法標簽: 動態規劃, 線性 d p dp dp思路代碼 題目 P1874 快速求和 算法標簽: 動態規劃, 線性 d p dp dp 思路 求的是最少組成 n n n的加法次數, 對于當前數字序列可以設計狀態表示 f [ i ] [ j ] f[i][j] f[i][j]表示考慮前 i i i個字符, 并且和是 j j j的所有方…