數據處理: OPTICS聚類及Python實現

1.? 基本原理

OPTICS(Ordering Points To Identify the Clustering Structure)是一種基于密度的聚類算法,可視為DBSCAN的改進版本。它能夠識別不同密度的簇,并自動發現數據中的層次化聚類結構,適用于復雜分布的數據集。適合如下應用場景:

  • 地理空間數據分析:識別不同密度的城市熱點區域。
  • 生物信息學:基因表達數據的層次化聚類。
  • 異常檢測:通過可達性圖識別離群點(高可達距離的點)。
  • 圖像分割:處理紋理密度不均勻的圖像。

關鍵概念

DBSCAN的局限性

  • 對全局參數eps(鄰域半徑)敏感,難以處理密度變化大的數據。

  • 無法直接輸出層次化聚類結果。

OPTICS的改進

  • 通過計算可達距離(Reachability Distance),避免固定eps的限制。

  • 生成可達性圖(Reachability Plot),支持多尺度聚類分析。

術語定義
核心距離使點成為核心對象的最小半徑(類似DBSCAN的eps)。
可達距離p到點o的可達性,定義為max(核心距離(o), 歐氏距離(o,p))
簇排序通過可達距離生成數據點的有序列表,反映密度結構。

算法步驟

  1. 初始化

    • 設定參數min_samples(核心點的最小鄰域點數)和max_eps(可選,限制搜索范圍)。

    • 為每個點計算核心距離和可達距離。

  2. 生成有序列表

    • 從任意未訪問點開始,擴展其eps-鄰域。

    • 若鄰域內點數≥min_samples,標記為核心點,并計算其鄰域點的可達距離。

    • 按可達距離從小到大將點加入有序列表。

  3. 提取簇結構

    • 通過可達性圖識別“山谷”區域(低可達距離),每個山谷對應一個簇。

    • 使用參數xieps切割可達性圖,提取最終聚類。

OPTICS與HDBSCAN對比如下:

特性HDBSCANOPTICS
基礎算法基于DBSCAN的層次化改進基于DBSCAN的密度排序擴展
核心思想通過層次聚類提取穩定簇,自動選擇簇生成可達性圖,通過閾值提取簇
簇提取方式基于最小簇大小和最小樣本數基于可達距離和ξ(xi)參數
噪聲處理明確區分噪聲點(標簽=-1)可通過參數過濾噪聲

參數HDBSCANOPTICS
關鍵參數min_cluster_size,?min_samplesmin_samples,?xi,?eps
距離度量支持任意距離(如歐式、余弦)通常使用歐式距離
自動化程度自動確定簇數需手動設置ξ或eps提取簇
優點

自動確定簇數:無需預設簇數量。

處理變密度數據:適應不同密度的簇。

魯棒性強:對噪聲和參數選擇不敏感。

可視化支持:可達性圖直觀展示聚類結構。

靈活性高:通過ξ參數動態提取簇。

缺點

計算復雜度高:大數據集可能較慢。

需要調參min_cluster_size影響結果。

手動提取簇:需人工干預選擇閾值。

參數敏感xieps影響結果穩定性。

場景HDBSCANOPTICS
自動聚類? 最佳選擇?? 需手動提取簇
變密度數據? 表現優異? 需調整ξ參數
噪聲數據? 明確標記噪聲? 需后處理過濾
可視化分析?? 有限支持? 可達性圖直觀
大規模數據?? 較慢(可近似優化)?? 中等規模更適用

2. Python實現

from sklearn.cluster import OPTICS
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_moons# 生成示例數據(月牙形分布)
X, _ = make_moons(n_samples=300, noise=0.05, random_state=42)# OPTICS模型
# min_samples:核心點的最小鄰域點數
# xi:決定簇邊界陡峭度的閾值(0~1)
# min_cluster_size:最小簇大小(可選)
clustering = OPTICS(min_samples=10, xi=0.05, min_cluster_size=0.1)# 擬合并預測
clustering.fit(X)
labels = clustering.labels_# 可視化
plt.scatter(X[:, 0], X[:, 1], c=labels, cmap='viridis', s=10)
plt.title("OPTICS Clustering")
plt.show()

參數說明

參數作用
min_samples定義核心點的鄰域最小點數(值越小,對噪聲越敏感)。
xi控制簇邊界的陡峭度(較小值生成更多小簇)。
min_cluster_size簇的最小樣本比例(0~1)或絕對數量。
max_eps限制鄰域搜索的最大半徑(若為np.inf,則完全依賴min_samples)。

可達性圖解讀

  • 低可達距離的區域(“山谷”)代表高密度簇。

  • 高峰值點可能是噪聲或簇邊界。

