聚類算法(K-means、DBSCAN)

聚類算法

K-means 算法

算法原理

K-means 是一種基于類內距離最小化的劃分式聚類算法,其核心思想是通過迭代優化將數據劃分為 K 個簇。目標函數為最小化平方誤差(SSE):
S S E = ∑ i = 1 K ∑ x ∈ C i ∣ ∣ x ? μ i ∣ ∣ 2 SSE = \sum_{i=1}^{K} \sum_{x \in C_i} ||x - \mu_i||^2 SSE=i=1K?xCi??∣∣x?μi?2
其中 μ i \mu_i μi? 是第 i i i 個簇的質心。

算法步驟

  1. 初始化

    • 隨機選擇 K 個初始質心(或使用 k-means++ 優化初始化)
  2. 迭代優化

    • 分配階段:將每個樣本分配到距離最近的質心所屬簇
      C i = { x : ∣ ∣ x ? μ i ∣ ∣ 2 ≤ ∣ ∣ x ? μ j ∣ ∣ 2 , ? j } C_i = \{ x : ||x - \mu_i||^2 \leq ||x - \mu_j||^2, \forall j \} Ci?={x:∣∣x?μi?2∣∣x?μj?2,?j}
    • 更新階段:重新計算每個簇的質心
      μ i = 1 ∣ C i ∣ ∑ x ∈ C i x \mu_i = \frac{1}{|C_i|} \sum_{x \in C_i} x μi?=Ci?1?xCi??x
  3. 終止條件

    • 質心位置不再變化(收斂)
    • 達到最大迭代次數
    • SSE 變化量小于閾值

特點

  • 時間復雜度: O ( n ? K ? I ? d ) O(n*K*I*d) O(n?K?I?d),n 為樣本數,I 為迭代次數
  • 需預先指定 K 值
  • 對初始質心敏感,可能收斂到局部最優

DBSCAN 算法

算法原理

DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一種基于密度可達性的聚類算法,由Ester等人在1996年提出,其核心思想是通過數據點的局部密度分布識別聚類結構,并有效處理噪聲。算法中的關鍵概念包括:

  1. 核心點:以某點為中心、半徑ε鄰域內的點數≥MinPts的點,是簇形成的基礎。
  2. 邊界點:位于核心點的ε鄰域內,但自身鄰域內點數<MinPts的點。
  3. 噪聲點:既非核心點也非邊界點的孤立點。
  4. 密度可達性:若點A通過一系列核心點間接可達點B,則稱A與B密度可達。
  5. 密度連通性:若存在核心點O,使得點A和B均密度可達于O,則A與B密度連通。

算法步驟

  1. 初始化參數:設置鄰域半徑ε和最小密度閾值MinPts。
  2. 遍歷未訪問點:隨機選擇一個未訪問點,計算其ε鄰域內的點數:
    • 若點數<MinPts:標記為噪聲點(可能后續被重新歸類為邊界點)。
    • 若點數≥MinPts:標記為核心點,創建新簇,遞歸合并所有密度可達點。
  3. 擴展聚類:通過核心點的鄰域不斷吸收邊界點和可達核心點,直至無法擴展。
  4. 重復處理:遍歷所有未訪問點,直至數據集處理完畢。

特性

  • 時間復雜度:O(n log n)(使用空間索引時)
  • 可發現任意形狀的簇
  • 自動識別噪聲點
  • 對參數敏感

聚類評估指標

1. 輪廓系數 (Silhouette Coefficient)

綜合衡量樣本的簇內緊密度簇間分離度
s ( i ) = b ( i ) ? a ( i ) max ? { a ( i ) , b ( i ) } s(i) = \frac{b(i) - a(i)}{\max\{a(i), b(i)\}} s(i)=max{a(i),b(i)}b(i)?a(i)?

  • a ( i ) a(i) a(i):樣本 i 到同簇其他點的平均距離
  • b ( i ) b(i) b(i):樣本 i 到最近其他簇的平均距離
  • 取值范圍:[-1, 1],值越大聚類質量越高

2. Calinski-Harabasz 指數

