- 機器學習基礎
- ML - 首頁
- ML - 簡介
- ML - 入門
- ML - 基本概念
- ML - 生態系統
- ML - Python庫
- ML - 應用
- ML - 生命週期
- ML - 必備技能
- ML - 實現
- ML - 挑戰與常見問題
- ML - 限制
- ML - 真實案例
- ML - 資料結構
- ML - 數學基礎
- ML - 人工智慧
- ML - 神經網路
- ML - 深度學習
- ML - 獲取資料集
- ML - 分類資料
- ML - 資料載入
- ML - 資料理解
- ML - 資料準備
- ML - 模型
- ML - 監督學習
- ML - 無監督學習
- ML - 半監督學習
- ML - 強化學習
- ML - 監督學習 vs. 無監督學習
- 機器學習資料視覺化
- ML - 資料視覺化
- ML - 直方圖
- ML - 密度圖
- ML - 箱線圖
- ML - 相關矩陣圖
- ML - 散點矩陣圖
- 機器學習統計學
- ML - 統計學
- ML - 均值,中位數,眾數
- ML - 標準差
- ML - 百分位數
- ML - 資料分佈
- ML - 偏度和峰度
- ML - 偏差和方差
- ML - 假設
- 機器學習中的迴歸分析
- ML - 迴歸分析
- ML - 線性迴歸
- ML - 簡單線性迴歸
- ML - 多元線性迴歸
- ML - 多項式迴歸
- 機器學習中的分類演算法
- ML - 分類演算法
- ML - 邏輯迴歸
- ML - K近鄰演算法 (KNN)
- ML - 樸素貝葉斯演算法
- ML - 決策樹演算法
- ML - 支援向量機
- ML - 隨機森林
- ML - 混淆矩陣
- ML - 隨機梯度下降
- 機器學習中的聚類演算法
- ML - 聚類演算法
- ML - 基於中心點的聚類
- ML - K均值聚類
- ML - K中心點聚類
- ML - 均值漂移聚類
- ML - 層次聚類
- ML - 基於密度的聚類
- ML - DBSCAN聚類
- ML - OPTICS聚類
- ML - HDBSCAN聚類
- ML - BIRCH聚類
- ML - 親和傳播
- ML - 基於分佈的聚類
- ML - 凝聚層次聚類
- 機器學習中的降維
- ML - 降維
- ML - 特徵選擇
- ML - 特徵提取
- ML - 向後剔除法
- ML - 向前特徵構建
- ML - 高相關性過濾器
- ML - 低方差過濾器
- ML - 缺失值比率
- ML - 主成分分析
- 強化學習
- ML - 強化學習演算法
- ML - 利用與探索
- ML - Q學習
- ML - REINFORCE演算法
- ML - SARSA強化學習
- ML - 演員-評論家方法
- 深度強化學習
- ML - 深度強化學習
- 量子機器學習
- ML - 量子機器學習
- ML - 使用Python的量子機器學習
- 機器學習雜項
- ML - 效能指標
- ML - 自動工作流程
- ML - 提升模型效能
- ML - 梯度提升
- ML - 自舉匯聚 (Bagging)
- ML - 交叉驗證
- ML - AUC-ROC曲線
- ML - 網格搜尋
- ML - 資料縮放
- ML - 訓練和測試
- ML - 關聯規則
- ML - Apriori演算法
- ML - 高斯判別分析
- ML - 成本函式
- ML - 貝葉斯定理
- ML - 精度和召回率
- ML - 對抗性
- ML - 堆疊
- ML - 輪次
- ML - 感知器
- ML - 正則化
- ML - 過擬合
- ML - P值
- ML - 熵
- ML - MLOps
- ML - 資料洩漏
- ML - 機器學習的盈利模式
- ML - 資料型別
- 機器學習 - 資源
- ML - 快速指南
- ML - 速查表
- ML - 面試問題
- ML - 有用資源
- ML - 討論
機器學習 - HDBSCAN聚類
HDBSCAN聚類的運作方式
HDBSCAN使用互達性圖構建層次聚類,這是一個圖,其中每個資料點都是一個節點,它們之間的邊根據相似性或距離的度量進行加權。如果兩個點的互達距離低於給定的閾值,則透過連線這兩個點來構建該圖。
兩個點之間的互達距離是它們的達距離的最大值,這是衡量一個點從另一個點到達的難易程度的指標。兩個點之間的達距離定義為它們的距離和沿其路徑的任何點的最小密度的最大值。
然後使用最小生成樹 (MST) 演算法從互達性圖中提取層次聚類。MST 的葉節點對應於單個數據點,而內部節點對應於不同大小和形狀的聚類。
然後,HDBSCAN演算法將壓縮樹演算法應用於MST以提取聚類。壓縮樹是MST的緊湊表示,僅包含樹的內部節點。然後在特定級別切割壓縮樹以獲得聚類,切割的級別由使用者定義的最小聚類大小或基於聚類穩定性的啟發式方法確定。
Python實現
HDBSCAN作為一個Python庫可用,可以使用pip安裝。該庫提供HDBSCAN演算法的實現以及一些用於資料預處理和視覺化的有用函式。
安裝
要安裝HDBSCAN,請開啟終端視窗並鍵入以下命令:
pip install hdbscan
用法
要使用HDBSCAN,首先匯入hdbscan庫:
import hdbscan
接下來,我們使用scikit-learn中的make_blobs()函式生成一個樣本資料集:
# generate random dataset with 1000 samples and 3 clusters X, y = make_blobs(n_samples=1000, centers=3, random_state=42)
現在,建立一個HDBSCAN類的例項並將其擬合到資料:
clusterer = hdbscan.HDBSCAN(min_cluster_size=10, metric='euclidean') # fit the data to the clusterer clusterer.fit(X)
這將把HDBSCAN應用於資料集並將每個點分配到一個聚類。為了視覺化聚類結果,您可以繪製資料,並根據其聚類標籤對每個點進行著色:
# get the cluster labels labels = clusterer.labels_ # create a colormap for the clusters colors = np.array([x for x in 'bgrcmykbgrcmykbgrcmykbgrcmyk']) colors = np.hstack([colors] * 20) # plot the data with each point colored according to its cluster label plt.figure(figsize=(7.5, 3.5)) plt.scatter(X[:, 0], X[:, 1], c=colors[labels]) plt.show()
此程式碼將生成資料的散點圖,每個點根據其聚類標籤著色如下:
HDBSCAN還提供了一些可以調整的引數來微調聚類結果:
min_cluster_size - 聚類的最小大小。不屬於任何聚類的點標記為噪聲。
min_samples - 被認為是核心點的點鄰域中的最小樣本數。
cluster_selection_epsilon - 用於聚類選擇的鄰域半徑。
metric - 用於衡量點之間相似性的距離度量。
HDBSCAN聚類的優勢
HDBSCAN比其他聚類演算法具有幾個優勢:
更好地處理不同密度的聚類 - HDBSCAN可以識別不同密度的聚類,這是許多資料集中常見的問題。
能夠檢測不同形狀和大小的聚類 - HDBSCAN可以識別不一定是球形的聚類,這是許多資料集中另一個常見的問題。
無需指定聚類數量 - HDBSCAN不需要使用者指定聚類數量,這在先驗很難確定。
對噪聲具有魯棒性 - HDBSCAN對噪聲資料具有魯棒性,可以將異常值識別為噪聲點。