1. 程式人生 > >資料探勘,DBSCAN演算法的介紹

資料探勘,DBSCAN演算法的介紹

DBSCAN演算法

  • 密度聚類方法的指導思想是,只要一個區域中的點的密度大於某個閾值就把它加到與之相近的聚類中去.
  • 密度聚類方法的優點:可以克服基於距離的演算法只能發現“類圓形”聚類的缺點,可以發現任意形狀的聚類,它還對噪聲資料不敏感。與傳統的k-means相比,DBSCAN演算法不需要輸入劃分的聚類個數;聚類簇的形狀沒有偏差;可以在需要時,輸入過濾噪聲的引數.還可以處理任意形狀和大小的簇.
  • 密度聚類方法的缺點:計算密度單元的計算複雜度大,需要建立空間索引來降低計算量,對資料維數的伸縮性比較差.
  • 密度聚類的代表演算法有DBSCAN演算法,OPTICS演算法,DENCLUE演算法.
  • 今天我們先介紹DBSCAN演算法.
  • -

DBSCAN演算法設計思想:從資料中抽取一個未處理過的點,然後如果抽取的點是核心點,那麼找出所有從該點密度可達的物件,形成一個簇;如果抽取的點是邊緣點,那麼跳出本次迴圈,尋找下一個物件.終止的條件,就是所有的點都被處理過.

下面,我舉個例子來講解DBSCAN演算法

             樣本事物資料庫

序號 屬性1 屬性2
1 1 0
2 4 0
3 0 1
4 1 1
5 2 1
6 3 1
7 4 1
8 5 1
9 0 2
10 1 2
11 4 2
12 1 3

其中n=12,使用者半徑輸入e=1,MinPts=4
DBSCAN演算法步驟如下:
第一步:在資料庫中選擇序號1,由於在以它為圓心的,以1為半徑的圓內包含2個點(1,4),由於2個點小於4,所以序號1不是核心點,選擇下一個點.

第二步:在資料庫中選擇序號2,由於在以它為圓心的,以1為半徑的圓內包含2個點(4,7),由於2個點小於4,所以序號2不是核心點,選擇下一個點.

第三步:在資料庫中選擇序號3,由於在以它為圓心的,以1為半徑的圓內包含3個點(3,4,9),由於2個點小於4,所以序號3不是核心點,選擇下一個點.

第四步:在資料庫中選擇序號4,由於在以它為圓心的,以1為半徑的圓內包含5個點(1,3,4,5,),由於5個點大於4,所以序號5是核心點,尋找從它出發可達的點,聚出的新類為c1={1,3,4,5,9,10,12},然後選擇下一個點.

第五步:在資料庫中選擇序號5,由於已經在簇c1中,選擇下一個點.

第六步:在資料庫中選擇序號6,由於在以它為圓心的,以1為半徑的圓內包含3個點(5,6,7),由於3個點小於4,所以序號6不是核心點,選擇下一個點.

第七步:在資料庫中選擇序號7,由於在以它為圓心的,以1為半徑的圓內包含5個點(2,6,7,8 ,11),所以序號7是核心點,尋找從它出發可達的點,聚類出的新類c2={2,6,7,8,11}.然後選擇下一個點.

第八步:在資料庫中選擇序號8,已經在簇c2中,選擇下一個點.

第九步:在資料庫中選擇序號9,已經在簇c1中,選擇下一個點.

第十步:在資料庫中選擇序號10,已經在簇c1中,選擇下一個點.

第十一步:在資料庫中選擇序號11,已經在簇c2中,選擇下一個點.

第十二步:在資料庫中選擇序號12,已經在簇c1中,由於所有點的都遍歷過一邊了,所以DBSCAN演算法結束.

聚類的結果為{1,3,4,5,9,10,12}和{2,6,7,8,11}

用途:
DBSCAN演算法可以將具有足夠高密度的影象點劃分為簇,它能找到影象樣本比較密集的部分,概括出影象樣本相對比較集中的類,並且可以在帶有噪聲的影象中進行聚類,完成對影象分割.