通過方差比評估聚類質量:
C H = t r ( B k ) / ( K ? 1 ) t r ( W k ) / ( n ? K ) CH = \frac{tr(B_k)/(K-1)}{tr(W_k)/(n-K)} CH=tr(Wk?)/(n?K)tr(Bk?)/(K?1)?

  • B k B_k Bk?:簇間協方差矩陣
  • W k W_k Wk?:簇內協方差矩陣
  • 值越大表示簇間差異越大,簇內越緊密

K-means 的 K 值選擇方法詳解

肘部法則 (Elbow Method)

計算不同 K 值對應的 SSE:

sse = []
for k in range(1, 11):kmeans = KMeans(n_clusters=k)kmeans.fit(data)sse.append(kmeans.inertia_)

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

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

相關文章

Oracle在ERP市場擊敗SAP

2024年,甲骨文(Oracle)以87億美元的ERP收入和6.63%的市場份額,首次超越SAP,成為全球最大的ERP應用軟件供應商,結束了SAP自上世紀80年代以來在該領域的長期霸主地位。據APPS RUN THE WORLD的市場調研&#x…

嵌入式面試高頻筆試題目解析

一、基礎概念與 C 語言核心題 1. 指針與內存操作 典型題目: char str[] = "hello"; char *ptr = "world"; str[0] = H; // 合法嗎? ptr[0] = W; // 合法嗎?為什么?解析: str 是棧上數組,可修改內容,str[0]=H 合法。ptr 指向常量字符串區,修改會…

【Python】Selenium切換網頁的標簽頁的寫法(全!!!)

在使用selenium做網站爬取測試的時候,我們經常會遇到一些需要點擊的元素,才能點擊到我們想要進入的頁面, 于是我們就要模擬 不斷地 點點點擊 鼠標的樣子。 這個時候網頁上就會有很多的標簽頁,你的瀏覽器網頁標簽欄 be like: 那…

MySQL GTID模式主從同步配置全指南:從配置到故障轉移

前言 MySQL主從復制是企業級數據庫架構的基礎,而GTID(Global Transaction Identifier)模式則是MySQL 5.6版本后推出的革命性復制技術。本文將詳細介紹如何配置基于GTID的主從同步,并包含實用的故障轉移操作指南。 一、GTID模式核心優勢 相比傳統基于…

MAC系統下完全卸載Android Studio

刪除以下文件 /Applications/Android Studio.app /Users/用戶名/Library/Application Support/Google/AndroidStudio2024.2 /Users/用戶名/Library/Google/AndroidStudio /Users/用戶名/Library/Preferences/com.google.android.studio.plist /Users/用戶名/Library/Cache…

<C#>.NET WebAPI 的 FromBody ,FromForm ,FromServices等詳細解釋

在 .NET 8 Web API 中,[FromBody]、[FromForm]、[FromHeader]、[FromKeyedServices]、[FromQuery]、[FromRoute] 和 [FromServices] 這些都是用于綁定控制器動作方法參數的特性,下面為你詳細解釋這些特性。 1. [FromBody] 作用:從 HTTP 請求…

# 透視 Linux 內核:Socket 機制的底層架構與運行邏輯深度解析

在由 Linux 操作系統構建的龐大網絡生態中,Socket 作為網絡通信的核心樞紐,承載著不同主機間應用進程的數據交互重任。無論是日常的網頁瀏覽、在線游戲,還是復雜的分布式系統通信,Socket 都在幕后扮演著關鍵角色。盡管多數開發者對…

# 利用遷移學習優化食物分類模型:基于ResNet18的實踐

利用遷移學習優化食物分類模型:基于ResNet18的實踐 在深度學習的眾多應用中,圖像分類一直是一個熱門且具有挑戰性的領域。隨著研究的深入,我們發現利用預訓練模型進行遷移學習是一種非常有效的策略,可以顯著提高模型的性能&#…

Excel提取圖片并自動上傳到文件服務器(OOS),獲取文件鏈接

