计算PageRank的示例分析
发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,本篇文章为大家展示了计算PageRank的示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Page Rank就是MapReduce的来源,下文是一个简单
千家信息网最后更新 2025年02月08日计算PageRank的示例分析
本篇文章为大家展示了计算PageRank的示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
Page Rank就是MapReduce的来源,下文是一个简单的计算PageRank的示例。
import java.text.DecimalFormat;/** * Created by jinsong.sun on 2014/7/15. */public class PageRankCaculator { public static void main(String[] args) { double[][] g = calcG(genS(), 0.85); double[] q = genQ(); int i = 0; while (i++ < 100000) { q = calcQ(g, q); printQString(q); } } public static double[][] genS() { double[] linkA = {0.00, 0.50, 0.50, 0.00, 0.50}; double[] linkB = {0.25, 0.00, 0.00, 0.00, 0.00}; double[] linkC = {0.25, 0.00, 0.00, 1.00, 0.50}; double[] linkD = {0.25, 0.50, 0.50, 0.00, 0.00}; double[] linkE = {0.25, 0.00, 0.00, 0.00, 0.00}; return new double[][]{linkA, linkB, linkC, linkD, linkE}; } public static double[] genQ() { return new double[] {1.00, 1.00, 1.00, 1.00, 1.00}; } /** * 计算G矩阵。公式:G = α*S + (1-α)*(1/n)*U * * @param s 原始矩阵 * @param alpha 权重 * @return G矩阵 */ public static double[][] calcG(double[][] s, double alpha) { int size = 5; //all one matrix double[][] u = {{1.00, 1.00, 1.00, 1.00, 1.00}, {1.00, 1.00, 1.00, 1.00, 1.00} , {1.00, 1.00, 1.00, 1.00, 1.00}, {1.00, 1.00, 1.00, 1.00, 1.00} , {1.00, 1.00, 1.00, 1.00, 1.00}}; //计算a*S double[][] m1 = new double[size][size]; for (int i = 0; i < s.length; i++) { for (int j = 0; j < s[i].length; j++) { m1[i][j] = s[i][j] * alpha; } } //(1-α)*(1/n)*U double[][] m2 = new double[size][size]; for (int i = 0; i < u.length; i++) { for (int j = 0; j < u[i].length; j++) { DecimalFormat df = new DecimalFormat("#.0000"); m2[i][j] = Double.parseDouble(df.format((1.0 - alpha) * (1.0 / size) * u[i][j])); } } //G = α*S + (1-α)*(1/n)*U double[][] m3 = new double[size][size]; for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { m3[i][j] = m1[i][j] + m2[i][j]; DecimalFormat df = new DecimalFormat("#.0000"); m3[i][j] = Double.parseDouble(df.format(m3[i][j])); } } return m3; } /** * 计算特征向量。公式:q_next = G * q_curr * * @param g G矩阵 * @param q 特征向量 * @return */ public static double[] calcQ(double[][] g, double[] q) { double[] qNext = new double[g.length]; for (int i = 0; i < g.length; i++) { for (int j = 0; j < g[i].length; j++) { qNext[i] += g[i][j] * q[j]; } } return qNext; } public static void printQString(double[] m) { String s = "{ {:p00}, {:p10}, {:p20}, {:p30}, {:p40} }"; for (int i = 0; i < 5; i++) { s = s.replace(":p" + i + "0", String.valueOf(m[i])); } System.out.println(s); }}
上述内容就是计算PageRank的示例分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
矩阵
j++
示例
分析
公式
内容
向量
就是
技能
特征
知识
原始
简明
简明扼要
下文
文章
更多
权重
来源
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
ei数据库来源期刊分析
在日常生活中用什么数据库
宝山区互联网软件开发大概费用
数据库技术在医疗领域的作用
离婚日记软件开发
去日本软件开发
关于互联网的科技史册
aws免费服务器
山东百花互联网科技公司
网络安全面临哪些严重威胁
服务器内存 功耗
服务器超载怎么连接
视频提示不能和服务器连接
初级中学网络安全
软件开发几点的税
扩展服务器无法连接
山西省网络安全支撑
服务器安全基线文档
奉贤区信息化软件开发诚信服务
服务器身份验证证书
学生宿舍网络安全方案
2021年网络安全周的活动主题
软件开发周报模板下载
win2008域控服务器
数据库求数学这门课的平均成绩
服务器超载怎么连接
联想服务器维修站点
北京巡检软件开发中心
服务器游戏
独立客户端向服务器发送请求失败