kmeans和dbscan區(qū)別?
1)K均值和DBSCAN都是將每個對象指派到單個簇的劃分聚類算法,但是K均值一般聚類所有對象,而DBSCAN丟棄被它識別為噪聲的對象。
2)K均值使用簇的基于原型的概念,而DBSCAN使用基于密度的概念。
3)K均值很難處理非球形的簇和不同大小的簇。DBSCAN可以處理不同大小或形狀的簇,并且不太受噪聲和離群點的影響。當(dāng)簇具有很不相同的密度時,兩種算法的性能都很差。
4)K均值只能用于具有明確定義的質(zhì)心(比如均值或中位數(shù))的數(shù)據(jù)。DBSCAN要求密度定義(基于傳統(tǒng)的歐幾里得密度概念)對于數(shù)據(jù)是有意義的。
5)K均值可以用于稀疏的高維數(shù)據(jù),如文檔數(shù)據(jù)。DBSCAN通常在這類數(shù)據(jù)上的性能很差,因為對于高維數(shù)據(jù),傳統(tǒng)的歐幾里得密度定義不能很好處理它們。
6)K均值和DBSCAN的最初版本都是針對歐幾里得數(shù)據(jù)設(shè)計的,但是它們都被擴(kuò)展,以便處理其他類型的數(shù)據(jù)。
7)基本K均值算法等價于一種統(tǒng)計聚類方法(混合模型),假定所有的簇都來自球形高斯分布,具有不同的均值,但具有相同的協(xié)方差矩陣。DBSCAN不對數(shù)據(jù)的分布做任何假定。
8)K均值DBSCAN和都尋找使用所有屬性的簇,即它們都不尋找可能只涉及某個屬性子集的簇。
9)K均值可以發(fā)現(xiàn)不是明顯分離的簇,即便簇有重疊也可以發(fā)現(xiàn),但是DBSCAN會合并有重疊的簇。
10)K均值算法的時間復(fù)雜度是O(m),而DBSCAN的時間復(fù)雜度是O(m^2),除非用于諸如低維歐幾里得數(shù)據(jù)這樣的特殊情況。
11)DBSCAN多次運行產(chǎn)生相同的結(jié)果,而K均值通常使用隨機(jī)初始化質(zhì)心,不會產(chǎn)生相同的結(jié)果。
12)DBSCAN自動地確定簇個數(shù),對于K均值,簇個數(shù)需要作為參數(shù)指定。然而,DBSCAN必須指定另外兩個參數(shù):Eps(鄰域半徑)和MinPts(最少點數(shù))。
13)K均值聚類可以看作優(yōu)化問題,即最小化每個點到最近質(zhì)心的誤差平方和,并且可以看作一種統(tǒng)計聚類(混合模型)的特例。DBSCAN不基于任何形式化模型。