文档

使用Pagerank算法对网站进行排名

此示例显示了如何使用Pagerank算法对网站集合进行排名。尽管Pagerank算法最初旨在对搜索引擎的结果进行排名,但它也可以更广泛地应用于许多不同类型的图形中的节点。Pagerank分数根据如何将其连接到其他节点的方式给出了每个图节点的相对重要性。

从理论上讲,Pagerank分数是某人随机单击每个网站上的链接将到达任何特定页面的限制概率。因此,分数高的页面在网络中是高度连接和可发现的,并且更可能是随机的网络冲浪者访问该页面。

算法描述

在Pagerank算法中的每个步骤中,每个页面的分数按照,根据

r =(1-p)/n + p*(a'*(r./d) + s/n);

  • r是Pagerank得分的矢量。

  • p是标量阻尼因子(通常为0.85),这是随机冲浪者在当前页面上的链接上单击的概率,而不是继续在另一个随机页面上继续。

  • 一个'是图形的邻接矩阵的转置。

  • d是包含图中每个节点的外观的矢量。d被设定为1对于没有外部边缘的节点。

  • n是图中节点的标量数。

  • s是没有链接的页面的Pagerank分数的标量总和。

换句话说,每个页面的排名主要基于链接到它的页面的排名。期限a'*(R./d)挑选出链接到图中每个节点的源节点的分数,并通过这些源节点的出站链接的总数进行了标准化。这确保了Pagerank分数的总和始终是1。例如,如果节点2链接到节点1、3和4,则会转移1/3在算法的每次迭代期间,其pagerank得分达到了每个节点。

创建一个图表,说明每个节点如何将其Pagerank分数授予图中的其他节点。

s = {'一个''一个''一个''b''b''C''D''D''D'};t = {'b''C''D''D''一个''b''C''一个''b'};g = digraph(s,t);标签= {'a/3''a/3''a/3''b/2''b/2''C''d/3''d/3''d/3'};p =图(g,'布局',,,,“分层”,,,,'Edgelabel',标签);亮点(p,[1 1 1],[2 3 4],'edgeColor',,,,'G')突出显示(p,[2 2],[1 4],,'edgeColor',,,,'r')亮点(p,3,2,'edgeColor',,,,'M') 标题(“节点之间的Pagerank分数转移”

中心性功能包含计算Pagerank分数的选项。

Pagerank有6个节点

创建并绘制一个有向图的图形,其中包含代表虚拟网站的六个节点。

s = [1 1 2 2 3 3 3 4 5];t = [2 5 3 4 4 5 6 1 1];名称= {'http://www.example.com/alpha',,,,'http://www.example.com/beta',,,,...'http://www.example.com/gamma',,,,'http://www.example.com/delta',,,,...'http://www.example.com/epsilon',,,,'http://www.example.com/zeta'};g = digraph(s,t,[],名称)
G =具有属性的Digraph:边缘:[9x1表]节点:[6x1表]
情节(g,'布局',,,,“分层”,,,,...'Nodelabel',{'α',,,,'beta',,,,'伽玛',,,,'三角洲',,,,'epsilon',,,,'Zeta'})

计算此图的Pagerank中心分数。使用后续概率(也称为阻尼因子)0.85

pr =中心(g,'网页排名',,,,“遵循概率”,0.85)
pr =6×10.3210 0.1706 0.1066 0.1368 0.2008 0.0643

查看每个页面的Pagerank分数和学位信息。

g.nodes.pagerank = pr;g.nodes.indegree = indegree(g);g.nodes.outdegree = OutDegree(g);G.Nodes
ans =6×4桌Name PageRank InDegree OutDegree ________________________________ ________ ________ _________ 'http://www.example.com/alpha' 0.32098 2 2 'http://www.example.com/beta' 0.17057 1 2 'http://www.example.com/伽马'0.10657 1 3'http://www.example.com/delta'0.13678 2 1'http://www.example.com/epsilon'0.20078 2 1'http://www.example.com/zample.com/zpample.com/zeplame.com/zeta'0.06432 1 0

结果表明,不仅仅是数字决定分数的页面链接,也是质量。这α伽玛网站的总数为4,但是α两者的链接Epsilonbeta,这也是高度排名的。伽玛仅由一页链接到beta,在列表的中间。因此,α得分高于伽玛通过算法。

Mathworks.com上网站的Pagerank

加载数据Mathworks100.mat并查看邻接矩阵,一个。该数据是在2015年使用自动页面爬网生成的。页面爬行者开始//www.tianjin-qmedu.com并遵循链接到后续网页,直到邻接矩阵包含有关100个唯一网页的连接的信息。

加载Mathworks100.mat间谍(A)

使用稀疏的邻接矩阵创建有向图一个,使用包含的URL作为节点名称。

g = digraph(a,u)
G =具有属性的Digraph:边缘:[632x1表]节点:[100x1表]

使用力布局绘制图。

情节(g,'Nodelabel',{},'nodeColor',[0.93 0.78 0],'布局',,,,'力量');标题(链接到//www.tianjin-qmedu.com'的网站'

计算图形的Pagerank分数,G,使用200个迭代和阻尼因子0.85。将分数和度信息添加到图表的节点表中。

pr =中心(g,'网页排名',,,,“最大”,200,“遵循概率”,0.85);g.nodes.pagerank = pr;g.nodes.indegree = indegree(g);g.nodes.outdegree = OutDegree(g);

查看最终的25个得分。

G.Nodes(1:25,:)
ans =25×4桌Name PageRank InDegree OutDegree ____________________________________________________________________________ ________ ________ _________ '//www.tianjin-qmedu.com' 0.044342 20 14 '//www.tianjin-qmedu.com/ch' 0.043085 20 14 'https://cn.mathworks.com' 0.043085 20 14'//www.tianjin-qmedu.com/jp'0.043085 20 14'//www.tianjin-qmedu.com/kr'0.043085 20 14'//www.tianjin-qmedu.com/uk'0.043085 20 14'https://au.mathworkss://au.mathworkss。com' 0.043085 20 14 '//www.tianjin-qmedu.com/de' 0.043085 20 14 '//www.tianjin-qmedu.com/es' 0.043085 20 14 '//www.tianjin-qmedu.com/fr' 0.043085 20 14 '//www.tianjin-qmedu.com/in' 0.043085 20 14 '//www.tianjin-qmedu.com/it' 0.043085 20 14 '//www.tianjin-qmedu.com/nl' 0.043085 20 14 '//www.tianjin-qmedu.com/se' 0.043085 20 14 '//www.tianjin-qmedu.com/index.html%3Fnocookie%3Dtrue' 0.0015 0 1 '//www.tianjin-qmedu.com/company/aboutus/policies_statements/patents.html' 0.007714 6 6

提取和绘制一个子图,其中包含大于得分的所有节点0.005。根据其Pagerank分数为图节点涂色。

h =子图(g,find(g.nodes.pagerank> 0.005));情节(h,'Nodelabel',{},'nodecdata',H.Nodes.pagerank,'布局',,,,'力量');标题(链接到//www.tianjin-qmedu.com'的网站')配色栏

顶级网站的Pagerank分数都非常相似,因此随机的网络冲浪者在每页上有大约4.5%的机会。这一小组高度连接的页面在图中心形成了一个集团。与这个中央集团相连的是几个较小的集团,它们之间高度连接。

参考

Moler,C。MATLAB实验第7章:Google Pagerank。Mathworks,Inc.,2011年。

这个话题有帮助吗?