天天看點

理論:聚類算法思路總結

1.cost function

1.1 距離

常見的為歐式距離(L1 norm)&&p=2,拓展的可以有闵可夫斯基距離(L2 norm)&&p=1:

理論:聚類算法思路總結

當p趨向于無窮的時候,切比雪夫距離(Chebyshev distance):

理論:聚類算法思路總結
理論:聚類算法思路總結

紅色的時候為切比雪夫距離,藍色為闵可夫斯基距離,綠色為歐式距離。

1.2相似系數

夾角餘弦及相關系數,相關系數不受線性變換的影響,但是計算速度遠慢于距離計算。

1.3dynamic time warping動态時間規整

舉例子:

序列A:1,1,1,10,2,3,序列B:1,1,1,2,10,3

歐式距離:distance[i][j]=(b[j]-a[i])*(b[j]-a[i])來計算的話,總的距離和應該是128

應該說這個距離是非常大的,而實際上這個序列的圖像是十分相似的。因為序列A中的10對應得是B中的2,A中的2對應的B中的10,導緻計算膨脹,現在将A中的10對應B中的10,A中的1對應B中的2再計算,膨脹因素會小很多(時間前推一步)。

2.聚類算法

2.1分層聚類:

自上而下:所有點先聚為一類,然後分層次的一步一步篩出與目前類别差異最大的點

自下而上:所有點先各自為一類,組合成n個類的集合,然後尋找出最靠近的兩者聚為新的一類,循環往複

數值類分類:(适用于計算量巨大或者資料量巨大的時候)

BIRCH算法,層次平衡疊代規約和聚類,

主要參數包含:聚類特征和聚類特征樹:

聚類特征:

給定N個d維的資料點{x1,x2,....,xn},CF定義如下:CF=(N,LS,SS),其中,N為子類中的節點的個數,LS是子類中的N個節點的線性和,SS是N個節點的平方和

存在計算定義:CF1+CF2=(n1+n2, LS1+LS2, SS1+SS2)

假設簇C1中有三個資料點:(2,3),(4,5),(5,6),則CF1={3,(2+4+5,3+5+6),(2^2+4^2+5^2,3^2+5^2+6^2)}={3,(11,14),(45,70)}

假設一個簇中,存在質心C和半徑R,若有xi,i=1...n個點屬于該簇,質心為:C=(X1+X2+...+Xn)/n,R=(|X1-C|^2+|X2-C|^2+...+|Xn-C|^2)/n

其中,簇半徑表示簇中所有點到簇質心的平均距離。當有一個新點加入的時候,屬性會變成CF=(N,LS,SS)的統計值,會壓縮資料。

聚類特征樹:

内節點的平衡因子B,子節點的平衡因子L,簇半徑T。

理論:聚類算法思路總結

B=6,深度為3,T為每個子節點中簇的範圍最大不能超過的值,T越大簇越少,T越小簇越多。

名義分類:

ROCK算法:凝聚型的層次聚類算法

1.如果兩個樣本點的相似度達到了門檻值(θ),這兩個樣本點就是鄰居。門檻值(θ)有使用者指定,相似度也是通過使用者指定的相似度函數計算。常用的分類屬性的相似度計算方法有:Jaccard系數,餘弦相似度

Jaccard系數:J=|A∩B|/|A∪B|,一般用于分類變量之間的相似度

餘弦相似度:【-1,1】之間,越趨近于0的時候,方向越一緻,越趨向同一。

2.目标函數(criterion function):最終簇之間的連結總數最小,而簇内的連結總數最大

3.相似度合并:遵循最終簇之間的連結總數最小,而簇内的連結總數最大的規則計算所有對象的兩兩相似度,将相似性最高的兩個對象合并。通過該相似性度量不斷的凝聚對象至k個簇,最終計算上面目标函數值必然是最大的。

load('country.RData')

d<-dist(countries[,-1])

x<-as.matrix(d)

library(cba)

rc <-rockCluster(x, n=4, theta=0.2, debug=TRUE)

KNN算法:

先确定K的大小,計算出每個點之外的所有點到這個目标點的距離,選出K個最近的作為一類。一般類别之間的歸類的話,投票和權重為常用的,投票及少數服從多數,投票的及越靠近的點賦予越大的權重值。

2.2分隔聚類:

需要先确定分成的類數,在根據類内的點都足夠近,類間的點都足夠遠的目标去做疊代。

常用的有K-means,K-medoids,K-modes等,隻能針對數值類的分類,且隻能對中等量級資料劃分,隻能對凸函數進行聚類,凹函數效果很差。

2.3密度聚類:

有效的避免了對分隔聚類下對凹函數聚類效果不好的情況,有效的判别入參主要有1:單點外的半徑2:單點外半徑内包含的點的個數

DBSCAN為主要常見的算法,可優化的角度是現在密度較高的地方進行聚類,再往密度較低的地方衍生,優化算法:OPTICS。

2.4網格聚類:

将n個點映射到n維上,在不同的網格中,計算點的密度,将點更加密集的網格歸為一類。

優點是:超快,超級快,不論多少資料,計算速度隻和次元相關。

缺點:n維的n難取,受分布影響較大(部分行業資料分布及其不規則)

2.5模型聚類:

基于機率和神經網絡聚類,常見的為GMM,高斯混合模型。缺點為,計算量較大,效率較低。

GMM:每個點出現的機率:将k個高斯模型混合在一起,每個點出現的機率是幾個高斯混合的結果

假設有K個高斯分布,每個高斯對data points的影響因子為πk,資料點為x,高斯參數為theta,則:

理論:聚類算法思路總結

利用極大似然的方法去求解均值Uk,協方差矩陣(Σk),影響因子πk,但是普通的梯度下降的方法在這裡求解會很麻煩,這邊就以EM算法代替估計求解。

3.優化資料結構:

1.資料變換:

logit處理,對所有資料進行log變換

傅裡葉變換

小波變換

2.降維:

PCA:

利用降維(線性變換)的思想,整體方差最大的情況下(在損失很少資訊的前提下),把多個名額轉化為幾個不相關的綜合名額(主成分),将變量線性組合代替原變量,保持代替後的資料資訊量最大(方差最大)。

LLE:

(1) 尋找每個樣本點的k個近鄰點;

(2)由每個樣本點的近鄰點計算出該樣本點的局部重建權值矩陣;

(3)由該樣本點的局部重建權值矩陣和其近鄰點計算出該樣本點的輸出值。

(換句話說,就是由周圍N個點構成改點的一個向量矩陣表示)