HITS算法详解
2018-03-20 01:58
106 查看
实例
如下有三个网页A,B,C及其链接关系:
构造邻接矩阵(Adjacent Matrix):
A=⎡⎣⎢110100110⎤⎦⎥A=[111101000]
每个节点都有一个Hub分数和Authority分数,所以有一个Hub向量hh和Authority向量aa,向量的每个元素都初始化为1n√1n,其中nn为节点数:
h0=⎡⎣⎢⎢⎢13√13√13√⎤⎦⎥⎥⎥,a0=⎡⎣⎢⎢⎢13√13√13√⎤⎦⎥⎥⎥h0=[131313],a0=[131313]
按如下方式交替更新hh和aa的值:
h1a2=Aa0=ATh1(41)(41)h1=Aa0a2=ATh1
过程如下,直到任一向量不再变化(收敛):
需要注意的是每一步都需要对得到的向量进行归一化:
f(v)=⎡⎣⎢⎢⎢⎢⎢⎢⎢v1n√v2n√⋮vnn√⎤⎦⎥⎥⎥⎥⎥⎥⎥f(v)=[v1nv2n⋮vnn]
Python代码
分析
考虑两步,则:
a2=AT(Aa0)=(ATA)a0a2=AT(Aa0)=(ATA)a0
h3=A(ATh1)=(AAT)h1h3=A(ATh1)=(AAT)h1
所以最终得到的h∗h∗是AATAAT的主特征向量,a∗a∗是ATAATA的主特征向量。主特征向量也就是最大的特征值对应的那个特征向量。
References
Hubs and Authorities
如下有三个网页A,B,C及其链接关系:
构造邻接矩阵(Adjacent Matrix):
A=⎡⎣⎢110100110⎤⎦⎥A=[111101000]
每个节点都有一个Hub分数和Authority分数,所以有一个Hub向量hh和Authority向量aa,向量的每个元素都初始化为1n√1n,其中nn为节点数:
h0=⎡⎣⎢⎢⎢13√13√13√⎤⎦⎥⎥⎥,a0=⎡⎣⎢⎢⎢13√13√13√⎤⎦⎥⎥⎥h0=[131313],a0=[131313]
按如下方式交替更新hh和aa的值:
h1a2=Aa0=ATh1(41)(41)h1=Aa0a2=ATh1
过程如下,直到任一向量不再变化(收敛):
需要注意的是每一步都需要对得到的向量进行归一化:
f(v)=⎡⎣⎢⎢⎢⎢⎢⎢⎢v1n√v2n√⋮vnn√⎤⎦⎥⎥⎥⎥⎥⎥⎥f(v)=[v1nv2n⋮vnn]
Python代码
分析
考虑两步,则:
a2=AT(Aa0)=(ATA)a0a2=AT(Aa0)=(ATA)a0
h3=A(ATh1)=(AAT)h1h3=A(ATh1)=(AAT)h1
所以最终得到的h∗h∗是AATAAT的主特征向量,a∗a∗是ATAATA的主特征向量。主特征向量也就是最大的特征值对应的那个特征向量。
References
Hubs and Authorities
相关文章推荐
- HITS算法详解及代码实现
- HttpUrlConnection使用详解--转
- 【C#】详解C#序列化
- tarjan算法的详解
- python os.stat() 和 stat模块详解
- Android"挂逼"修炼之行---微信定位聊天记录中照片的位置信息插件开发详解
- 众望所归的《JAVASCRIPT凌厉开发--EXT详解与实践 》终于上市了!
- 《Ext详解与实践 v3》阅读补充资料:分配命名空间
- 常用字符集编码详解:ASCII 、GB2312、GBK、GB1803...
- PL/SQL游标详解
- 关于cookie的详解
- C++学习笔记之vector类详解
- httpd配置详解
- url、href、src详解
- linux关机命令详解
- x264 编码参数设置详解
- echo 命令详解
- MySql(15)------mysql存储过程IN,OUT,INOUT参数模式使用详解
- linux tune2fs命令详解
- Go语言并发技术详解