演算法原理不在贅述,請參考:
將**儲存為.py格式,預設使用的資料是**檔案所在目錄下data目錄下的 pgr_data.txt 檔案分別作為源資料輸入。以上引數可以在源**中修改,也可以使用命令列引數傳入,參考以下啟動方式:
python pagerank.py pgr_data.txt
命令中後引數為輸入資料的途徑。
**中設立了四個引數,分別為
q=0.8 ###
size = 100 ### the size of the networks
times = 200 ### the maxmim times for iterations
error = 0.0001 ### the error used for stoping the iterations
分別為pagerank演算法的阻尼係數,網路的最大節點數,迭代最大次數,最大誤差允許。
第乙個引數直接決定了迭代的次數和最終結果的效能,最後兩個引數用來限制迭代次數
附上測試資料(請參考):
特別感謝:android路上的人
python源**如下:
__author__ = 'administrator'
import re
import sys
q=0.8 ###
size = 100 ### the size of the networks
times = 200 ### the maxmim times for iterations
error = 0.0001 ### the error used for stoping the iterations
tr_data = [[0 for i in range(size)] for j in range(size)]
sum = [0 for i in range(size)]
tr_lg = 0
st =set()
def pagerank(res):
# trans && normalize
for i in range(tr_lg):
for j in range(tr_lg):
am[i][j] = q*float(tr_data[j+1][i+1])/sum[j+1] + (1-q)/tr_lg
#print am
#for i in range(tr_lg):
err = 0
k=0while(k1:
sour = sys.argv[1]
fp=open(sour,"r")
for line in fp:
# print line
line=re.sub(r"\n\r","",line)
ls=line.split()
l=len(ls)
# print l,ls,int(ls[0]),int(ls[1])
for i in range(l):
st.add(ls[i])
tr_data[int(ls[0])][int(ls[1])] = 1
sum[int(ls[0])] += 1
tr_lg = len(st)
print "the number of websites:",tr_lg
#print sum[1:tr_lg+1]
am = [[0.0 for i in range(tr_lg)] for j in range(tr_lg)]
res = [[0 for i in range(tr_lg)] for j in range(times)]
hub = [[0 for i in range(tr_lg)] for j in range(times)]
aut = [[0 for i in range(tr_lg)] for j in range(times)]
for i in range(tr_lg):
res[0][i] = 1
hub[0][i] = aut[0][i] = float(1)/tr_lg
n = pagerank(res)
print "iteration times:",n,"\n","the result:",res[n]
fp.close()
PageRank演算法初探
pagerank演算法由segey brin和larry page在1998年發表在www7。該演算法的高效能和易使用等特點,和其他的搜尋系統相比質量更高。因此,谷 歌成為世界上最常用的搜尋引擎有很大一部分是基於此。他們借鑑了當時學術界評判 重要性的通用方法,根據 的引用次數。將這種思路對映到網頁的...
PageRank 演算法隨記
遞迴的意思是 假如現在要求c,指向c的入鏈只有b,那麼得先求b的重要度,b重要度的大小取決於指向b的入鏈以及這些入鏈的重要度。隨機 的解釋 從i這個頁面開始,它可能有di種選擇,而且他做每一種選擇的時候,選擇的概率是相同的,即他決定到下乙個頁面是乙個隨機的選擇 應該跳到那個頁面 我們把上面圖中的矩陣...
PageRank演算法核心
讀者盆友,中午好,這裡分享下pagerank演算法的核心思想。本部落格 示例均來自 演算法 algorithmes forth edition 美 robert sedgewick kevin wayne 著 謝路雲譯 s.brin 和l.page 發明的pagerank演算法,裡面非常重要的思想是...