Day17 聚類算法(K-Means、DBSCAN、層次聚類)

一、聚類算法

1. K-Means 聚類

  • 原理:K-Means 是一種基于劃分的聚類算法,目標是將 n n n 個樣本劃分到 k k k 個簇中,使得簇內樣本的相似度盡可能高,簇間樣本的相似度盡可能低。算法通過迭代的方式,不斷更新簇的質心(即簇內樣本的均值),直到質心不再變化或達到最大迭代次數。
  • 步驟
    1. 隨機初始化 k k k 個質心。
    2. 將每個樣本分配到距離最近的質心所在的簇。
    3. 重新計算每個簇的質心。
    4. 重復步驟 2 和 3,直到質心不再變化或達到最大迭代次數。
  • 優點:實現簡單,計算效率高,對于大規模數據集有較好的性能。
  • 缺點:需要預先指定簇的數量 k k k;對初始質心的選擇敏感,可能會陷入局部最優解;對噪聲和離群點敏感。

2. DBSCAN 聚類

  • 原理:DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一種基于密度的聚類算法,它將具有足夠密度的區域劃分為簇,并在具有噪聲的數據中發現任意形狀的簇。核心概念包括核心點、邊界點和噪聲點。
  • 步驟
    1. 定義兩個參數:鄰域半徑 ? \epsilon ? 和最小樣本數 M i n P t s MinPts MinPts
    2. 遍歷所有樣本,找出所有核心點(在其 ? \epsilon ? 鄰域內至少有 M i n P t s MinPts MinPts 個樣本)。
    3. 從一個核心點開始,通過密度可達關系(即從一個核心點出發,通過一系列核心點相連)擴展出一個簇。
    4. 重復步驟 3,直到所有核心點都被訪問過。未被訪問的樣本被標記為噪聲點。
  • 優點:不需要預先指定簇的數量;可以發現任意形狀的簇;對噪聲和離群點具有較好的魯棒性。
  • 缺點:對于密度變化較大的數據集,參數 ? \epsilon ? M i n P t s MinPts MinPts 的選擇比較困難;在高維數據上的性能可能較差。

3. 層次聚類

  • 原理:層次聚類是一種基于樣本間相似度的聚類算法,它通過構建一個層次化的聚類樹來表示樣本之間的聚類關系。層次聚類可以分為凝聚式(自底向上)和分裂式(自頂向下)兩種方式。
  • 步驟(凝聚式)
    1. 將每個樣本看作一個單獨的簇。
    2. 計算所有簇之間的相似度,將相似度最高的兩個簇合并成一個新的簇。
    3. 重復步驟 2,直到所有樣本都合并到一個簇中或達到停止條件。
  • 優點:不需要預先指定簇的數量;可以生成一個層次化的聚類結構,方便用戶根據需要選擇合適的聚類結果。
  • 缺點:計算復雜度較高,對于大規模數據集的計算效率較低;一旦一個合并操作完成,就不能再撤銷,可能會導致聚類結果不理想。

在論文中聚類的策略不一定是針對所有特征,可以針對其中幾個可以解釋的特征進行聚類,得到聚類后的類別,這樣后續進行解釋也更加符合邏輯。

二、聚類的流程,實操

  • 標準化數據

  • 選擇合適的算法,根據評估指標調參( )
    KMeans 和層次聚類的參數是K值,選完k指標就確定
    DBSCAN 的參數是 eps 和min_samples,選完他們出現k和評估指標
    以及層次聚類的 linkage準則等都需要仔細調優。
    除了經典的評估指標,還需要關注聚類出來每個簇對應的樣本個數,避免太少沒有意義。

  • 將聚類后的特征添加到原數據中

  • 原則t-sne或者pca進行2D或3D可視化

作業: 對心臟病數據集進行聚類。

import pandas as pd
from sklearn.cluster import DBSCAN
from sklearn.preprocessing import StandardScaler
import matplotlib.pyplot as plt
import numpy as np# 讀取 heart.csv 文件
file_path = r'.\csv\heart.csv'
data = pd.read_csv(file_path)# 假設數據集中所有列都是數值型特征,若有非數值型需要先處理
# 提取特征
X = data.values# 數據標準化
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

接下來以DBSCAN聚類算法為例

