標籤傳播算法及其改進方案(科研記錄)

標籤傳播算法

注:本文只是對自己設計的算法的一個簡單記錄。

算法步驟
  1. 初始時,給每個節點一個唯一的標籤;
  2. 每個節點使用其鄰居節點的標籤中最多的標籤來更新自身的標籤。
  3. 反覆執行步驟2,直到每個節點的標籤都不再發生變化爲止。
    一次迭代過程中一個節點標籤的更新可以分爲同步和異步兩種。所謂同步更新,即節點z在第t次迭代的label依據於它的鄰居節點在第t-1次迭代時所得的label;異步更新,即節點z在第t次迭代的label依據於第t次迭代已經更新過label的節點和第t次迭代未更新過label的節點在第t-1次迭代時的label。
改進方案

標籤傳播算法的時間複雜度很低,非常適合大型網絡的社區劃分,但是也存在很多缺點:

  1. 劃分結果不穩定,隨機性強;
  2. 準確度不高。
具體體現在:
  1. 更新順序:節點標籤更新順序隨機,但是很明顯,越重要的節點越早更新會加速收斂過程;
  2. 隨機選擇:如果一個節點的出現次數最大的鄰居標籤不止一個時,隨機選擇一個標籤作爲自己標籤。這種隨機性可能會帶來一個雪崩效應,即剛開始一個小小的聚類錯誤會不斷被放大。
改進思路:

  確定節點的更新順序 : LeaderRank,PageRank,HITS,參與係數,k-核/k-殼,等等及其改進算法;
  降低隨機選擇的概率 : 各種相似度度量/距離度量以及他們的隨機結合。

目前算法:

  k爲社區數量,ARI爲調整蘭德係數,NMI爲網絡選擇標準互信息,Q爲模塊性指標,δ爲算法穩定係數,Time爲運行時間,環境爲python2.7(黑體 爲與 FMM,LPA ,BGLL ,LPAm, LPAm+, infomap, ISCD+, LPA-S這些算法的比較。 )
  karate:k=2 ,ARI=1.0000,NMI=1.0000,Q=0.3715,δ=0,Time=8;
  dolphin:k=4 ,ARI=0.4325,NMI=0.6241,Q=0.5203,δ=0,Time=20;
  football:k=12 ,ARI=0.8896,NMI=0.9268,Q=0.6010,δ=0,Time=66;
  polkbooks:k=4 ,ARI=0.6664,NMI=0.5534,Q=0.5140,δ=0,Time=59;斜體樣式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章