最好免費(fèi)觀看高清播放seo發(fā)帖網(wǎng)站
前文為JoyT的科研之旅第一周——科研工具學(xué)習(xí)及論文閱讀收獲-CSDN博客
DBSCAN 介紹
DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一種基于密度的聚類算法,它能夠識(shí)別出任意形狀的簇,并有效地處理噪聲點(diǎn)。DBSCAN 不需要事先指定聚類的數(shù)量,這是其與許多其他聚類算法(如 K-means)的一個(gè)主要區(qū)別。?
DBSCAN 基本原理
-
核心點(diǎn):如果一個(gè)點(diǎn)的 ? 鄰域內(nèi)至少有
min_samples
個(gè)點(diǎn)(包括點(diǎn)本身),則此點(diǎn)被認(rèn)為是一個(gè)核心點(diǎn)。 -
邊界點(diǎn)和噪聲點(diǎn):距離核心點(diǎn)不遠(yuǎn)(在 ? 范圍內(nèi)),但自身不滿足核心點(diǎn)條件的點(diǎn)被視為邊界點(diǎn)。不屬于核心點(diǎn)或邊界點(diǎn)的點(diǎn)被視為噪聲點(diǎn)。
-
聚類形成:通過連接在 ? 范圍內(nèi)互相可達(dá)的核心點(diǎn),形成聚類。邊界點(diǎn)會(huì)被歸入其所連接的核心點(diǎn)所在的聚類,而噪聲點(diǎn)不被歸入任何聚類。
代碼分析
取前文代碼的DBSCAN部分進(jìn)行介紹:
# DBSCAN去噪
epsilon = 0.3 # DBSCAN的半徑參數(shù)
min_samples = 3 # DBSCAN的最小樣本數(shù)參數(shù)(MinPts)
dbscan = DBSCAN(eps=epsilon, min_samples=min_samples)
clusters = dbscan.fit_predict(np.column_stack((filtered_longitudes, filtered_latitudes)))# 去除噪聲點(diǎn)
denoised_longitudes = filtered_longitudes[clusters != -1]
denoised_latitudes = filtered_latitudes[clusters != -1]
denoised_timestamps = filtered_timestamps[clusters != -1]
代碼中的 DBSCAN 工作流程
-
參數(shù)設(shè)置(與前文呼應(yīng),加入KDC能夠使得參數(shù)個(gè)數(shù)為1):
epsilon
(eps
): 定義了鄰域的半徑大小。在這個(gè)范圍內(nèi)的點(diǎn)被認(rèn)為是鄰近的。min_samples
: 定義了一個(gè)點(diǎn)成為核心點(diǎn)所需的最小鄰居數(shù)目。
-
DBSCAN 實(shí)例化和擬合:
- 創(chuàng)建 DBSCAN 對(duì)象,使用上述參數(shù)。
- 該對(duì)象調(diào)用?
fit_predict
方法對(duì)數(shù)據(jù)進(jìn)行聚類,數(shù)據(jù)由經(jīng)緯度構(gòu)成(filtered_longitudes
,filtered_latitudes
)。
-
噪聲點(diǎn)的處理:
fit_predict
方法返回的clusters
數(shù)組為每個(gè)點(diǎn)指定了一個(gè)聚類標(biāo)簽。噪聲點(diǎn)被標(biāo)記為-1
。- 通過檢查
clusters != -1
來篩選出非噪聲點(diǎn),即那些屬于某個(gè)聚類的點(diǎn)。
-
結(jié)果可視化:
- 在散點(diǎn)圖中繪制去噪后的數(shù)據(jù)。這些點(diǎn)是 DBSCAN 確定為屬于某個(gè)聚類的點(diǎn)。
結(jié)論
在代碼中,DBSCAN 被用來識(shí)別和移除噪聲點(diǎn),只保留那些被歸為某個(gè)聚類的點(diǎn)。這種方法特別適合于處理包含噪聲和具有不規(guī)則形狀簇的數(shù)據(jù),是一種強(qiáng)大且靈活的聚類工具。