【数据挖掘】基于密度的聚类方法 - DBSCAN 方法 ( DBSCAN 原理 | DBSCAN 流程 | 可变密度问题 | 链条现象 | OPTICS 算法引入 | 聚类层次 | 族序概念 )
文章目錄
- I . DBSCAN 簡介
- II . DBSCAN 算法流程
- III . DBSCAN 算法 優缺點
- IV . 可變密度問題
- V . 鏈條現象
- VI . OPTICS 算法原理
- VII . 聚類分組包含關系
- VIII . 根據層次進行聚類
- IX . 族序 ( Cluster Ordering ) 概念
I . DBSCAN 簡介
1 . DBSCAN 算法原理 :
① 聚類條件 : 如果 樣本對象 ppp 與 qqq 有密度連接關系 , 那么 ppp 和 qqq 樣本就會被分到同一個聚類中 ;
② 噪音識別 : 如果 樣本對象 與 其它的樣本對象 沒有密度連接關系 , 那么該樣本就是噪音 ;
2 . DBSCAN 總結 : 一個 聚類 就是 所有 密度相連 的 的 數據樣本 的最大集合 , 密度連接所有可以連接的樣本 , 組成一個聚類 ;
II . DBSCAN 算法流程
1 . 輸入算法參數 : 算法開始時 , 需要輸入兩個參數 ;
① 參數一 : ε\varepsilonε 參數 , 是 ε\varepsilonε-鄰域 的 半徑 ;
② 參數二 : MinPts 參數 , 是 ε\varepsilonε-鄰域中要求的含有的最低樣本個數 , 即閾值 ;
2 . 選擇樣本 : 隨機選擇一個數據樣本 ppp ;
3 . 判定核心對象 : 判定數據樣本 ppp 是否是核心對象 , 通過判定其 ε\varepsilonε-鄰域 中分布的樣本數量是否大于等于 MinPts 閾值 個數 , 也就是其中的樣本分布達到一定的密度 ;
4 . 如果 ppp 是核心對象 :
① 標記聚類分組 : 當前以 ppp 為中心的 ε\varepsilonε-鄰域 中的所有樣本 , 與 ppp 都是直接密度可達的 , 也是密度可達 , 密度連接的 , 因此 ε\varepsilonε-鄰域 中的所有點 , 包括 ppp 點 , 可以劃分到同一個聚類分組中 ;
② 搜索所有密度可達樣本 : 在上面的聚類分組基礎上 , 通過廣度優先搜索 , 找到所有的密度可達的樣本 , 劃分到該聚類分組中 ;
5 . 如果 ppp 是邊界對象 ( 非核心對象 ) : 將 ppp 樣本標記成噪音 , 再隨機地選取另外一個數據樣本進行處理 ;
6 . 迭代要求及算法終止條件 : 繼續選擇樣本 , 執行 2.3.4.5.62 . 3 . 4. 5.62.3.4.5.6 操作 進行迭代 , 直到所有的樣本全部被標記完成 ;
III . DBSCAN 算法 優缺點
1 . DBSCAN 算法優點 :
① 算法復雜度 : DBSCAN 算法復雜度是 O(n)O(n)O(n) , nnn 代表 數據集樣本個數 ;
② 識別模式多 : DBSCAN 算法可以得到任意形狀的聚類分組 , 如凹形 , 馬蹄形 等 ;
③ 魯棒性好 : DBSCAN 算法魯棒性好 , 可以屏蔽異常點 , 噪音 的干擾 ;
④ 不需要設定聚類分組參數 : DBSCAN 算法不需要參數 kkk , 不需要提前指定其聚類分組個數 , 這個參數設置不好 會影響聚類效果 ;
2 . DBSCAN 算法缺點 :
① 需要設置額外參數 : DBSCAN 算法需要設置 ε\varepsilonε-鄰域半徑參數 和 MinPts 鄰域最小樣本閾值 參數 , 這兩個參數只是會影響 ;
② 密度可變 : DBSCAN 算法 對于密度可變的數據集進行聚類分析效果很差 , 這里的密度可變指的是 聚類分組 中的樣本密度不同 ; 數據集樣本中一部分密度大 , 一部分密度小 ;
③ 鏈條現象 : DBSCAN 算法 存在鏈條現象 ;
IV . 可變密度問題
1 . 樣本描述 : 針對密度可變的數據集樣本 , 不同的聚類分組中 , 樣本的密度不同 ; 一部分樣本密度大 , 一部分樣本密度小 ;
示例 : 如 , 聚類 111 中單位面積內樣本有 20個 , 聚類 222 中單位面積內有樣本 4 個 ;
2 . 參數值設定問題 :
① 問題描述 : 這樣為其設置 ε\varepsilonε-鄰域半徑參數 和 MinPts 鄰域最小樣本閾值 參數 時 , 就不太好設置 ;
② 半徑設置小 : 如果半徑設置的小了 , 密度低的聚類 , 可能全部給打散成噪音值 ;
③ 半徑設置大 : 如果半徑設置的大了 可能整個數據集只有一個聚類 ;
3 . 圖示 : 紫色的樣本密度很大 , 綠色的樣本密度很小 , 此時如果設置 ε\varepsilonε-鄰域半徑參數 比較大 , 那么只有一個聚類分組 , 如果設置 ε\varepsilonε-鄰域半徑參數比較小 , 綠色的樣本就會被標記成異常點 , 當做噪音處理 ;
V . 鏈條現象
兩個聚類分組中 , 出現一個鏈條 , 少數個別的樣本 , 將兩個本應該分開的聚類分組 進行了 密度連接 , 導致 兩個聚類分組 變成了一個聚類分組 ;
VI . OPTICS 算法原理
OPTICS 算法 原理 :
① 排序索引 : 給所有的 數據樣本對象 進行排序 , 并為每個樣本對象設置對應的順序 索引值 ;
② 索引值意義 : 表示樣本 基于 密度 的聚類分組 的結構 , 同一個聚類分組的 樣本 , 順序相近 ;
③ 根據索引排列 : 將全體數據集樣本數據 , 根據該索引值 , 排列在坐標系中 , 索引值就是 xxx 軸的坐標值 , 排列的結果就是不同層次的聚類分組 ;
VII . 聚類分組包含關系
1 . 聚類分組包含關系 :
① 前提 : 為 數據集樣本 進行 聚類分組時 , MinPts 鄰域最小樣本閾值 參數不變時 ;
② 密度大的聚類 : 當設置的 ε\varepsilonε-鄰域 的 ε\varepsilonε 半徑比較小的時候 , 其聚類的結果為 C0C_0C0? ;
③ 密度小的聚類 : 當設置的 ε\varepsilonε-鄰域 的 ε\varepsilonε 半徑比較大的時候 , 其聚類的結果為 C1C_1C1? ;
④ 包含關系 : C0C_0C0? 肯定完全包含在 C1C_1C1? 中 ; 密度小的聚類 , 肯定被密度大的聚類包含 ;
2 . 聚類分組示例 :
當設置比較小的 ε\varepsilonε 參數時 , 得到的聚類結果是 C1C_1C1? 和 C2C_2C2? ;
當設置比較大的 ε\varepsilonε 參數時 , 得到的聚類結果是 C3C_3C3? ;
由圖中可以看出 , C3C_3C3? 包含 C1C_1C1? 和 C2C_2C2? , 它們之間具有層次關系 , C3C_3C3? 可以看做 C1C_1C1? 和 C2C_2C2? 的父容器 ;
VIII . 根據層次進行聚類
根據層次進行聚類 :
進行聚類分析時 , 將不同層次的 聚類分組 都劃分出來 , 也就是使用不同的 ε\varepsilonε 參數 , 進行聚類分析 , 最終得出不同的聚類分組結果 , 這些結果之間有層次關系 ;
只針對一個 ε\varepsilonε 參數 進行聚類分組 , 聚類結果很片面 , 效果不佳 ;
IX . 族序 ( Cluster Ordering ) 概念
1 . 族序 ( Cluster Ordering ) 概念 :
① 多層次同時聚類 : 不同層次的聚類分組 , 可以同時進行構建 ;
② 順序處理樣本 : 處理數據集樣本對象時 , 使用特定的順序進行處理 ;
③ 順序擴展 : 數據集樣本對外擴展時 , 按照該順序進行擴展 ,
④ 族序概念 : 該特定順序就是 族序 ( Cluster Ordering ) ;
2 . 聚類順序 : 從 低層 到 高層 ; 從 稠密 到 稀疏 ;
聚類時 , 低層 的聚類分組 要首先構建完成 , 也就是 ε\varepsilonε 參數 較小的聚類分組 ;
3 . 密度可達的兩種情況情況 : 兩個樣本 密度可達 , 有兩種情況 :
① ε\varepsilonε 參數小 : 一種情況是 ε\varepsilonε 參數 較小的時候 , 這兩個樣本就可以密度可達 ;
② ε\varepsilonε 參數大 : 另一種情況是 ε\varepsilonε 參數 取值很大時 , 才可以密度可達 ;
4 . 擴展樣本優先級 : 擴展樣本對象時 , 優先選擇第一種情況 , ε\varepsilonε 參數 較小的時候 就可以密度可達的樣本 ;
5 . 每個樣本對象需要存儲兩個值 : 核心距離 與 可達距離 ;
總結
以上是生活随笔為你收集整理的【数据挖掘】基于密度的聚类方法 - DBSCAN 方法 ( DBSCAN 原理 | DBSCAN 流程 | 可变密度问题 | 链条现象 | OPTICS 算法引入 | 聚类层次 | 族序概念 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据挖掘】基于密度的聚类方法 - DB
- 下一篇: 【数据挖掘】基于密度的聚类方法 - OP