K-Means和DBSCAN有什麼區別?
K-Means
K-means 聚類是一種劃分演算法。K-means 將資料集中的每個資料重新分配到新形成的聚類中的一個。資料或資料點是使用距離或相似性度量分配給相鄰聚類的。
在 k-means 中,一個物件被生成到最近的中心。它可以定義不能連結的約束,並且它將 k-means 中的中心分配過程修改為最接近的適用中心分配。
當物件按順序建立到中心時,在每一步它都可以提供到目前為止的分配不會破壞某些不能連結的約束。一個物件被建立到最接近的中心,因此分配尊重某些不能連結的約束。
DBSCAN
DBSCAN 代表基於密度的應用空間聚類噪聲。它是一種基於密度的聚類演算法。該演算法將密度足夠高的區域改進為聚類,並在存在噪聲的空間資料庫中發現任意結構的聚類。它將聚類定義為最大密度連線點的集合。
基於密度的聚類是一組密度連線的物件,在密度可達性方面是最大的。每個不包含在某些聚類中的物件都被認為是噪聲。
DBSCAN 透過檢查資料庫中每個點的 ε-鄰域來檢查聚類。如果點 p 的 ε-鄰域包含超過 MinPts,則會生成一個以 p 為核心元素的新聚類。DBSCAN 迭代地從這些核心元素中精確地組裝密度可達的物件,這可能包括合併一些密度可達的聚類。當沒有新點可以新增到任何聚類時,該過程結束。
讓我們看看 K-Means 和 DBSCAN 之間的比較。
| K-Means | DBSCAN |
|---|---|
| K-means 通常會對所有物件進行聚類。 | DBSCAN 會丟棄它定義為噪聲的物件。 |
| K-means 需要一個基於原型的聚類概念。 | DBSCAN 需要一個基於密度的概念。 |
| K-means 難以處理非球形聚類和多種尺寸的聚類。 | DBSCAN 用於處理多種尺寸和結構的聚類,並且不受噪聲或異常值的影響。 |
| K-means 可用於具有清晰質心的資料,包括平均值或中位數。 | DBSCAN 需要其密度定義,這取決於傳統的歐幾里得密度概念,對於資料來說是重要的。 |
| K-means 可用於稀疏的高維資料,包括檔案資料。 | DBSCAN 通常對於此類資訊實現效果不佳,因為傳統的歐幾里得密度定義不適用於高維資料。 |
| 基本的 K-means 演算法類似於一種統計聚類方法(混合模型),該方法認為所有聚類都來自具有多個均值但協方差矩陣相等球形高斯分佈。 | DIISCAN 對記錄的分佈不作任何假設。 |
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP