PageRank Web页面分级算法 HNUST【数据分析技术】(2025)

1.理论知识

算法原理PageRank 通过网络浩瀚的超链接关系来确定一个页面的等级。

Google 把从 A 页面到 B 页面的链接解释为A页面给B页面投票, Google 根据投票来源(甚至来源的来源, 即链接到A页面的页面)和投票目标的等级来决定新的等级。

PageRank 算法的思想简单的说,一个高等级的页面可以使其他低等级页面的等级提升。如果A页面有一个链接指向B页面,那就可以看作是A页面对B页面的一种信任或推荐。所以,如果一个页面的反向链接越多,再根据这些链接的价值加权越高,那搜索引擎就会判断这样的页面更为重要,页面等级 (PageRank)也就越高。

图4.1 PageRank加权传递图

传递计算公式:


2.算法流程图


3.关键代码

import numpy as np
from fractions import Fractionnp.set_printoptions(formatter={'all': lambda x: str(Fraction(x).limit_denominator())})  # 格式化 保留分数,不至于精度丢失def PageRank(M, R0):  # 定义一个迭代函数,直至MR=R时,输出RRN = {}while (True):RN = np.dot(M, R0)if ((RN == R0).any()):  # 判断两个数组是否相等breakelse:R0 = np.copy(RN)return sorted(RN)if __name__ == '__main__':Map = [[0, 1 / 2, 1, 0],[1 / 3, 0, 0, 1 / 2],[1 / 3, 0, 0, 1 / 2],[1 / 3, 1 / 2, 0, 0]]# 根据有向图M = np.array(Map)# 转移矩阵num = len(Map)R0 = np.array([1 / num, 1 / num, 1 / num, 1 / num]).reshape(4, 1)  # 初始R0R_1 = PageRank(M, R0)print('------------------------------------------------------')print("有向图:")print("\n".join(str(x) for x in Map))print('------------------------------------------------------')print("PageRank计算结果为:")print("\n".join(str(x) for x in R_1))print('------------------------------------------------------')

4.测试数据

表4.1 PageRank有向矩阵

A

B

C

D

A

0

1/2

1

0

B

1/3

0

0

1/2

C

1/3

0

0

1/2

C

1/3

1/2

0

0


5.实验结果与分析

图 4.2 PageRank计算结果


6.算法优缺点

优点:

  1. 是一个与查询无关的静态算法,所有网页的PageRank值通过离线计算获得;
  2. 有效减少在线查询时的计算量,极大降低了查询响应时间。

缺点:

  1. 人们的查询具有主题特征,PageRank忽略了主题相关性,导致结果的相关性和主题性降低。
  2. 旧的页面等级会比新页面高。因为即使是非常好的新页面也不会有很多上游链接,除非它是某个站点的子站点。

其他实验(我是芒果酱点一个关注吧(σ′▽‵)′▽‵)σ)

  • k-Means聚类算法 HNUST【数据分析技术】(2024)-CSDN博客
  • PageRank Web页面分级算法 HNUST【数据分析技术】(2024)-CSDN博客
  • KNN分类算法 HNUST【数据分析技术】(2024)-CSDN博客
  • Apriori关联规则算法 HNUST【数据分析技术】(2024)-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/497151.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OTA场景使用mbed TLS 进行 MD5 校验

应用场景: OTA或者IAP等升级场景,或者数据传输过程中的文件校验. 在使用 mbed TLS 进行 MD5 校验时,首先需要理解 MD5 是一种哈希算法,用于生成一个 128 位(16 字节)的哈希值,通常用于校验数据…

6-Gin 路由详解 --[Gin 框架入门精讲与实战案例]

Gin 是一个用 Go 语言编写的 HTTP Web 框架,以其高性能和简洁的 API 而闻名。它提供了一套强大的路由功能,使得开发者可以轻松地定义 URL 路由规则,并将这些规则映射到具体的处理函数(handler)。以下是关于 Gin 路由的…

路过石岩浪心古村

周末常去的七彩城堡儿童乐园附近经常有老房子,没想到老房子最多的地方还是浪心古村。而且越看越有历史。 见到一座写着《序西书室》的房子,我最开始以为是一个古代的学校。但是查了百度更加不知道什么意思了哈。‌“序西书室”‌是指《文心雕龙》中的一个…

[江科大STM32] 第五集STM32工程模板——笔记

保存,进去选芯片型号,我们是F10C8T6 再添加一些文件,自己看路径 然后去 复习这三文件 打开KEIL add existing那个,添加已经存在的文件 还有5个.c.h文件也要添加进来 回到KEIL 点击旁边的settings 如果你用寄存器开发就建到这里就可…

目标检测,语义分割标注工具--labelimg labelme

1 labelimg labelimg可以用来标注目标检测的数据集, 提供多种格式的输出, 如Pascal Voc, YOLO等。 1.1 安装 pip install labelimg1.2 使用 命令行直接输入labelimg即可打开软件主界面进行操作。 使用非常简单, 不做过细的介绍&#xff0…

沪深300股指期货一点多少钱?

