1. 程式人生 > >譜聚類演算法(Spectral Clustering)優化與擴充套件

譜聚類演算法(Spectral Clustering)優化與擴充套件

    譜聚類(Spectral Clustering, SC)在前面的博文中已經詳述,是一種基於圖論的聚類方法,簡單形象且理論基礎充分,在社交網路中廣泛應用。本文將講述進一步擴充套件其應用場景:首先是User-Item協同聚類,即spectral coclustering,之後再詳述譜聚類的進一步優化。

1 Spectral Coclustering

1.1 協同聚類(Coclustering)

    在資料分析中,聚類是最常見的一種方法,對於一般的聚類演算法(kmeans, spectral clustering, gmm等等),聚類結果都類似圖1所示,能挖掘出資料之間的類簇規律。

image 圖1 聚類結果圖

    即使對於常見的資料User-Item評分矩陣(常見於各社交平臺的資料之中,例如音樂網站的使用者-歌曲評分矩陣,新聞網站的使用者-新聞評分矩陣,電影網站的使用者-電影評分矩陣等等),如表1所示。在聚類分析中,也常常將資料計算成User-User的相似度關係或Item-Item的相似度關係,計算方法諸如應用Jaccard距離,將User或Item分別當成Item或User的特徵,再在此基礎上計算歐氏距離、cos距離等等。

clip_image002

表1 User-Item評分矩陣

    但是如果能聚類成如圖2中的coclustering關係,將User和Item同時聚類,將使得資料結果更具意義,即在音樂網站中的使用者和歌曲coclustering結果表明,某些使用者大都喜歡某類歌曲,同時這類歌曲也大都只被這群使用者喜歡著。這樣,不管是用於何種場景(例如歌曲推薦),都將帶來極大的益處。

image 圖2 coclustering圖

1.2 Spectral Coclustering

    對於User-Item評分矩陣,這是一個典型的二部圖(Bipartite Grap),Item-User矩陣A,假設A為N*M,即N個item和M個user,可展開成:

image 其中E為(M+N)*(M+N)的方陣,且對稱。

    對於A的二部圖,只存在Item與User之間的鄰接邊,在Item(User)之間不存在鄰接邊。再用譜聚類原理——將帶權無向圖劃分為兩個或兩個以上的最優子圖,使子圖內部儘量相似,而子圖間距離儘量距離較遠。這樣的聚類結果將Cut儘量少的邊,分割出User和Item的類,如果類記Ci

(U,I)為第i個由特定的User和Item組成的類,由譜聚類原理,Cut掉的Ci邊為中的User或Item與其它類Cj(j≠i)的邊,且其滿足某種最優Cut方法,簡單地說,Cut掉的User到其它類Cj(j≠i)的Item的邊,可理解為這些User與其它Item相似關係較小;同樣Cut掉的Item到其它類Cj(j≠i)的User的邊,可理解為這些Item與其它User相似關係較小。這正好滿足coclusering的定義。

    在譜聚類的基礎上,再實現Spectral Coclustering,十分簡單, 將E直接當成譜聚類的鄰接矩陣即可,至於求Laplacian矩陣、求特徵值、計算Kmeans,完成與譜聚類相同。

    PS:更多詳情,請參見參考文獻1。

2 譜聚類的半監督學習

    假設有大量新聞需要聚類,但對於其中的部分新聞,編輯已經人工分類好了,例如(Ni1,Ni2, …, Nim),為分類好的第i類,那麼對於人工分類好的資料,就相當於聚類中的先驗知識(或正則)。

    在聚類時,可相應在鄰接矩陣E中增加類彼此間鄰接邊,並使得其鄰接權重較大,這樣生成的鄰接矩陣為E’。這樣,再對此鄰接矩陣E’做譜聚類,聚類結果將在一定程度上維持人工分類的結果,並達到聚類的目的。

    PS:更多詳情,請參見參考文獻2,不過譜聚類的半監督學習,都有點扯。 

參考文獻:

1 Inderjit S. Dhillon. Co-clustering documents and words using Bipartite Spectral Graph Partitioning;

2 W Chen. Spectral clustering: A semi-supervised approach;

3 Wen-Yen Chen, Yangqiu Song, Hongjie Bai, Chih-Jen Lin, Edward Y. Chang. Parallel Spectral Clustering in Distributed Systems.

----

相關推薦

演算法(Spectral Clustering)優化擴充套件

    譜聚類(Spectral Clustering, SC)在前面的博文中已經詳述,是一種基於圖論的聚類方法,簡單形象且理論基礎充分,在社交網路中廣泛應用。本文將講述進一步擴充套件其應用場景:首先是User-Item協同聚類,即spectral coclustering,之後再詳述譜聚類的進一步優化。

演算法(Spectral Clustering)

    譜聚類(Spectral Clustering, SC)是一種基於圖論的聚類方法——將帶權無向圖劃分為兩個或兩個以上的最優子圖,使子圖內部儘量相似,而子圖間距離儘量距離較遠,以達到常見的聚類的目的。其中的最優是指最優目標函式不同,可以是割邊最小分割——如圖1的Smallest cut(如後文的M

Spectral Clustering演算法介紹

一. 前言 本來想寫關於聚類系列演算法的介紹,但是聚類系列的其它幾個演算法原理比較簡單,網上有大量的教程可以查閱。這裡主要是介紹一下譜聚類演算法,做一個學習筆記,同時也希望對想要了解該演算法的朋友有一個幫助。關於聚類的其他系列演算法,這裡推薦一個寫的很不錯的部落格。 譜聚

spectral clustering

1. 譜聚類概述 譜聚類是從圖論中演化出來的演算法,後來在聚類中得到了廣泛的應用。它的主要思想是把所有的資料看做空間中的點,這些點之間可以用邊連線起來。距離較遠的兩個點之間的邊權重值較低,而距離較近的兩個點之間的邊權重值較高,通過對所有資料點組成的圖進行切圖,讓切圖後不同的子圖間邊權重和

spectral clustering)及其實現詳解