# 繪制可達性圖
space = np.arange(len(X))
reachability = clustering.reachability_[clustering.ordering_]
labels = clustering.labels_[clustering.ordering_]plt.figure(figsize=(10, 5))
plt.plot(space, reachability, 'k-', alpha=0.6)
plt.scatter(space, reachability, c=labels, cmap='viridis', s=10)
plt.ylabel('Reachability Distance')
plt.title('Reachability Plot')
plt.show()

層次化簇提取

通過調整xi或手動切割可達性圖,可提取不同密度的簇:

# 使用不同xi值提取簇
clustering_xi = OPTICS(min_samples=10, xi=0.1).fit(X)
labels_xi = clustering_xi.labels_plt.scatter(X[:, 0], X[:, 1], c=labels_xi, cmap='viridis', s=10)
plt.title(f"OPTICS with xi=0.1 (Clusters: {len(np.unique(labels_xi))})")
plt.show()

3. 總結

特性OPTICSDBSCAN
參數敏感性僅需min_samples,對eps不敏感依賴epsmin_samples
輸出結果可達性圖 + 層次化簇單一密度閾值下的硬劃分
計算復雜度較高(需維護有序列表)較低
適用場景多密度簇、層次化分析單一密度、簡單分布

優點

  • 無需預設eps,適應多密度數據。

  • 可輸出層次化聚類結構。

  • 對噪聲魯棒性強。

缺點

  • 計算復雜度高于DBSCAN(近似于O(n log n))。

  • 參數xi的選擇需要經驗或調優。自動選擇xi:基于可達性圖的梯度變化自動切割(如sklearn.cluster.cluster_optics_xi)。

  • 高維數據可能表現不佳(需配合降維)。


進階技巧

  • 加速計算:使用KDTreeBallTree優化鄰域搜索(通過metric_params設置)

  • 處理大數據集:結合HDBSCAN(基于OPTICS思想的擴展算法)

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

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

相關文章

PyCharm 在 Linux 上的完整安裝與使用指南

PyCharm 在 Linux 上的完整安裝與使用指南—目錄 一、PyCharm 簡介二、下載與安裝1. 下載 PyCharm2. 安裝前的依賴準備3. 安裝步驟方法 1:通過 Snap 安裝(推薦)方法 2:手動安裝(從官網下載 .tar.gz 文件)方…

【React】路由器 React-Router

安裝路由模式路由組件和屬性 (Link、NavLink、Outlet、Routes、Navigate、element)路由傳參 ( Hook:useParams 、useSearchParams )路由跳轉(Hook:useNavigate)路由的構建 前端路由指的是一種將瀏覽器URL與特定頁面或視圖關聯起來…

Flowable7.x學習筆記(十)分頁查詢已部署 BPMN XML 流程

前言 上一篇文章我們已經完成了流程的部署功能,那么下一步就是要激活流程了,但是我們要需要明確的指定具體要激活部署后的哪一條流程,所以我們先把已部署的基礎信息以及具體定義信息分頁查詢出來,本文先把基礎代碼生成以及完成分頁…

【論文閱讀23】-地下水預測-TCN-LSTM-Attention(2024-11)

這篇論文主要圍繞利用深度學習模型檢測地下水位異常以識別地震前兆展開。 [1] Chen X, Yang L, Liao X, et al. Groundwater level prediction and earthquake precursor anomaly analysis based on TCN-LSTM-attention network[J]. IEEE Access, 2024, 12: 176696-176718. 期刊…

electron從安裝到啟動再到打包全教程

目錄 介紹 安裝 修改npm包配置 執行安裝命令 源代碼 運行 打包 先安裝git, 安裝打包工具 導入打包工具 執行打包命令 總結 介紹 electron確實好用,但安裝是真的要耗費半條命。每次安裝都會遇到各種問題,然后解決了之后。后面就不需要安裝了,但有時候比如電腦重裝…

【Rust 精進之路之第4篇-數據基石·上】標量類型:整數、浮點數、布爾與字符的精妙之處

系列: Rust 精進之路:構建可靠、高效軟件的底層邏輯 作者: 碼覺客 發布日期: 2025-04-20 引言:構成萬物的“原子”——標量類型 在上一篇文章【變量觀】中,我們深入探討了 Rust 如何通過 let、mut、const…

消息中間件RabbitMQ:簡要介紹及其Windows安裝流程

一、簡要介紹 定義:RabbitMQ 是一個開源消息中間件,用于實現消息隊列和異步通信。 場景:適用于分布式系統、異步任務處理、消息解耦、負載均衡等場景。 比喻:RabbitMQ 就像是快遞公司,負責在不同系統間安全快速地傳遞…

Docker概念詳解

文章目錄 一、Docker:容器化應用的基石1.1 環境1.2 Docker 是什么1.3 Docker鏡像1.3.1 基礎鏡像(Base Image)1.3.2 Dockerfile1.3.3 容器鏡像(Container Image) 1.4 Registry1.5 容器1.6 Docker VS 虛擬機 二、Docker 的架構原理2.1 C/S軟件架…

