天天看點

機器學習--聚類系列--DBSCAN算法

DBSCAN算法

  基本概念:(Density-Based Spatial Clustering of Applications with Noise)

    核心對象:若某個點的密度達到算法設定的門檻值則其為核心點。(即 r 鄰域内點的數量不小于 minPts)

    ε-鄰域的距離門檻值:設定的半徑r

    直接密度可達:若某點p在點q的 r 鄰域内,且q是核心點則p-q直接密度可達。

    密度可達:若有一個點的序列q0、q1、...qk,對任意qi-qi-1是直接密度可達的,則稱從q0到qk密度可達,這實際上是直接密度可達的“傳播”。就像傳銷一樣,發展下線。

    密度相連:若從某核心點p出發,點q和點k都是密度可達的,則稱點q和點k是密度相連的。

    邊界點:屬于某一個類的非核心點,不能發展下線了

    噪聲點:不屬于任何一個類簇的點,從任何一個核心點出發都是密度不可達的,也叫離群點。

  

機器學習--聚類系列--DBSCAN算法

  工作流程

  給定:

  參數D:輸入資料集

  參數ε:指定半徑

  MinPts:密度門檻值(比如5)

    

機器學習--聚類系列--DBSCAN算法

  參數選擇:

    半徑ε,可以根據K距離來設定:找突變點

    K距離:給定資料集P={p(i); i=0,1,...n},計算點P(i)到集合D的子集S中所有點之間的距離,距離按照從小到大的順序排序,d(k)就被稱為k-距離。

    MinPts::k-距離中k的值,一般取的小一些,多次嘗試

  優勢:

  • 不需要指定簇個數
  • 可以發現任意形狀的簇
  • 擅長找到離群點(檢測任務)
  • 兩個參數就夠了

  劣勢:

  • 高維資料有些困難(可以做降維)
  • 參數難以選擇(參數對結果的影響非常大)
  • Sklearn中效率很慢(資料削減政策)

      

機器學習--聚類系列--DBSCAN算法
機器學習--聚類系列--DBSCAN算法

      

機器學習--聚類系列--DBSCAN算法

轉載于:https://www.cnblogs.com/zongfa/p/9344805.html

繼續閱讀