天天看點

基于密度的聚類之Dbscan算法一.算法概述二.算法基本定義三.算法描述四.算法實作

  DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一個比較有代表性的基于密度的聚類算法。與劃分和層次聚類方法不同,它将簇定義為密度相連的點的最大集合,能夠把具有足夠高密度的區域劃分為簇,并可在噪聲的空間資料庫中發現任意形狀的聚類(筆者認為是因為他不是基于距離的,基于距離的發現的是球狀簇)。

  該算法利用基于密度的聚類的概念,即要求聚類空間中的一定區域内所包含對象(點或其他空間對象)的數目不小于某一給定門檻值。DBSCAN算法的顯著優點是聚類速度快且能夠有效處理噪聲點和發現任意形狀的空間聚類。但是由于它直接對整個資料庫進行操作且進行聚類時使用了一個全局性的表征密度的參數,是以也具有兩個比較明顯的弱點:

  (1)當資料量增大時,要求較大的記憶體支援I/O消耗也很大;

  (2)當空間聚類的密度不均勻、聚類間距差相差很大時,聚類品質較差(有些簇内距離較小,有些簇内距離很大,但是Eps是确定的,是以,大的點可能被誤判斷為離群點或者邊界點,如果Eps太大,那麼小距離的醋内,可能會包含一些離群點或者邊界點,KNN的k也存在同樣的問題)。

  (1)與K-MEANS比較起來,不需要輸入要劃分的聚類個數;

  (2)聚類簇的形狀沒有偏倚(這個不明白啥意思);

  (3)可以在需要時輸入過濾噪聲的參數;

基于密度的聚類之Dbscan算法一.算法概述二.算法基本定義三.算法描述四.算法實作

  DBSCAN算法基于一個事實:一個聚類可以由其中的任何核心對象唯一确定。等價可以表述為:任一滿足核心對象條件的資料對象p,資料庫D中所有從p密度可達的資料對象o所組成的集合構成了一個完整的聚類C,且p屬于C。

基于密度的聚類之Dbscan算法一.算法概述二.算法基本定義三.算法描述四.算法實作

  麼麼哒.............

  注意:prod是數組内元素的乘積,A^n是A*A*....*A,A.^n是A中每個元素的n次方。