43/100 DBSCAN 🔍 密度聚類演算法,能找出不同密度的數據群!

更新於 發佈於 閱讀時間約 6 分鐘

AI時代系列(3) 機器學習三部曲: 🔹 第一部:《機器學習 —— AI 智慧的啟航》


43/100 第五週:非監督學習


43. DBSCAN 🔍 密度聚類演算法,能找出不同密度的數據群!


DBSCAN(Density-Based Spatial Clustering of Applications with Noise)🔍

密度聚類演算法,能找出不同密度的數據群,並自動剔除離群值!

________________________________________


✅ 核心概念:


DBSCAN 是一種基於密度的非監督式聚類算法,透過判斷資料點周圍的密度來分群,適合處理形狀不規則、分布不均的數據,並且能有效識別離群點(Outliers)。

________________________________________


✅ 關鍵特色:


不需事先指定群數(K)

能夠辨識任意形狀的群集

天生支援離群值偵測,將不屬於任何群的點標為「雜訊」

適合用於含有雜訊或不規則分布的資料集

________________________________________


✅ 三大概念定義:


名稱 說明


ε(Epsilon 半徑): 判定鄰居的距離閾值

MinPts(最小點數): 成為核心點所需的最少鄰居數

核心點(Core Point): 半徑 ε 內鄰居數 ≥ MinPts 的點

邊界點(Border Point): 鄰居不足 MinPts,但落在核心點 ε 範圍內的點

雜訊點(Noise): 既非核心點也非邊界點的離群點

________________________________________


✅ 演算法流程簡單理解:


1️⃣ 對每個點計算 ε 範圍內的鄰居數

2️⃣ 如果鄰居數 ≥ MinPts → 核心點 → 展開群集

3️⃣ 若不夠,但落在其他核心點的 ε 內 → 邊界點

4️⃣ 其他皆視為 雜訊點(Outliers)

________________________________________


✅ 適用場景:


地理空間數據分析(GPS、地圖)

天文觀測中的星團識別

社群網路分析

異常偵測(Anomaly Detection)

________________________________________


✅ 優點與缺點總覽:


✅ 優點


自動找出群數,適合不規則形狀資料

可偵測離群點、雜訊

對群內密度變化具彈性


⚠ 缺點


需手動調整 ε 和 MinPts,影響大

高維度資料效果不佳(距離計算困難)

對群內密度變化具彈性 遇到密度差異太大時表現有限

________________________________________


✅ Python 簡單實作範例


python


import numpy as np

import matplotlib.pyplot as plt

from sklearn.cluster import DBSCAN

from sklearn.datasets import make_moons


# 設定中文字型

plt.rcParams['font.sans-serif'] = ['Microsoft JhengHei']

plt.rcParams['axes.unicode_minus'] = False


# 產生月亮形狀數據

X, _ = make_moons(n_samples=300, noise=0.05, random_state=42)


# 執行 DBSCAN 聚類

dbscan = DBSCAN(eps=0.2, min_samples=5)

y_db = dbscan.fit_predict(X)


# 視覺化結果

plt.scatter(X[:, 0], X[:, 1], c=y_db, cmap='plasma')

plt.title("DBSCAN 聚類結果")

plt.show()



這段程式碼展示了如何使用 DBSCAN(一種密度式聚類演算法)對非線性結構的資料進行分群分析。首先透過 make_moons 產生具有兩個月亮形狀的資料集,並加入些許雜訊來模擬真實情境。接著使用 DBSCAN,設定鄰域半徑 eps=0.2 與最小樣本數 min_samples=5,辨識出密度較高區域中的核心點與邊界點,並將雜訊標記為 -1。最後以顏色區分不同群體,將聚類結果視覺化。此方法特別適合處理形狀不規則或非球狀分布的資料。


________________________________________


✅ 與 K-Means、階層式聚類比較:


方法 特點 適用場景


K-Means: 對球形分群效果好 適合群數已知 資料分布均勻


階層式聚類: 分層結構明確 適合樣本量小 需視覺化關係


DBSCAN:抗雜訊、可辨識不規則形狀 適合含異常值、非線性分布資料

________________________________________


✅ 總結金句:


💡 「DBSCAN 是密度感知型聚類利器,能自動抓出群集與異常,特別適合地理、天文、社群分析!」




