主要内容

使用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为图中节点的标量数。

  • 年代是没有链接页面的PageRank分数的标量和。

换句话说,每个页面的排名很大程度上是基于链接到它的页面的排名。这个词‘* (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 =有向图(s, t);标签= {/ 3的/ 3的/ 3的《b / 2》《b / 2》“c”' d / 3 '' d / 3 '' d / 3 '};p =情节(G,“布局”“分层”“EdgeLabel”、标签);Highlight (p,[1 1 1],[2 3 4],“EdgeColor”‘g’)突出显示(p,[2 2],[1 4],“EdgeColor”“r”)突出(p, 3、2、“EdgeColor”“米”)标题(“节点间PageRank分数转换”

图中包含一个轴对象。标题为“PageRank Score Transfer Between Nodes”的axis对象包含一个graphplot类型的对象。

中心函数包含一个计算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 =有向图(s t[],名称)
G =具有属性的有向图:Edges: [9x1 table] Nodes: [6x1 table]
情节(G,“布局”“分层”...“NodeLabel”,{“α”“β”“伽马”“δ”‘ε’“ζ”})

图中包含一个轴对象。axis对象包含一个graphplot类型的对象。

计算这个图的PageRank中心性得分。使用跟随概率(也称为阻尼因子)0.85

公关=中心(G,“pagerank”“FollowProbability”, 0.85)
公关=6×10.3210 0.1706 0.1066 0.1368 0.2008 0.0643

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

G.Nodes.PageRank =公关;G.Nodes.InDegree =入度(G);G.Nodes.OutDegree =出度(G);G.Nodes
ans =6×4表名字PageRank入度出度  __________________________________ ________ ________ _________ {' 0.32098 http://www.example.com/alpha '} 2 2 {' http://www.example.com/beta '} 0.17057 1 2 {' http://www.example.com/gamma '} 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/zeta'} 0.06432 1 0

结果表明,它不仅仅是数量的页面链接,决定分数,但也质量.的αγ然而,两个网站的总分都是4α链接都εβ美国的排名也很高。γ只有一个页面链接,β,它在列表的中间。因此,α得分高于γ的算法。

mathworks.com网站的PageRank

载入数据mathworks100.mat观察邻接矩阵,一个.该数据是在2015年使用自动页面爬虫生成的。页面爬虫从//www.tianjin-qmedu.com并追踪到后续网页的链接,直到邻接矩阵包含100个独立网页的连接信息。

负载mathworks100.mat间谍(A)

图中包含一个轴对象。axis对象包含一个类型为line的对象。

用稀疏邻接矩阵建立一个有向图,一个,使用包含的urlU节点名。

G =有向图(U)
G =具有属性的有向图:Edges: [632x1 table] Nodes: [100x1 table]

使用力布局绘制图表。

情节(G,“NodeLabel”{},“NodeColor”(0.93 - 0.78 0),“布局”“力”);标题(“链接到//www.tianjin-qmedu.com的网站”

图中包含一个轴对象。标题为website链接到//www.tianjin-qmedu.com的axes对象包含一个graphplot类型的对象。

计算图的PageRank分数,G,采用200次迭代,阻尼系数为0.85.将分数和程度信息添加到图的节点表中。

公关=中心(G,“pagerank”“MaxIterations”, 200,“FollowProbability”, 0.85);G.Nodes.PageRank =公关;G.Nodes.InDegree =入度(G);G.Nodes.OutDegree =出度(G);

查看前25个结果得分。

G.Nodes (1:25,:)
ans =25×4表名字PageRank入度出度  ______________________________________________________________________________ ________ ________ _________ {' 14 {//www.tianjin-qmedu.com} 0.044342 20 ' https://ch.mathworks.com '} 0.043085 20 14 {' https://cn.mathworks.com '} 0.043085 20 14 {' https://jp.mathworks.com '} 0.043085 20 14 {' https://kr.mathworks.com '}0.043085 20 14 {'//www.tianjin-qmedu.com/uk' } 0.043085 20 14 {'//www.tianjin-qmedu.com/au' } 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,找到(G.Nodes。PageRank > 0.005));情节(H,“NodeLabel”{},“NodeCData”H.Nodes.PageRank,“布局”“力”);标题(“链接到//www.tianjin-qmedu.com的网站”) colorbar

图中包含一个轴对象。标题为website链接到//www.tianjin-qmedu.com的axes对象包含一个graphplot类型的对象。

排名靠前的网站的PageRank得分都非常相似,因此一个随机的网络冲浪者有4.5%的机会进入每个页面。这一小群高度关联的页面在情节中心形成了一个小集团。与这个中心小集团相连的是几个较小的小集团,它们之间的联系非常紧密。

参考文献

硅藻土,C。与MATLAB实验第七章:谷歌PageRank.MathWorks公司,2011年版。

另请参阅

||