首先,我们得知道什么是沪深300股指期货。简单来说,它就是一种期货合约,这个合约的“价格”是根据沪深300指数的点数来定的。沪深300指数是由上海和深圳两个交易所里300只最大的股票组成的一个指数,代表了整个股市的大体走势。 沪…

kettle经验篇:Pentaho Repository 类型资源库卡顿问题

2024年马上就结束了,终于在结束前解决了困扰许久的一个问题:kettle的Pentaho Repository 资源库异常卡顿。所以在此也梳理、记录下2024年的最后一个大问题。 项目场景 工作中一个重要内容是数据中心项目,也就必不可少的要用到ETL技术&#x…

工具变量笔记

补充知识 简单介绍工具变量 假设 Y i α β D i ϵ i Y_i\alpha\beta D_i\epsilon_i Yi​αβDi​ϵi​, where E ( ϵ i ∣ D i ) 0 E(\epsilon_i\mid D_i)0 E(ϵi​∣Di​)0. 但是通常这个条件不满足。于是假如有这样一个工具变量 Z i Z_i Zi​存在的话,满…

简易CPU设计入门:本系统中的通用寄存器(五)

项目代码下载 请大家首先准备好本项目所用的源代码。如果已经下载了,那就不用重复下载了。如果还没有下载,那么,请大家点击下方链接,来了解下载本项目的CPU源代码的方法。 下载本项目代码 准备好了项目源代码以后,我…

04.HTTPS的实现原理-HTTPS的混合加密流程

04.HTTPS的实现原理-HTTPS的混合加密流程 简介1. 非对称加密与对称加密2. 非对称加密的工作流程3. 对称加密的工作流程4. HTTPS的加密流程总结 简介 主要讲述了HTTPS的加密流程,包括非对称加密和对称加密两个阶段。首先,客户端向服务器发送请求&#xf…

【WebAR-图像跟踪】在Unity中基于Imagine WebAR实现AR图像识别

写在前面的话 感慨一下, WebXR的发展是真的快,20年的时候,大多都在用AR.js做WebAR。随着WebXR标准发展,现在诸如Threejs、AFrame、Unity等多个平台都支持里WebXR。 本文将介绍在Unity中使用 Image Tracker实现Web端的AR图像识别功…

视频会议是如何实现屏幕标注功能的?

现在主流的视频会议软件都有屏幕标注功能,屏幕标注功能给屏幕分享者讲解分享内容时提供了极大的方便。那我们以傲瑞视频会议(OrayMeeting)为例,来讲解屏幕标注是如何实现的。 傲瑞会议的PC端(Windows、信创Linux、银河…

物料描述的特殊字符

MM03查看某料号,有特殊字符,看上去是# SE16N中并没有显示出来这个特殊字符 DeBug时可以看到#,复制出来也是#,但其实不是 ALV中也看不到这个特殊字符 需要写代码,获取这个编码Unicode 参考:【ABAP系列】SAP…

HEIC 是什么图片格式?如何把 iPhone 中的 HEIC 转为 JPG?

在 iPhone 拍摄照片时,默认的图片格式为 HEIC。虽然 HEIC 格式具有高压缩比、高画质等优点,但在某些设备或软件上可能存在兼容性问题。因此,将 HEIC 格式转换为更为通用的 JPG 格式就显得很有必要。本教程将介绍如何使用简鹿格式工厂&#xf…

多模态论文笔记——LLaVA

大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍多模态模型:LLaVA。处理包含图像和文本的多模态数据,并生成合理准确的回答。 文章目录 论文模型架构视觉编码器语言模型多模态融…

【源码 导入教程 文档 讲解】基于springboot校园新闻管理系统源码和论文

可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C#、C、python、数据可视化、大数据、文案 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代&#xf…

时序论文34|AdaWaveNet:用于时间序列分析的自适应小波网络

论文标题:AdaWaveNet: Adaptive Wavelet Network for Time Series Analysis 论文链接:https://arxiv.org/abs/2405.11124 论文代码:https://github.com/comp-well-org/AdaWaveNet/ 前言 这篇文章面向非平稳时间序列进行分析与建模&#x…

运行Springboot + Vue 项目

想要源码,请点击的系统获取源码:https://bichuanyuan.online **前言:**很多小白拿到java SpringBoot Vue前后端分离的项目却不知道怎么运行起来,这里博主就带领小白们一起将项目运行起来吧! 一、环境准备 java后端…

16、【ubuntu】【gitlab】【补充】服务器断电后,重启服务器,gitlab无法访问

背景 接wiki 【服务器断电后,重启服务器,gitlab无法访问】https://blog.csdn.net/nobigdeal00/article/details/144280761 最近把不小心把服务器重启,每次重启后,都会出现gitlab无法访问 分析 查看系统正在运行的任务 adminpc…

保姆级JavaWeb项目创建、部署、连接数据库(tomcat)

目录 简介: 一、创建项目 二、tomcat部署 1、将tomcat解压在一个自己找得到路径 2、在idea中添加tomacat模板块 3、添加tomcat服务器 ?三、连接数据库 1、创建一个新的数据库 2、为项目添加jdbc驱动包 3、创建jdbc类 简介: 本学期学的javawe…