2012-08-02 58 views
1

我嘗試使用SVM進行聚類。我有社交網絡圖形數據。在我的數據節點中彼此連接。我想用圖鄰接矩陣作爲SVM輸入數據。我的SVM輸入數據如下。我的主要問題是圖形數據中的社區檢測。使用圖形數據的SVM聚類

是否可以使用SVM對圖數據進行聚類。你可以給我一些方法來做到這一點。我是SVM的初學者。

1 1:0 2:1 3:1 4:1 5:1 

2 1:1 2:0 3:1 4:1 5:0 

3 1:1 2:1 3:0 4:1 5:0 

4 1:1 2:1 3:1 4:0 5:0 

5 1:1 2:0 3:0 4:0 5:0 

回答

1

SVM不能做聚類,你可以找到多類SVM和其他變體。另一方面,支持向量聚類的存在與SVM稍有不同,但接近。我不知道提供這種算法的任何包,到目前爲止它還不是很有名。

0

一般來說SVM是用於分類的,正如很多人指出的那樣。雖然存在基於SVM的聚類算法,但它與子系統SVM類似,可以使用kernel trick,它允許您處理各種類型的數據,包括圖形(圖形內核)。相鄰矩陣是圖形相似性的較差表示(除非實際上對非常簡單的現象感興趣,但是使用基於支持向量機的方法似乎有點太過分了。相信奧卡姆的剃刀 - 最簡單的方法是最好的方法,我會建議查看/使用簡單聚類方法,如果它們效率不高,則考慮切換到SVM集羣。

我強烈建議閱讀關於此主題的論文,因爲它不像看起來那麼容易,但它很好用話題:

  • Presentation regarding graph mining and graph kernels
  • 米歇爾紐豪斯,霍斯特Bunke:一個隨機遊走內核明鏡來自圖形編輯距離。 SSPR/SPR 2006:191-199
  • S.V.N. Vishwanathan,Karsten M. Borgwardt,Nicol N. Schraudolph:Graph Kernels的快速計算。 NIPS 2006:1449-1456

對於實現本身,(已經提到)MATLAB庫位於:https://sites.google.com/site/daewonlee/research/svctoolbox

0

可以執行以下操作

  1. 應用盡可能多根據你想要的數據聚類算法。

  2. 決定您需要擁有多少個羣集(或使用任何生成的羣集中的多個羣集)。

  3. 優化生成的輸出,使聚類算法的輸出與所需數量的聚類(以及那些精確聚類)相匹配。這是一個棘手的部分!

  4. 訂閱SVM通過簇產生的數據,例如質心,平均值等

  5. 最後,使用訓練的SVM來生成基於你最初輸入的數據的集羣。

因此,想法是開發與支持向量機的通用集羣化模型,基於其他聚類分析模型 ...這樣,你可以有監督的SVM集羣。 需要注意的一點是,您需要儘可能多的聚類數據行來使SVM工作(否則,SVM將爲您輸入的每個輸入輸出單個數字)。

來源:目前正在研究這種方法。

編輯:語法等