首先和大家分享被評為十大數(shù)據(jù)挖掘算法之一的K-means 算法(K為分類的個(gè)數(shù),mean為平均值,該算法的難點(diǎn)即為K的指點(diǎn))
接下來看看R語言如何實(shí)現(xiàn)K-means:
可見R語言的強(qiáng)大性,但是K的指定確實(shí)很有技巧,可以先做一次層次聚類法,得出K取多少會相對合適; K-means優(yōu)點(diǎn): 有效率,且不容易受初始值選擇的影響; 缺點(diǎn): 1、 不能處理非球形的簇; 2、 不能處理不同尺度,不同密度的簇(聚類的球大小層次不齊); 3、 離群值可能會有較大的干擾(因此要先剔除) 基于密度的方法:DBSCAN(Density-Based Spatial Clustering of Applications with Noise) 前面提到的K-means比較適合球形分布的案例,對于下圖所示的點(diǎn)群則效果不好,接下來引入另一種聚類方法來解決這類問題。
首先解釋下基本的概念: r-鄰域:給定點(diǎn)半徑r內(nèi)的區(qū)域 核心點(diǎn):如果一個(gè)點(diǎn)的r-鄰域至少包含最少數(shù)目M個(gè)點(diǎn),則稱該點(diǎn)為核心點(diǎn) 直接密度可達(dá):如果點(diǎn)p在核心點(diǎn)q的r-鄰域內(nèi),則稱p是從q出發(fā)可以直接密度可達(dá) 如果存在點(diǎn)鏈p1,p2, …, pn,p1=q,pn=p,pi+1是從pi關(guān)于r和M直接密度可達(dá),則稱點(diǎn)p是從q關(guān)于r和M密度可達(dá)的(見下圖),注意密度可達(dá)是單向的。 Ps:密度可達(dá)即可以納入同一類; 如果樣本集D中存在點(diǎn)o,使得點(diǎn)p、q是從o關(guān)于 r和M密度可達(dá)的,那么點(diǎn)p、q是關(guān)于r和M密度相連(見下圖)
DBSCAN基本算法:
結(jié)果如下圖:
|
|