# 使用 DBSCAN 進行聚類
db = DBSCAN(eps=0.3, min_samples=10).fit(X_scaled)
core_samples_mask = np.zeros_like(db.labels_, dtype=bool)
core_samples_mask[db.core_sample_indices_] = True
labels = db.labels_# 聚類數量(排除噪聲點)
n_clusters_ = len(set(labels)) - (1 if -1 in labels else 0)
n_noise_ = list(labels).count(-1)print(f'估計的聚類數量: {n_clusters_}')
print(f'估計的噪聲點數量: {n_noise_}')

在這里插入圖片描述
這個由于特征過多,所以不能做可視化展示,如果想做可視化展示,可以講一個特征和標簽對應,用這個特征來做聚類分析,最后可以做可視化分析。

三、總結

本文介紹了三種常見的聚類算法,對心臟病數據集做DBSCAN 聚類分析。先讀取數據并標準化,設參數完成聚類得簇數與噪聲點數。

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

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

相關文章

【編程干貨】本地用 Ollama + LLaMA 3 實現 Model Context Protocol(MCP)對話服務

模型上下文協議(MCP)本身提供的是一套標準化的通信規則和接口,簡化了客戶端應用的開發。 MCP 實際上是一套規范,官方把整套協議分成「傳輸層 協議層 功能層」三大塊,并對初始化握手、能力協商、數據/工具暴露、安全…

永磁同步電機控制算法-基于新型趨近律的反饋線性化滑模控制

一、原理介紹 針對永磁同步電機傳統PID矢量控制方式無法實現d、q軸電流完全解耦控制的問題,運用反饋線性化理論實現永磁同步電機轉速和d軸電流解耦。針對反饋線性化導致的魯棒性下降問題,利用滑模控制方式提高系統魯棒性,引入新型雙冪次趨近…

德爾菲法和層次分析法是什么

德爾菲法和層次分析法是什么 德爾菲法和層次分析法是兩種常用的決策分析方法 德爾菲法 定義:德爾菲法是一種采用背對背的通信方式征詢專家小組成員的預測意見,經過幾輪征詢,使專家小組的預測意見趨于集中,最后做出符合市場未來發展趨勢的預測結論。實施步驟 組成專家小組…

【windows】win10部分版本的sxs文件下載

Win10部分版本的sxs文件下載 win10 1703 鏈接: https://pan.baidu.com/s/13O5djVSWIhIjBP1ZVtORAA?pwdsdpp 提取碼: sdpp win10 1809 鏈接: https://pan.baidu.com/s/1vUEMQWqWcyTicHLJNox99w?pwddfx4 提取碼: dfx4 win10 1903,1909 鏈接: https://pan.baidu.com/s/1MoKcm3N…

Java項目部署-Springboot+Vue網頁部署上線全教程

SpringbootVue網頁部署上線全教程 文章目錄 SpringbootVue網頁部署上線全教程1.環境說明2.Mysql安裝部署2.1 安裝并修改密碼2.2 防火墻開放 3.Spring Boot項目打包3.1 配置公網ip3.2 安裝 Maven3.3 使用 Maven 打包 Spring Boot 項目3.4 Centos運行Jar包3.4.1 安裝 Java 1.8 環…

FISCO BCOS【初體驗筆記】