留言
avatar-img
留言分享你的想法!
avatar-img
Hansen W的沙龍
3會員
106內容數
AIHANS沙龍是一個結合AI技術實戰、產業策略與自我成長的知識平台,主題涵蓋機器學習、生成式AI、創業經驗、財務規劃及哲學思辨。這裡不只提供系統化學習資源與實作案例,更強調理性思維與行動力的結合。無論你是AI初學者、創業者,還是追求人生升維的行者,都能在這裡找到前進的方向與志同道合的夥伴。
Hansen W的沙龍的其他內容
2025/05/28
階層式聚類以計算樣本距離,從「一點一群」逐步合併成樹狀結構;免先設定 K 值、能直觀呈現親疏遠近,適用基因分析、客戶分層與社群關係探索,但耗時、對離群值敏感且無法回溯合併。
Thumbnail
2025/05/28
階層式聚類以計算樣本距離,從「一點一群」逐步合併成樹狀結構;免先設定 K 值、能直觀呈現親疏遠近,適用基因分析、客戶分層與社群關係探索,但耗時、對離群值敏感且無法回溯合併。
Thumbnail
2025/05/28
K-Means 是經典非監督聚類:AI 依據資料相似度自動將樣本分成 K 群,流程「指派→更新」迭代至收斂。速度快、易實作,適合客戶分群與圖像壓縮;但須先選 K,對初始中心與離群值敏感,可用 Elbow 曲線或 Silhouette 分數判斷最佳 K。
Thumbnail
2025/05/28
K-Means 是經典非監督聚類:AI 依據資料相似度自動將樣本分成 K 群,流程「指派→更新」迭代至收斂。速度快、易實作,適合客戶分群與圖像壓縮;但須先選 K,對初始中心與離群值敏感,可用 Elbow 曲線或 Silhouette 分數判斷最佳 K。
Thumbnail
2025/05/28
分類評估不只看準確率,依任務重點選擇精準率、召回率、F1 或 ROC-AUC:詐欺偵測求精準,癌症篩檢重召回,不平衡資料看 AUC,F1 兼顧兩者;掌握指標特性,才能對模型調參、比較與落地部署,記住:指標選錯,決策也會錯!
Thumbnail
2025/05/28
分類評估不只看準確率,依任務重點選擇精準率、召回率、F1 或 ROC-AUC:詐欺偵測求精準,癌症篩檢重召回,不平衡資料看 AUC,F1 兼顧兩者;掌握指標特性,才能對模型調參、比較與落地部署,記住:指標選錯,決策也會錯!
Thumbnail
看更多
你可能也想看
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
全球科技產業的焦點,AKA 全村的希望 NVIDIA,於五月底正式發布了他們在今年 2025 第一季的財報 (輝達內部財務年度為 2026 Q1,實際日曆期間為今年二到四月),交出了打敗了市場預期的成績單。然而,在銷售持續高速成長的同時,川普政府加大對於中國的晶片管制......
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 總結一下目前有的素材: AI說書 - 從0開始 - 103:資料集載入 AI說書 - 從0開始 - 104:定義資料清洗的函數 AI說書 - 從0開始 - 105
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 總結一下目前有的素材: AI說書 - 從0開始 - 103:資料集載入 AI說書 - 從0開始 - 104:定義資料清洗的函數 AI說書 - 從0開始 - 105
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧 AI說書 - 從0開始 - 87 說:Wang 等人 2019 年的論文,提供了合理答案的選擇 (Choice of Plausible Answers, COP
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:AI
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:AI
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:AI
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:AI
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:AI
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:AI
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:AI
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:AI
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:AI
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 目前我們已經完成: Single-Head Attention 數學說明:AI說書 - 從0開始 - 52 Multi-Head Attention 數學說明:AI
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧我們在AI說書 - 從0開始 - 6中說當Context長度是n,且每個字用d維度的向量表示時有以下結論: Attention Layer的複雜度是O(n^2 *
Thumbnail
我想要一天分享一點「LLM從底層堆疊的技術」,並且每篇文章長度控制在三分鐘以內,讓大家不會壓力太大,但是又能夠每天成長一點。 回顧我們在AI說書 - 從0開始 - 6中說當Context長度是n,且每個字用d維度的向量表示時有以下結論: Attention Layer的複雜度是O(n^2 *
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News