Excel提取圖片并自動上傳到接口 在實際項目中,我們可能經常會遇到需要批量從Excel文件(.xlsx)中提取圖片并上傳到特定接口的場景。今天,我就詳細介紹一下如何使用Python實現這一功能,本文會手把手教你搭建一個完整的解…

jmeter利用csv進行參數化和自動斷言

1.測試數據 csv測試數據如下(以注冊接口為例) 2.jemer參數化csv設置 打開 jmeter,添加好線程組、HTTP信息頭管理器、CSV 數據文件設置、注冊請求、響應斷言、查看結果樹 1) CSV 數據文件設置 若 CSV 中數據包含中文,…

騰訊云對象存儲m3u8文件使用騰訊播放器播放

參考騰訊云官方文檔: 播放器 SDK Demo 體驗_騰訊云 重要的一步來了: 登錄騰訊云控制臺,找到對象存儲的存儲桶。 此時,再去刷新剛才創建的播放器html文件,即可看到播放畫面了。

CSS 美化頁面(五)

一、position屬性 屬性值??描述??應用場景?static默認定位方式,元素遵循文檔流正常排列,top/right/bottom/left 屬性無效?。普通文檔流布局,默認布局,無需特殊定位。relative相對定位,相對于元素原本位置進行偏…

Spring MVC 核心注解與文件上傳教程

一、RequestBody 注解詳解 1. 基本使用 作用:從 HTTP 請求體中獲取數據,適用于 POST/PUT 請求。 限制:GET 請求無請求體,不可使用該注解。 示例代碼 Controller RequestMapping("/demo01") public class Demo01Cont…

js原型鏈prototype解釋

function Person(){} var personnew Person() console.log(啊啊,Person instanceof Function);//true console.log(,Person.__proto__Function.prototype);//true console.log(,Person.prototype.__proto__ Object.prototype);//true console.log(,Function.prototype.__prot…

為您的照片提供本地 AI 視覺:使用 Llama Vision 和 ChromaDB 構建 AI 圖像標記器

有沒有花 20 分鐘瀏覽您的文件夾以找到心中的特定圖像或屏幕截圖?您并不孤單。 作為工作中的產品經理,我總是淹沒在競爭對手產品的屏幕截圖、UI 靈感以及白板會議或草圖的照片的海洋中。在我的個人生活中,我總是捕捉我在生活中遇到的事物&am…

Kafka消費者端重平衡流程

重平衡的完整流程需要消費者 端和協調者組件共同參與才能完成。我們先從消費者的視角來審視一下重平衡的流程。在消費者端,重平衡分為兩個步驟:分別是加入組和等待領導者消費者(Leader Consumer)分配方案。這兩個步驟分別對應兩類…

2025年五大ETL數據集成工具推薦

ETL工具作為打通數據孤島的核心引擎,直接影響著企業的決策效率與業務敏捷性。本文精選五款實戰型ETL解決方案,從零門檻的國產免費工具到國際大廠企業級平臺,助您找到最適合的數據集成利器。 一、谷云科技ETLCloud:國產數據集成工…

PageIndex:構建無需切塊向量化的 Agentic RAG

引言 你是否對長篇專業文檔的向量數據庫檢索準確性感到失望?傳統的基于向量的RAG系統依賴于語義相似性而非真正的相關性。但在檢索中,我們真正需要的是相關性——這需要推理能力。當處理需要領域專業知識和多步推理的專業文檔時,相似度搜索常…

ubuntu20.04 遠程桌面Xrdp方式

1,Ubuntu 安裝Xrdp 方法 1.1,安裝xrdp sudo apt install xrdp 1.2,檢查xrdp狀態 sudo systemctl status xrdp 1.3,加入ssl-cert sudo adduser xrdp ssl-cert 1.4,重啟xrdp服務 sudo systemctl restart xrdp 最后…

Java學習手冊:RESTful API 設計原則

一、RESTful API 概述 REST(Representational State Transfer)即表述性狀態轉移,是一種軟件架構風格,用于設計網絡應用程序。RESTful API 是符合 REST 原則的 Web API,通過使用 HTTP 協議和標準方法(GET、…