Preface 開了很多題,手稿都是寫好一直思考如何放到CSDN上來,一方面由於公司技術隱私,一方面由於面向物件不同,要大改,所以一直沒貼出完整,希望日後可以把開的題都補充全。 先把大綱列出來: 一、從狄多公主圈地傳說說起 二、譜聚類的演算

Spectral Clustering)原理及Python實現

譜聚類原理及Python實現 圖模型   無向帶權圖模型 G=<V,E> G =< V ,

spectral clustering)原理總結

    譜聚類(spectral clustering)是廣泛使用的聚類演算法,比起傳統的K-Means演算法,譜聚類對資料分佈的適應性更強,聚類效果也很優秀,同時聚類的計算量也小很多,更加難能可貴的是實現起來也不復雜。在處理實際的聚類問題時,個人認為譜聚類是應該首先考慮的幾種演算法之一。下面我們就對譜聚類的

演算法及其程式碼(Spectral Clustering

簡介 文章將介紹譜聚類(spectral clustering)的基本演算法,以及在matlab下的程式碼實現。介紹內容將包括: 從圖分割角度直觀理解譜聚類譜聚類演算法步驟資料以及實現程式碼 本文將不會涉及細節化的證明和推導,如有興趣可參考july大

演算法入門教程(三)—— 求f^TLf的最小值

在上一篇部落格中,我們知道目標函式變為 argmin⁡f∈R6fTLfarg \min \limits_{f \in \R^6} f^TLfargf∈R6min​fTLf,即找到一個fff,使得 fTLff^TLffTLf 取得最小值 這篇部落格將通過求導的方

【無監督學習】5:演算法原理介紹

前言:學習譜聚類,最好有一些圖論、矩陣分解(SVD)方面的知識,這樣會更加有利於譜聚類的學習。當然,譜聚類理解起來並不困難,實際操作也大多是譜聚類+K-means聚類聯合使用的。 –—-—-—-—-—-—-—-—-—-—-—-—–—-—-—-—-—-—-—-—

機器學習實戰-62:層次演算法(Hierarchical Clustering)

機器學習實戰-62:層次聚類演算法 機器學習分為監督學習、無監督學習和半監督學習(強化學習)。無監督學習最常應用的場景是聚類(clustering)和降維(dimension reduction)。聚類演算法包括:K均值聚類(K-Means)、層次聚類(Hie

演算法講解

什麼是譜聚類? 聚類的直觀解釋是根據樣本間相似度,將它們分成不同組。譜聚類的思想是將樣本看作頂點,樣本間的相似度看作帶權的邊,從而將聚類問題轉為圖分割問題:找到一種圖分割的方法使得連線不同組的邊的權重儘可能低(這意味著組間相似度要儘可能低),組內的邊的權重儘可能高(這意

演算法Matlab快速實現

%Ncut譜聚類完整函式定義(儲存為.m檔案): function C = SpectralClustering(data,k,a)     %data是資料點矩陣  K是聚類個數  a代表高斯核函式的引數 %UNTITLED Summary of this functio

MATLAB學習之路(一) 實現簡單的基於歐式距離的新型演算法Clustering by fast search and find of density peaksd)

大學本科三年,眨眼而已,對於一個考研黨來說,本科時間已所剩不多,大三上學期初次接觸到MATLAB。的確如大牛們所說,強大的計算能力,充足的數學工具,帶來使用者極大的便利。 在大資料的學習過程中,MAT

基礎演算法(二):Kmeans演算法的基本原理應用

Kmeans聚類演算法的基本原理與應用       內容說明:主要介紹Kmeans聚類演算法的數學原理,並使用matlab程式設計實現Kmeans的簡單應用,不對之處還望指正。 一、Km

瞭解 kmeans演算法演算法

譜聚類演算法 不過真正要直觀地理解譜聚類,其實應該從物理的簡正模振動的角度來理解。你可以認為每兩個點之間都有一個彈簧連著,把兩個點之間的相似度理解為它們的彈簧係數,每個特徵向量就是這個系統的運動

——演算法以及Python實現

譜聚類(spectral cluster)可以視為一種改進的Kmeans的聚類演算法。常用來進行影象分割。缺點是需要指定簇的個數,難以構建合適的相似度矩陣。優點是簡單易實現。相比Kmeans而言,處理高維資料更合適。 核心思想 構建樣本點的相似度矩陣(圖

演算法 matlab

1、譜聚類演算法步驟公式 (1)整理資料集,使資料集中資料在0-1之間。假設資料集m行n列。 (2)求鄰接矩陣W。元素值為每一點到其他點之間距離,即權重。 (3)求相似度矩陣S,相似度矩陣的定義。相似度矩陣由權值矩陣得到,實踐中一般用高斯核函式(也稱徑向基

演算法詳解

  譜聚類(Spectral Clustering)演算法簡單易行,其聚類效能優於傳統的K-means演算法。譜聚類將資料的劃分轉化為對圖的分割,是一種基於圖論的聚類方法,其直觀理解為根據圖內點的相似度將圖分為多個子圖,使子圖內部的點相似度最高,子圖之間點的相似

演算法—K-Means原理應用

聚類演算法是一類非監督學習的演算法,在給定的一個數據集中,給了N個樣本,沒有給出樣本對應的標籤類別資料y,可以利用聚類演算法,進行標籤的分類。 K-Means演算法的原理與步驟: 1>   在N個樣本總體中,隨機抽出k個初始資料的質心,接著把資料集中的樣本取出,計算