1.構造親和矩陣w
2.構造度矩陣d
3.拉普拉斯矩陣l
4.計算l矩陣的第二小特徵值(譜)對應的特徵向量fiedler 向量
5.以fiedler向量作為kmean聚類的初始中心,用kmeans聚類
親和矩陣 :w_ij=exp(-(d(s_i,s_j)/2o^2)) d(s_i,s_j) = ||s_i,s_j||. o 為事先設定的引數。
度矩陣:d_ii =sum(w_i)
規範相似矩陣:d^(-1/2)*w*d^(1/2) ,即:w(i,j)/(d(i,i))^1/2*(d(j,j))^1/2
計算(d-w)*x=lamd*d*x 的第二小特徵值
mahout 流程:
親和矩陣格式
i,j,value
affinitymatrixinputjob 輸出格式
i vector
構造度矩陣(親和矩陣,i行元素求和作為返回向量i列的值)
matrixdiagonalizejob
vectorcache 將向量儲存在hdfs中
vectormatrixmultiplicationjob 向量矩陣相乘
求矩陣的特徵值:ssvdsolver (分布式svd),預設是distributedlanczossolver(蘭索斯分解器)
將u矩陣歸一化
unitvectorizerjob.runjob(data, unitvectors);
unitvectorizerjob 歸一化矩陣
輸入矩陣v,輸入矩陣u
v_ij = u_ij / sqrt(sum_j(u_ij * u_ij)
歸一化後的u矩陣中i行的最大值作為特徵向量的i列的值,以該向量作為種子生成初始中心。
kmeans 聚類,生成最終的簇。
譜聚類概述
一 簡述 聚類是對探索性資料分析最廣泛使用的技術,在現在各個科學領域中處理沒有類標的資料時,人們總是想通過確定資料中不同樣本的歸類,來獲取對資料的直觀印象。傳統的聚類方法有很多,像k means,single linkage等,但是k means演算法有些缺點,比如當樣本維度特別大的時候,k mea...
20150916譜聚類學習
什麼是譜聚類?譜聚類的思想是生成乙個帶權無向圖g。g的每個頂點表示乙個樣本,連線頂點的邊表示兩個樣本之間具有相似性,邊的權值即樣本之間的相似度大小。然後對圖進行分割,使得不同組之間的邊的相似度盡可能的小,組內邊的相似度盡可能的大。因此,譜聚類需要解決兩個問題 如何生成帶權無向圖g?如何對圖進行分割?...
機器學習 譜聚類
譜聚類,譜就是指矩陣所有的特徵值的集合 而矩陣指的是由所有資料形成的圖的laplacian矩陣。因此譜聚類就是計算資料的laplacian矩陣的特徵向量,再取特徵向量中的一部分進行kmeans聚類。but,為什麼是laplacian矩陣?為什麼不直接對原始資料kmeans聚類?這也就是譜聚類實現起來...