博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PageRank算法
阅读量:7010 次
发布时间:2019-06-28

本文共 992 字,大约阅读时间需要 3 分钟。

PageRank算法是随机游走问题,是一道求解线性方程组问题。

它的输入是:一个邻接矩阵,每行的和为1,a[i][j]表示第i个元素去往第j个元素的概率。

它的输出是:一个分值list,第i个分值表示第i个元素的得分

PageRank实际上提供了一种排序方法,可以根据元素共现矩阵来决定每个元素的分值。这种方法像贝叶斯公式一样具有普遍意义。

  • 网页之间的链接构成邻接矩阵
  • 在文本中词和词在同一个句子中出现形成共现矩阵

PageRank有两种解法:

  • 求解线性方程组:准确解法
  • 迭代解法:适合于稀疏矩阵
import numpy as npdef iterate_method(a):    score = np.ones((2, len(a))) / len(a)    while 1:        score[1] = np.matmul(a, score[0])        score[1] /= np.sum(score[1])        eps = np.sum(np.abs(score[0] - score[1]))        score[0] = score[1] / np.sum(score[1])        if eps < 1e-5:            break    return score[0]def linear_equation(a):    A = a.copy()    A -= np.eye(len(A))    A[-1] = np.ones(len(A))    b = np.zeros(len(A))    b[-1] = 1    x = np.linalg.solve(A, b)    return xdef main():    a = np.random.random((10, 10))    a /= np.sum(a, axis=1)  # 每个结点去往其它结点的概率之和应该为1    score1 = linear_equation(a)    score2 = iterate_method(a)    print(score1)    print(score2)    print(np.argsort(score1))    print(np.argsort(score2))main()

转载地址:http://upttl.baihongyu.com/

你可能感兴趣的文章
IT建设不停歇 新华三加速医疗物联网融合进程
查看>>
顶尖专家齐聚 2016中国人工智能大会讲师名单和议题公布
查看>>
大数据分析思路的4点心得
查看>>
小程故事多 | 看来微服务就是一把双刃剑
查看>>
互联网变革的十字路口 数据中心面临混合云转型
查看>>
IBM公司推出旨在促进混合云的云管理工具
查看>>
伪共享和缓存行
查看>>
微软将在新版Edge浏览器中支持广告拦截器
查看>>
意大利电信开始在米兰部署1Gbps宽带
查看>>
网络钓鱼防不胜防:大型科技公司竟被骗逾1亿美元
查看>>
联合光伏拟撤诉 *ST海润将免交2亿港元违约金
查看>>
网络间谍活动月光迷宫已演变成Turla
查看>>
欧洲运营商展开5GTango项目 应对特定行业市场
查看>>
Windows 10创作者更新将改进蓝牙功能
查看>>
睿联嘉业边缘融合大屏幕多媒体会议系统方案
查看>>
凯立德货车专用导航 应“运”而生
查看>>
光伏组件市场价格战下谁获益?
查看>>
价格血拼战频频上演 光伏业陷入集体焦虑
查看>>
聊天机器人真正的潜力,潜藏在个人金融领域
查看>>
英特尔或推可超频Kaby Lake酷睿i3处理器: 重拾赛扬300A荣光?
查看>>