炼数成金-Hadoop数据分析平台-第1周-作业

这篇博客探讨了A、B、C、D、E五个网页的链接结构,构建了Google矩阵,并分析了页面重要性(PR值)。内容包括手动或编程计算PR值的方法,以及在实际计算过程中考虑的硬件需求、计算时间和成本等因素。最终结果显示,页面C的PageRank值最高。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现假设有A,B,C,D,E五个网页,其中

1)A网页有链接指向B,C,D,E

2)B网页有链接指向A,D

3)C网页有链接指向A,D

4)D网页有链接指向C

5)E网页有链接指向A,C

A 请写出这个网页链接结构的Google矩阵,目测你认为哪个页面的重要性(PR值)最高?

5个网页之间的链接关系为: 

在得到初始矩阵后开始计算PR值。假设用户点击网页链接的概率为α,而用户跳到无关页面上的概率为1-α,而访问的页面恰好是这5个页面中A的概率只有(1-α)/5(α是阻尼系数,Google取α等于0.85)。

因此,取α=0.85,Google矩阵为:


特征向量的初始值 

将G代入公式p(n)=G*p(n-1)进行迭代计算,直到p(n)≈p(n-1),p(n)即为PR的值。

B(本题可选)手动或编程计算这5个页面的PR值,可以使用任何你熟悉的编程语言,欢迎在论坛上晒自己的程序和结果

答案:通过程序实现可知,页面C的PR值最高。

Java程序实现如下(需要导入Jama-1.0.2.jar包):


package hadoop;

import Jama.Matrix;

public class PageRank {

        static double alpha =0.85;

        public static void main(String[] args) {

                double[][] arrayS ={
                                {0d,1.0d/2,1.0d/2,0,1.0d/2},
                                {1.0d/4,0,0,0,0},
                                {1.0d/4,0,0,1,1.0d/2},
                                {1.0d/4,1.0d/2,1.0d/2,0,0},
                                {1.0d/4,0,0,0,0}
                };
                int length=6;//保存小数点后几位
                double[][] arrayPR={{1},{1},{1},{1},{1}};
                int n = arrayS.length;
                Matrix s = new Matrix(arrayS);//初始矩阵
                System.out.print("初始矩阵S:");s.print(5, length);
                Matrix pageRank = new Matrix(arrayPR);//page rank初始值
                System.out.print("特征向量:");pageRank.print(5, 0);
                Matrix u=new Matrix(n,n,1.0d);//单元矩阵
                Matrix g=s.times(alpha).plus(u.times((1-alpha)/n));
                System.out.print("Google矩阵G:");g.print(5, length);
                /*
                 * 开始迭代计算适合的pageRank值。(也就是求矩阵g,特征值为1 的特征向量pageRank。ps:近似值)
                 * p(n)=g*p(n-1)
                 */
                Matrix pageRankPre = pageRank;//P(0)
                int iterator =0;
                while(iterator<20){
                	pageRankPre = pageRank;
                    pageRank = g.times(pageRank);
                    iterator ++;
                    System.out.println("迭代次数:"+iterator);  
                	pageRank.print(2, length);
                    }
                }
 }

输出结果如下:

初始矩阵S:
 0.000000 0.500000 0.500000 0.000000 0.500000
 0.250000 0.000000 0.000000 0.000000 0.000000
 0.250000 0.000000 0.000000 1.000000 0.500000
 0.250000 0.500000 0.500000 0.000000 0.000000
 0.250000 0.000000 0.000000 0.000000 0.000000


特征向量:
      1
      1
      1
      1
      1


Google矩阵G:
 0.030000 0.455000 0.455000 0.030000 0.455000
 0.242500 0.030000 0.030000 0.030000 0.030000
 0.242500 0.030000 0.030000 0.880000 0.455000
 0.242500 0.455000 0.455000 0.030000 0.030000
 0.242500 0.030000 0.030000 0.030000 0.030000


迭代次数:1


 1.425000
 0.362500
 1.637500
 1.212500
 0.362500


