当前位置: 首页 > news >正文

室内设计网站参考/互联网优化是什么意思

室内设计网站参考,互联网优化是什么意思,谷歌做不做网站,做外贸 是否需要做中文网站PageRank是谷歌的成名之作,谷歌采用PageRank算法优化自家的搜索引擎,极大提升了搜索体验。PageRank的思想在之后也被其他各种算法借鉴和延续:比如关键词抽取算法中的textRank就借鉴了PageRank 算法的思想。接下来笔者就来简单的介绍一下此算法…

PageRank是谷歌的成名之作,谷歌采用PageRank算法优化自家的搜索引擎,极大提升了搜索体验。PageRank的思想在之后也被其他各种算法借鉴和延续:比如关键词抽取算法中的textRank就借鉴了PageRank 算法的思想。接下来笔者就来简单的介绍一下此算法的主要思想。这里我用一句不是特别严谨的话点出此算法的精髓:

越是重要的网页:(1)一般会被更多的网页引用,(2)一般会被更重要的网页引用

这和学术文章一样,比如google在2018年发表的划时代意义的论文bert 估计现在citation 数量直接上到了4千多了,那很多同时发表的文章citation 数量 只有几十甚至个位数。

40a387e5a1ffb98572e2e2bae4e72848.png

通过 citation 数量就可以判断一篇文章的重要性,同理通过一个网页的被引用量也可以看出此网页的重要程度,同时如果一个网页被某一个重要的网页引用了那也可以反映出此网页的分量较重。下面我们我们来看看这个思想是如何通过公式体现出来的。

PageRank公式如下

对于一个页面A,那么它的PR值为:

ffb1855a76763db0821a3ad8fc33a7c9.png
  1. 其中 PR(A) 是页面(节点)A的PR值 ,
  2. PR(Ti)是页面(节点)Ti的PR值,Ti值A页面(节点)指向的节点(即引用了A的节点),
  3. C(Ti)是页面(节点)Ti的出度,也就是Ti指向其他页面(节点)的边的个数,
  4. d 为阻尼系数,其意义是,在任意时刻,用户到达某页面(节点)后并继续向后浏览的概率。

从公式的后半部分,我们发现如果:

1.引用A页面的页面越多,

2.引用A页面的被引用量越大,

则PR(Ti)/ C(Ti)的加和就越大,A的PR值就越高。这就从公式的角度表达出来PageRank算法的思想。

PageRank公式的概率转移版本(迭代过程)

c92e9a01240dbabd39fdb3af2249fc51.png

其中Pn 为第n步的PR值,d 为阻尼系数,M 为转移矩阵,P0为初始PR值: 1/页面(节点)个数。

上方两个公式其实表示同一个含义,只不过下方是程序实现过程中采用的迭代过程。

纯python实现PageRank算法

过程分为两步:

  1. 通过已存在的有向图构建转移矩阵M。
  2. 设置各节点PR的初始值(一般初始认为各节点的PR值一样,PR的初始值 = 1/节点个数),然后采用下方公式不断迭代,直到收敛。

c92e9a01240dbabd39fdb3af2249fc51.png
import numpy as np
def  nodes2matrix(node_json):
"""
构建图的
"""node2id = {}dim = len(node_json)for id_ , key in enumerate(node_json.keys()):node2id[key] = id_   matrix = np.zeros((dim,dim))for key in node_json.keys():nodeid = node2id[key]for neighbor in node_json[key]:neighborid = node2id[neighbor]matrix[neighborid][nodeid] = 1for i in range(dim):matrix[:,i] = matrix[:,i]/sum(matrix[:,i])return matrixdef pagerank(matrix, iter_ = 10, d=0.85):length = len(matrix[0])inital_value = np.ones(length)/lengthpagerank_value = inital_valuefor i in range(10):pagerank_value = matrix@pagerank_value* d  +  (1-d)/lengthprint("iter {}: the pr value is {}".format(i, pagerank_value))return pagerank_value

