simrank算法 java_SimRank算法入门
《商務智能方法與應用》有一道題:
假設圖6.8是微博用戶的關注關系圖,邊(a,b)表示a關注b,請用利用SimRank計算任意兩個結點之間的相似度。說明在此應用背景下,運用SimRank計算相似度的局限性。
如圖:
資料和題解:
SimRank 模型定義兩個頁面的相似度是基于下面的遞歸思想:如果指向結點a和指向結點b的結點相似,那么a和b也認為是相似的。
近年來已在信息檢索領域引起廣泛關注,成功應用于網頁排名、協同過濾、孤立點檢測、網絡圖聚類、近似查詢處理等。
公式 :
當`v_i=v_j`時 `S(v_i,v_j)=1`
當`v_i!=v_j`時`S_(k+1)(v_i,v_j)=\frac{C}{|I(v_i)||I(v_j)|}\sum_{q=1}^{|I(v_i)|}\sum_{l=1}^{|I(v_j)|}S(I_q(v_i),I_l(v_j))`
初始值為
`S_0(v_i,v_j)={(0, "("v_i!=v_j")"),(1, "("v_i=v_j")"):}`
比如求S(c,e)
c點入度為2
e點入度為1
c點入度相關點是(a,e)
e點入度相關點是(b)
那么兩組相關點的笛卡爾積為S(b,a),S(b,e)
假設經驗系數為0.5 。
`S_0(a,e)`有相同的入度b,`S_0(a,c)`沒有相同的入度,`S_0(b,d)`有相同的入度a。`S_0(a,e)`與`S_0(b,d)`的不同之處是他們的入度數量不一樣。我們分別計算一下(設C=0.5):
`S_1(a,e)=0.5/(1*1)[S_0(b,b)]=0.5/1*[1]=0.5 `
`S_1(a,c)=0.5/(1*2)[S_0(b,a)+S_0(b,e)]=0.5/2*[0+0]=0 `
`S_1(b,d)=0.5/(1*3)[S_0(a,a)+S_0(a,b)+S_0(a,c)]=0.5/3*[1+0+0]=0.167 `
參考資料:
https://blog.csdn.net/weixin_40400177/article/details/88084301
https://www.cnblogs.com/zhangchaoyang/articles/4575809.html
https://baike.baidu.com/item/SimRank/13868992?fr=aladdin
《商務智能方法與應用》 作者: 劉紅巖 ISBN編號: 9787302310099
總結
以上是生活随笔為你收集整理的simrank算法 java_SimRank算法入门的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 兼容浏览器的最小高度(min-heigh
- 下一篇: 滑动窗口法