飛梭區塊鏈搭建初體驗筆記 環境部署創建四個節點的飛梭區塊鏈用的VMware17 centos 7.9 區塊鏈是飛梭2.0用的webase-frontJava環境的正確安裝Webase-front搭建 智能合約設計一點合約調試筆記 智能合約abi文件轉為go文件后端項目配置相關工具linux常用命令(防忘記&…

內容社區系統開發文檔

1 系統分析 1.1 項目背景 1.2 需求分析 2 系統設計 2.1 系統功能設計 2.2 數據庫設計 2.2.1 數據庫需求分析 2.2.2 數據庫概念結構設計 2.2.3 數據庫邏輯結構設計 2.2.4 數據庫物理結構設計 2.2.5 數據庫視圖設計 2.2.6 函數設計 2.2.7 存儲過程設計 2.2.8 觸發器…

BigemapPro小技巧:調整線方向及延長線

今天為大家分享兩個 BigemapPro 處理矢量數據的小技巧,分別是調整線方向和延長線要素,掌握這些技巧能夠大幅提升數據處理的效率和準確性。 01 調整線方向 在BigemapPro中,線要素其實是帶有方向屬性的,正常情況下看不出來 但是如果…

nt!MiSessionAddProcess函數分析和nt!MmSessionSpace全局變量的關系

第一部分: 1: kd> g Breakpoint 42 hit nt!MiSessionAddProcess: 80ab2fbe 55 push ebp 1: kd> kc # 00 nt!MiSessionAddProcess 01 nt!MmCreateProcessAddressSpace 02 nt!PspCreateProcess 03 nt!NtCreateProcessEx 04 nt!_KiSystemServic…

2025年消防設施操作員考試題庫及答案

一、判斷題 31.消防用水不作他用的技術措施應每季度進行檢查,若發現故障應及時進行處理。() 答案:錯誤 解析:本題考查的是消防水池、高位消防水箱的保養方法。每月檢查消防用水不作他用的技術措施,發現故…

Ray開源程序 是用于擴展 AI 和 Python 應用程序的統一框架。Ray 由一個核心分布式運行時和一組用于簡化 ML 計算的 AI 庫組成

?一、軟件介紹 文末提供程序和源碼下載 Ray開源程序 是用于擴展 AI 和 Python 應用程序的統一框架。Ray 由一個核心分布式運行時和一組用于簡化 ML 計算的 AI 庫組成 二、Ray AI 庫的更多信息 數據:適用于 ML 的可擴展數據集訓練:分布式訓練Tune&…

軟件設計師-軟考知識復習(3)

在磁盤上存儲數據的排列方式會影響I/O服務的總時間。假設每個磁道被劃分成10個物理塊,每個物理塊存放1個邏輯記錄。邏輯記錄R1,R2…R10存放在同一個磁道上,記錄的排列從1到10。 假定磁盤的旋轉速度為10ms/周,磁頭當前處在R1的開始處。若系統…

Unity Editor 擴展:查找缺失的 Image Sprite

在 Unity 開發過程中,缺失的 Sprite 引用(特別是在 UI 元素上)可能導致程序運行時出現問題,尤其是在使用 Image 組件時。當你擁有多個 Prefab 和大量的 UI 資源時,手動檢查每個 Prefab 是否缺失了 Source Image 變得十…

在VTK中使用VTKCamera

文章目錄 概要Cpp代碼概要 在VTK(Visualization Toolkit)中,vtkCamera 類用于控制三維場景中相機的視角。相機決定了你從哪個角度和位置觀察三維場景。使用 vtkCamera 的一般步驟包括創建相機對象、配置相機參數、將相機設置為渲染器的活動相機,以及更新相機視圖。 Cpp代…

【Docker系列】使用格式化輸出與排序技巧

💝💝💝歡迎來到我的博客,很高興能夠在這里和您見面!希望您在這里可以感受到一份輕松愉快的氛圍,不僅可以獲得有趣的內容和知識,也可以暢所欲言、分享您的想法和見解。 推薦:kwan 的首頁,持續學…

臨床智能體AI與環境感知AI的融合:基于python的醫療自然語言處理深度分析

引言 醫療領域的數智化進程正以前所未有的速度推進,人工智能技術的應用尤為顯著。隨著大型語言模型(LLMs)的迅猛發展,醫療AI已從簡單的輔助工具升級為復雜的智能體系統。臨床智能體AI與環境感知AI的融合代表了醫療AI的最新發展方向,為重塑醫療運營自然語言處理提供了全新…

JAVA SE(9)——多態

1.多態的概念&作用 多態(Polymorphism)是面向對象編程的三大基本特性之一(封裝和繼承已經講過了),它允許不同類的對象對同一消息做出不同的響應。具體來說,多態允許基類/父類的引用指向派生類/子類的對象(向上轉型…

GPS定位方案

目錄 一、常用的GPS定位方案包括: 二、主流品牌及熱銷型號 三、常用GPS算法及核心邏輯: 一、基礎定位算法 二、高精度算法 三、輔助優化算法 四、信號處理底層算法 四、基本原理(想自己寫算法的琢磨一下原理) 一、常用的GP…

PCIe - ZCU106(RC) + KU5P(EP) + 固化

目錄 1. 簡介 1.1 Data Mover 1.2 描述符 2. ZCU102 2.1 Ubuntu OS 2.2 USB Host 2.2.1 連接拓撲 2.2.2 設備類型 2.2.3 USB 跳帽設置 2.3 無線網卡 2.4 PCIe Info 2.4.1 Diagram 2.4.2 lspci -tv 2.4.3 lspci -v 2.4.2.1 設備基本信息 2.4.2.2 控制與狀態寄存…

精益數據分析(43/126):媒體網站商業模式的盈利與指標解析

精益數據分析(43/126):媒體網站商業模式的盈利與指標解析 在創業和數據分析的學習旅程中,我們不斷探索各種商業模式的奧秘,今天讓我們一同深入《精益數據分析》,聚焦媒體網站商業模式,剖析其盈…