R 程式設計中的 DBSCAN 聚類是什麼?
介紹
聚類分析是機器學習和資料探勘中的一項基本技術,它可以識別模式並將相似的資料點分組在一起。在各種聚類演算法中,基於密度的噪聲應用空間聚類 (DBSCAN) 作為一種強大的工具脫穎而出,它可以自動發現任意形狀的聚類。在本文中,我們將探討 DBSCAN 背後的概念,並透過清晰簡潔的程式碼示例演示其在 R 程式設計中的實現。
DBSCAN 聚類
在處理包含不同密度或不規則形狀聚類的資料集時,DBSCAN 尤其有價值。與 K 均值或層次聚類等其他傳統聚類技術不同,DBSCAN 是根據密度可達點而不是預定義的距離閾值來確定聚類的。
DBSCAN 的關鍵引數
Epsilon (ε):兩個相鄰點之間被認為屬於同一聚類的最大距離。
MinPts:在 ε 距離內所需的最小相鄰點數,才能將一個點分類為核心點。
邊界點:位於 ε 半徑內但沒有足夠的鄰居被視為核心點的點。
噪聲點:遠離任何聚類的離群值。
DBSCAN 聚類的優勢
能夠處理噪聲:與 K 均值或層次聚類等其他一些聚類演算法不同,DBSCAN 可以有效地處理噪聲資料,將其視為離群值或噪聲,而不是強制將其放入特定的聚類中。
聚類形狀檢測的靈活性:傳統方法通常假設球形或凸形聚類。但是,DBSCAN 擅長識別具有複雜形狀和不同密度的聚類,而無需事先假設。
自動確定聚類數量:與 K 均值等需要預先指定所需聚類數量的方法不同,DBSCAN 不需要事先了解結果聚類的數量 - 它會自動發現最佳數量。
對引數選擇的魯棒性:雖然涉及引數(epsilon 和 minPts),但它們具有直觀的解釋,與許多其他聚類演算法相比,更容易調整。
可擴充套件性強,適用於大型資料集:透過巧妙地利用 k-d 樹或 R 樹等索引結構以及高效的基於密度的計算,DBSCAN 可以很好地擴充套件到高維資料或大型資料集。
使用 DBSCAN 的缺點
引數敏感性:為 epsilon (ε) 和 minPts 選擇適當的值至關重要但也具有挑戰性,因為這些引數在很大程度上取決於資料集特徵,例如底層密度分佈。選擇不合適的值可能會導致聚類合併或建立太多小的、不重要的聚類。
對於密度變化的資料集效率低下:傳統的 DBSCAN 難以處理密度在不同區域差異很大的資料集。雖然有改進的 DBSCAN 等修改版本試圖解決此問題,但它們可能會以增加計算複雜性為代價。
難以處理高維資料:與許多聚類演算法一樣,DBSCAN 在應用於高維資料集時也面臨挑戰,這是由於“維度災難”。在這種情況下,在應用 DBSCAN 之前可能需要特徵選擇或降維技術。
R 程式設計實現層次聚類
DBscan 聚類是透過藉助歐幾里得距離計算距離來實現的。以下程式碼將在鳶尾花資料集上執行 DBSCAN 聚類,然後使用散點圖繪製結果聚類,並以紫色突出顯示聚類。
演算法
步驟 1:首先,我們需要安裝並載入樣本資料集。
步驟 2:在聚類之前,需要進行資料預處理。如果存在,我們可能需要標準化變數或處理缺失值。
步驟 3:根據所選指標(例如歐幾里得距離或曼哈頓距離)計算觀測值之間的差異或距離。
步驟 4:建立 DBSCAN 聚類,我們已經準備好距離矩陣,我們可以使用 R 中的 `hclust()` 函式執行 DBscan 聚類。
步驟 5:生成的“hc”物件儲存後續步驟所需的所有資訊。
步驟 6:繪製散點圖,我們可以透過在 R 中繪製散點圖來視覺化我們的聚類。
示例
#install.packages("fpc") # Load the fpc package library(fpc) # Load the iris dataset data(iris) # Standardize the iris dataset iris_std <- scale(iris[-5]) # Calculate the distance matrix using Euclidean distance distance_mat <- dist(iris_std, method = "euclidean") # Create DBSCAN clusters db_cl <- dbscan(distance_mat, eps = 0.5, MinPts = 5) # Perform hierarchical clustering using Ward's method hc <- hclust(distance_mat, method = "ward.D2") # Plot the resulting dendrogram plot(db_cl, iris_std, main="ed")
輸出
結論
DBSCAN 提供了一種極好的替代方案,可以揭示覆雜資料集中隱藏的模式,而無需依賴預定義的距離或假設聚類的特定形狀。憑藉其能夠自動識別噪聲和離群值,同時能夠靈活地處理單個分析中的不同密度水平的能力,DBSCAN 在各個領域都證明了其價值。