给程序输入一个 {"A":["B","C"], "B":["A","C"], "C":["D","B"], "D":["A","B"} JSON 类型保存的图,然后采用PageRank算法对每个节点的pr值进行计算,代码如下:

node_json = {"A":["B","C"], "B":["A","C"], "C":["D","B"], "D":["A","B"}
matrix = nodes2matrix(node_json)
print("the matrix is :",matrix)
pagerank(matrix)###程序输出
the matrix is : [[0.  0.5 0.  0.5][0.5 0.  0.5 0.5][0.5 0.5 0.  0. ][0.  0.  0.5 0. ]]iter 0: the pr value is [0.25    0.35625 0.25    0.14375]iter 1: the pr value is [0.25       0.31109375 0.29515625 0.14375   ]iter 2: the pr value is [0.23080859 0.33028516 0.27596484 0.16294141]iter 3: the pr value is [0.24712129 0.32212881 0.27596484 0.15478506]iter 4: the pr value is [0.24018839 0.32559526 0.27943129 0.15478506]iter 5: the pr value is [0.24166163 0.32412202 0.27795805 0.1562583 ]iter 6: the pr value is [0.24166163 0.32474814 0.27795805 0.15563217]iter 7: the pr value is [0.24166163 0.32448204 0.27822416 0.15563217]iter 8: the pr value is [0.24154854 0.32459513 0.27811106 0.15574527]iter 9: the pr value is [0.24164467 0.32454707 0.27811106 0.1556972 ]pagerank value is : {'A': 0.2416446697182898, 'B': 0.32454706832136704, 'C': 0.2781110610248022, 'D': 0.15569720093554096}

结果如上:其中B的pr值最高,约为0.32, 从我输入给算法的图可以看出:A,C,D 网页(节点)都链接到了B网页(节点),从这点我们也可以看出,算法的结果非常不错。

调用networkx中的pagerank 算法包

采用networkx内置的pagerank算法,并构建相同的有向图,将阻尼系数(networkx中的参数数是alpha)设置成0.85, 代码如下:

import networkx as nx# 创建有向图
G = nx.DiGraph()
# 有向图之间边的关系
edges = [("A", "B"), ("A", "C"), ("B", "A"), ("B", "C"), ("C", "D"),("C", "B"), ("D", "B"), ("D", "A")]
for edge in edges:G.add_edge(edge[0], edge[1])
pagerank_list = nx.pagerank(G, alpha=0.85)
print("pagerank 值是:", pagerank_list)###程序输出
pagerank 值是: {'A': 0.24161249618205796, 'B': 0.3245609358176832, 'C': 0.27812437505969145, 'D': 0.15570219294056742}

结果如上,最终结果和上方基本一样,networkx 中使用实现的pagerank就是笔者用纯python的实现过程。

结语

PageRank算法的思想其实在社会中也可以经常别察觉,比如一个人如果有很多特别有名望的人给他写推荐信,那证明此人是个优秀的人;一本书如果有很多业界的大佬为它写序,那证明此书是本值得看的书。发现没,算法有时候和生活真的息息相关。

http://www.jmfq.cn/news/5210551.html

相关文章:

  • 做网站后用浏览量百度给钱/设计网页
  • 网站 建设 价格表/寻找客户的12种方法
  • 做外贸网站赚钱吗/青岛关键词排名提升
  • 权威发布公众号封面/枫林seo工具
  • 南京建设银行公积金查询网站/全网引流推广 价格
  • 网站备案 营业执照/交换友情链接
  • 大兴模版网站开发公司哪家好/北京seo服务商
  • 在线销售网站设计文献/郑州官网网络营销外包
  • 导购网站免费推广/军事新闻俄乌最新消息
  • 网站建设兼容移动端/免费大数据网站
  • 系统 网站开发工程师/产品推广怎么做
  • 浙江建站/兰州网站seo诊断
  • 人是用什么做的视频网站吗/优化大师官网下载
  • 西安关键词网站排名/百度信息流效果怎么样
  • 一个人能建设一个公司网站吗/百度小说排行榜2020前十名
  • 外贸先做网站还是开公司/宁波seo排名外包
  • 湖南省军区强军网网站群建设项目6/如何快速提升网站关键词排名
  • 织梦网站建设交流群/服务网站排名咨询
  • 网站地图制作怎么做/网站优化排名软件网
  • 网站做友情链接的用途/西安百度爱采购推广
  • 为什么做织梦网站时图片出不来/网络推广教程
  • 响应式网站建设品牌全网天下/seo快排优化
  • 静态网页怎么做网站/如何制作一个网页网站
  • mip织梦手机网站模板/客服外包平台
  • 营销活动网站/杭州seo优化
  • 什么专业可以做网站/seo怎么做优化方案
  • 芙蓉区网站建设/微商店铺怎么开通
  • 昆明企业自助建站系统/seo网站推广可以自己搞吗
  • 网站的整体规划怎么写/汤阴县seo快速排名有哪家好
  • 小米商城wordpress/毕节地seo