日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

常用聚类算法(基于密度的聚类算法

發(fā)布時間:2023/12/13 综合教程 24 生活家
生活随笔 收集整理的這篇文章主要介紹了 常用聚类算法(基于密度的聚类算法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言:

基于密度聚類的經(jīng)典算法 DBSCAN(Density-Based Spatial Clustering of Application with Noise, 具有噪聲的基于密度的空間聚類應(yīng)用)是一種基于高密度連接區(qū)域的密度聚類算法。

DBSCAN的基本算法流程如下:從任意對象P 開始根據(jù)閾值和參數(shù)通過廣度優(yōu)先搜索提取從P 密度可達(dá)的所有對象,得到一個聚類。若P 是核心對象,則可以一次標(biāo)記相應(yīng)對象為當(dāng)前 類并以此為基礎(chǔ)進(jìn)行擴(kuò)展。得到一個完整的聚類后,再選擇一個新的對象重復(fù)上述過程。 若P是邊界對象,則將其標(biāo)記為噪聲并舍棄

缺陷:

如聚類的結(jié)果與參數(shù)關(guān)系較大,導(dǎo)致閾值過大容易將同一聚類分割, 或閾值過小容易將不同聚類合并

固定的閾值參數(shù)對于稀疏程度不同的數(shù)據(jù)不具適應(yīng)性,導(dǎo)致密度小的區(qū)域同一聚類易被分割, 或密度大的區(qū)域不同聚類易被合并

DBSCAN(Density-Based Spatial Clustering of Applications with Noise) 一個比較有代表性的基于密度的聚類算法。與層次聚類方法不同,它將簇定義為密度相 連的點的最大集合,能夠把具有足夠高密度的區(qū)域劃分為簇,并可在有“噪聲”的空間數(shù) 據(jù)庫中發(fā)現(xiàn)任意形狀的聚類。

基于密度的聚類方法是以數(shù)據(jù)集在空間分布上的稠密度為依據(jù)進(jìn)行聚類,無需預(yù)先設(shè)定 簇的數(shù)量,因此特別適合對于未知內(nèi)容的數(shù)據(jù)集進(jìn)行聚類。而代表性算法有:DBSCAN,OPTICS。 以DBSCAN算法舉例,DBSCAN目的是找到密度相連對象的最大集合。

1.DBSCAN算法

首先名詞解釋:

ε(Eps)鄰域:以給定對象為圓心,半徑為ε的鄰域為該對象的ε鄰域

核心對象:若ε鄰域至少包含MinPts個對象,則稱該對象為核心對象

直接密度可達(dá):如果p在q的ε鄰域內(nèi),而q是一個核心對象,則說對象p從對象q出發(fā)是直接密度可達(dá)的

密度可達(dá):如果存在一個對象鏈p1 , p2 , … , pn , p1=q, pn=p, 對于pi ∈D(1<= i <=n), pi+1 是從 pi 關(guān)于ε和MinPts直接密度可達(dá)的, 則對象p是從對象q關(guān)于ε和MinPts密度可達(dá)的

密度相連:對象p和q都是從o關(guān)于ε和MinPts密度可達(dá)的,那么對象p和q是關(guān)于ε和MinPts密度相連的

噪聲: 一個基于密度的簇是基于密度可達(dá)性的最大的密度相 連對象的集合。不包含在任何簇中的對象被認(rèn)為是“噪聲”

邊界點:邊界點不是核心點,但落在某個核心點的鄰域內(nèi)。

DBSCAN 算法根據(jù)以上的定義在數(shù)據(jù)庫中發(fā)現(xiàn)簇和噪聲。簇可等價于集合D中, 這個簇核心對象密度可達(dá)的所有對象的集合。


DBSCAN算法描述:

輸入:包含n個對象的數(shù)據(jù)庫,半徑ε,最少數(shù)目MinPts。

輸出:所有生成的簇,達(dá)到密度要求。

1.REPEAT

2.從數(shù)據(jù)庫中抽取一個未處理過的點;

3.IF 抽出的點是核心點 THEN找出所有從該點密度可達(dá)的對象,形成一個簇

4.ELSE 抽出的點是邊緣點(非核心對象),跳出本次循環(huán),尋找下一點;

5.UNTIL 所有點都被處理;


DBSCAN算法步驟 :

輸入:數(shù)據(jù)集D,參數(shù)MinPts, ε 輸出:簇集合

(1) 首先將數(shù)據(jù)集D中的所有對象標(biāo)記unvisited ;

(2) do

(3) 從D中隨機(jī)選取一個unvisited對象p,并將p標(biāo)記為visited ;

(4) if p的 ε 鄰域 包含的對象數(shù)至少為MinPts個

(5) 創(chuàng)建新簇C ,并把p添加到c中;

(6) 令N為 p的 ε 鄰域 中對象的集合;

(7) for N 中每個點pi

(8) if pi 是unvisited

(9) 標(biāo)記pi 為visited;

(10) if pi 的ε 鄰域 至少有MinPts個 對象,把這些對象添加到N ;

(11) if pi 還不是任何簇的對象。將 pi 添加到 簇C中 ;

(12) end for

(13) 輸出C

(14) Else 標(biāo)記p 為噪聲

(15) Untill 沒有標(biāo)記為unvisited 的對象


下面給出一個樣本事務(wù)數(shù)據(jù)庫(見下表),對它實施DBSCAN算法。

根據(jù)所給的數(shù)據(jù)通過對其進(jìn)行DBSCAN算法,以下為算法的步驟(設(shè)n=12,用戶輸入ε=1,MinPts=4)

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

DBSCAN聚類過程

第1步,在數(shù)據(jù)庫中選擇一點1,由于在以它為圓心的 以1為半徑的圓內(nèi)包含2個點(小于4),因此它不是核心點,選擇下一個點。

第2步,在數(shù)據(jù)庫中選擇一點2,由于在以它為圓心的,以1為半徑的圓內(nèi)包含2個點, 因此它不是核心點,選擇下一個點。

第3步,在數(shù)據(jù)庫中選擇一點3,由于在以它為圓心的,以1為半徑的圓內(nèi)包含3個點, 因此它不是核心點,選擇下一個點。

第4步,在數(shù)據(jù)庫中選擇一點4,由于在以它為圓心的,以1為半徑的圓內(nèi)包含5個點, 因此它是核心點,尋找從它出發(fā)可達(dá)的點(直接可達(dá)4個,間接可達(dá)3個), 聚出的新類{1,3,4,5,9,10,12},選擇下一個點。

第5步,在數(shù)據(jù)庫中選擇一點5,已經(jīng)在簇1中,選擇下一個點。

第6步,在數(shù)據(jù)庫中選擇一點6,由于在以它為圓心的,以1為半徑的圓內(nèi)包含3個點, 因此它不是核心點,選擇下一個點。

第7步,在數(shù)據(jù)庫中選擇一點7,由于在以它為圓心的,以1為半徑的圓內(nèi)包含5個點, 因此它是核心點,尋找從它出發(fā)可達(dá)的點,聚出的新類{2,6,7,8,11},選擇下一個點。

第8步,在數(shù)據(jù)庫中選擇一點8,已經(jīng)在簇2中,選擇下一個點。

第9步,在數(shù)據(jù)庫中選擇一點9,已經(jīng)在簇1中,選擇下一個點。

第10步,在數(shù)據(jù)庫中選擇一點10,已經(jīng)在簇1中,選擇下一個點。

第11步,在數(shù)據(jù)庫中選擇一點11,已經(jīng)在簇2中,選擇下一個點。

第12步,選擇12點,已經(jīng)在簇1中,由于這已經(jīng)是最后一點所有點都以處理,程序終止。

算法執(zhí)行過程

步驟 選擇的點 在ε中點的個數(shù) 通過計算可達(dá)到而找到新的簇
1 1 2
2 2 2
3 3 3
4 4 5 簇C1:{1,3,4,5,9,10,12}
5 5 3 已在一個簇C1中
6 6 3
7 7 5 簇C2:{2,6,7,8,11}
8 8 2 已在一個簇C2中
9 9 3 已在一個簇C1中
10 10 4 已在一個簇C1中
11 11 2 已在一個簇C2中
12 12 2 已在一個簇C1中

DBSCAN的時間復(fù)雜性:

DBSCAN算法要對每個數(shù)據(jù)對象進(jìn)行鄰域檢查時間性能較低。

~DBSCAN的基本時間復(fù)雜度是 O(N*找出Eps領(lǐng)域中的點所需要的時間), N是點的個數(shù)。 最壞情況下時間復(fù)雜度是O(N2)

~在低維空間數(shù)據(jù)中,有一些數(shù)據(jù)結(jié)構(gòu)如KD樹,使得可以有效的檢索特定點給定距離內(nèi)的所有點, 時間復(fù)雜度可以降低到O(NlogN)

DBSCAM的空間復(fù)雜性:

在聚類過程中,DBSCAN一旦找到一個核心對象,即以該核心對象為中心向外擴(kuò)展. 此過程中核心對象將不斷增多,未處理的對象被保留在內(nèi)存中.若數(shù)據(jù)庫中存在龐大的聚類, 將需要很大的存來存儲核心對象信息,其需求難以預(yù)料.

當(dāng)數(shù)據(jù)量增大時,要求較大的內(nèi)存支持 I/0 消耗也很大;低維或高維數(shù)據(jù)中,其空間都是O(N)

總結(jié)

以上是生活随笔為你收集整理的常用聚类算法(基于密度的聚类算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。