Mahout系列 譜聚類

2021-09-01 21:22:46 字數 922 閱讀 2122

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聚類?這也就是譜聚類實現起來...