PageRank算法的实现一

PageRank算法基于被高质量网页链接的页面也是高质量的假设,通过邻接矩阵、概率转移矩阵和阻尼系数计算网页排名。算法步骤包括构建概率转移矩阵、迭代计算PageRank值并进行归一化。该算法在搜索引擎优化中有重要应用。

PageRank算法的思想比较容易理解,基于被许多好的网页链接的网页一定是好的网页的思想。

PageRank算法

用邻接矩阵来表示网页的连接状态。

矩阵A=(1-d)*q+d*p;

A:网页的PageRank值

q:矩阵,每个值都为1/m,表示每个网页都有m个链接出去的选择,概率为1/m

p:概率转移矩阵

d:阻尼系数,d*p表示在随机模型中网页将自身的份额的PageRank值平均分给每个外链

计算过程

1, 若网页i存在一个指向网页j的连接,则pij=1,否则pij=0;可以得到矩阵p

2,然后将每一行除以该行数字之和

3,p=p',进行转置,即为概率转移矩阵

4,根据公式,计算A的初始值

5,Aa=a,令a的初始值为全1的列向量,进行迭代,迭代结果的a即为相应的pagerank值

6,进行归一化

源码

function ek=pagerank(p,d,e)
%p:连接矩阵
%d:分配分数
%e:误差值
x=sum(p,2);
y=sum(p,1);
n=size(p,1);
for i=1:n
    p(i,:)=p(i,:)/x(i);
end
%概率转移矩阵
p=p';
o=ones(n);
A=d*p+(1-d)*o/sum(sum(p'))
e0=ones(n,1);
ek=zeros(n,1);
s=norm(e0-ek);%计算欧式距离
i=0;
%幂法迭代
while(s>e)
    ek=A*e0;
    s=norm(e0-ek);
    e0=ek;
    i=i+1;
end
disp(['迭代次数为',num2str(i),'次']);
disp(['最后的Rank结果为:']);
ek
end


结果:

g =

     0     1     1     0     1     1     0
     1     0     1     1     0     0     0
     1     0     0     1     1     0     0
     1     0     0     0     1     0     0
     1     0     0     1     0     1     1
     0     0     0     0     1     0     0
     1     0     0     0     0     0     0

>> pagerank(g,0.5,0.01)

A =

    0.0714    0.2381    0.2381    0.3214    0.1964    0.0714    0.5714
    0.1964    0.0714    0.0714    0.0714    0.0714    0.0714    0.0714
    0.1964    0.2381    0.0714    0.0714    0.0714    0.0714    0.0714
    0.0714    0.2381    0.2381    0.0714    0.1964    0.0714    0.0714
    0.1964    0.0714    0.2381    0.3214    0.0714    0.5714    0.0714
    0.1964    0.0714    0.0714    0.0714    0.1964    0.0714    0.0714
    0.0714    0.0714    0.0714    0.0714    0.1964    0.0714    0.0714

迭代次数为5次
最后的Rank结果为:

ek =

    1.5137
    0.6890
    0.8039
    0.9353
    1.4961
    0.8755
    0.6865


 

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值