linux查看及修改用戶過期時間

修改用戶有效期 密碼到期時間 sudo chage -E 2025-12-31 username sudo chage -M 180 username sudo chage -d $(date %F) username 查詢用戶密碼到期時間 for user in $(cat /etc/passwd |cut -d: -f1); do echo $user; chage -l $user | grep "Password expires"; …

CGAL 計算直線之間的距離(3D)

文章目錄 一、簡介二、實現代碼三、實現效果一、簡介 這里的計算思路很簡單: 1、首先將兩個三維直線均平移至過原點處,這里兩條直線可以構成一個平面normal。 2、如果兩個直線平行,那么兩條直線之間的距離就轉換為直線上一點到另一直線的距離。 3、如果兩個直線不平行,則可…

<項目代碼>YOLO小船識別<目標檢測>

項目代碼下載鏈接 YOLOv8是一種單階段(one-stage)檢測算法,它將目標檢測問題轉化為一個回歸問題,能夠在一次前向傳播過程中同時完成目標的分類和定位任務。相較于兩階段檢測算法(如Faster R-CNN)&#xff0…

基于RK3588+FPGA+AI YOLO全國產化的無人船目標檢測系統(二)平臺設計

基于項目需求確定國產 AI 平臺的總體架構設計,完成硬件單元的選擇和搭建以及開發工具鏈的配置工作。 4.1 國產 AI 平臺總體架構 本文設計了一套靈活高效的國產 AI 平臺總體架構,設計方法是在嵌入式平 臺上使用串行總線( Peripheral Co…

Typescript中的泛型約束extends keyof

概要 本文主要分享Typescript中泛型約束的使用方法。在開發過程中,通過使用該方法,可以在編譯階段,幫助我們查找到一些潛在的空值引用錯誤。 代碼和實現 我們預先定義了IUser接口,接口包括了id,姓名,性別…

C++ 2025 展望:現代編程需求與新興技術驅動下的變革

C 作為一門成熟的語言,在多個領域(嵌入式系統、高性能計算、圖形渲染、游戲開發等)依舊占據重要地位。在 2024 年,C 開發繼續在許多傳統領域保持強勁的勢頭,同時也面臨著新的挑戰與發展方向。展望 2025 年,…

包管理工具有哪些?主流軟件分享

常見的包管理工具主要有:npm、Yarn、pnpm、Composer、Maven、pip、Conda 等,其中 npm 是目前全球使用最廣泛的JavaScript包管理工具,以豐富的生態、便捷的使用體驗以及強大的社區支持聞名。npm具備依賴管理、版本控制、腳本執行等強大功能&am…

2025年世界職業院校技能大賽實施方案(意見稿)

為貫徹落實《教育強國建設規劃綱要(2024—2035年)》,進一步提升世界職業院校技能大賽(以下簡稱“大賽”)內涵質量,發揮大賽引領作用,提升高技能人才培養質量,服務現代職業教育體系建…

Redis 慢查詢分析與優化

Redis 慢查詢分析與優化 參考書籍 : https://weread.qq.com/web/reader/d5432be0813ab98b6g0133f5kd8232f00235d82c8d161fb2 以下從配置參數、耗時細分、分析工具、優化策略四個維度深入解析 Redis 慢查詢問題,結合實戰調優建議,幫助開發者…

AI之pdf解析:Tesseract、PaddleOCR、RapidPaddle(可能為 RapidOCR)和 plumberpdf 的對比分析及使用建議

目錄標題 Tesseract、PaddleOCR、RapidPaddle(可能為 RapidOCR)和 plumberpdf 的對比分析1. Tesseract類型: 開源 OCR 引擎特點:缺點:適用場景: 2. PaddleOCR (推薦)類型:特點:缺點:適用場景: 復雜版式文檔、多語言混合文本、需要高精度識別的場景&#…

算法 | 成長優化算法(Growth Optimizer,GO)原理,公式,應用,算法改進研究綜述,matlab代碼

===================================================== github:https://github.com/MichaelBeechan CSDN:https://blog.csdn.net/u011344545 ===================================================== 成長優化算法 一、算法原理二、核心公式三、應用領域四、算法改進研究五…

網絡原理(TCP協議—協議格式,性質(上),狀態)

目錄 1.TCP協議段格式。 2.TCP協議傳輸時候的性質。 2.1確認應答。 2.2超時重傳。 2.3連接管理。 2.3.1 三次握手。 2.3.2四次揮手。 3.TCP常見的狀態。 1.TCP協議段格式。 TCP協議段是由首部和數據兩部分構成的。首部包含了TCP通信所需要的各種控制信息,而…