迭代次数:2


 1.154063
 0.452813
 1.637500
 1.302813
 0.452813


迭代次数:3


 1.230828
 0.395238
 1.695074
 1.283621
 0.395238


迭代次数:4


 1.206359
 0.411551
 1.670605
 1.299934
 0.411551


迭代次数:5


 1.209826
 0.406351
 1.686204
 1.291268
 0.406351


迭代次数:6


 1.212035
 0.407088
 1.677365
 1.296424
 0.407088


迭代次数:7


 1.208905
 0.407558
 1.682530
 1.293450
 0.407558


迭代次数:8


 1.211499
 0.406892
 1.679537
 1.295180
 0.406892


迭代次数:9


 1.209661
 0.407444
 1.681275
 1.294176
 0.407444


迭代次数:10


 1.210869
 0.407053
 1.680266
 1.294759
 0.407053


迭代次数:11


 1.210108
 0.407310
 1.680852
 1.294420
 0.407310


迭代次数:12


 1.210575
 0.407148
 1.680512
 1.294617
 0.407148


迭代次数:13


 1.210293
 0.407247
 1.680709
 1.294503
 0.407247


迭代次数:14


 1.210462
 0.407187
 1.680595
 1.294569
 0.407187


迭代次数:15


 1.210362
 0.407223
 1.680661
 1.294530
 0.407223


迭代次数:16


 1.210421
 0.407202
 1.680623
 1.294553
 0.407202


迭代次数:17


 1.210386
 0.407214
 1.680645
 1.294540
 0.407214


迭代次数:18


 1.210406
 0.407207
 1.680632
 1.294547
 0.407207


迭代次数:19


 1.210395
 0.407211
 1.680640
 1.294543
 0.407211


迭代次数:20


 1.210401
 0.407209
 1.680635
 1.294546
 0.407209



1、对于硬件的要求;  2、计算所需的时长;  3、可能需要投入的成本(硬件成本、人力成本、时间成本、边际成本、各种不确定的成本要求)

下载为百度网盘链接 1.Hadoop的源起与体系介绍 2.Hadoop的源起与体系介绍 3.Hadoop的源起与体系介绍 4.实施Hadoop集群 5.实施Hadoop集群 6.实施Hadoop集群 7.分布式文件系统HDFS,大数据存储实战 8.分布式文件系统HDFS,大数据存储实战 9.分布式文件系统HDFS,大数据存储实战 10.Map-Reduce体系架构 11.Map-Reduce体系架构 12.Map-Reduce体系架构 13.Map-Reduce数据分析之一,API实战 14.Map-Reduce数据分析之一,API实战 15.Map-Reduce数据分析之一,API实战 16.Map-Reduce数据分析之二,Hadoop流,应用案例 17.Map-Reduce数据分析之二,Hadoop流,应用案例 18.Map-Reduce数据分析之二,Hadoop流,应用案例 19.Map-Reduce数据分析之二,Hadoop流,应用案例 20.HBase体系架构与安装 21.HBase体系架构与安装 22.HBase体系架构与安装 23.HBase体系架构与安装 24.HBase数据分析与建模,实战案例剖析 25.HBase数据分析与建模,实战案例剖析 26.HBase数据分析与建模,实战案例剖析 27.Hive体系架构安装与HiveQL,应用案例1 28.Hive体系架构安装与HiveQL,应用案例2 29.Pig安装与Pig Latin语言,应用案例1 30.Pig安装与Pig Latin语言,应用案例2 31.Pig安装与Pig Latin语言,应用案例3 32.Pig安装与Pig Latin语言,应用案例4 33.hadoop高级介绍 34.hadoop高级介绍 35.hadoop高级介绍 36.hadoop高级介绍 37.hadoop高级介绍 38.hadoop高级应用 39.hadoop高级应用 40.hadoop高级应用 41.hadoop高级应用 42.hadoop高级应用 43.Hadoop集群安装 44.HBASE分布式安装
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值