(精)广东工业大学 2018实时大数据分析——PageRank算法实验报告

这篇实验报告详细介绍了在广东工业大学进行的2018年实时大数据分析项目,主要关注PageRank算法的应用。实验内容包括使用MapReduce框架下的‘抽税’法计算网页PageRank排名,并在存在主题节点的情况下,应用面向主题的PageRank算法重新计算所有节点的权重。
摘要由CSDN通过智能技术生成

(精)广东工业大学 2018实时大数据分析——PageRank算法实验报告

一、实验内容

1.采用基于“抽税”法在MapReduce框架下,分析图1的网页PageRank排名;

这里写图片描述

2.图1中,若节点②和节点⑤是主题节点,采用面向主题的PageRank算法重新计算所有节点的PageRank值。

二、实验设计(原理分析及流程)

这里写图片描述

三、实验代码及数据记录

1.代码

1.0 文件结构图

这里写图片描述

1.1 ENode.java
package com.devyy.bean;

public class ENode {
    private String name;// 节点名字
    private NextNode nextNode;// 指向下一个节点
    private int count;// 此链表的数目
    private boolean subjectNode = false;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public NextNode getNextNode() {
        return nextNode;
    }

    public void setNextNode(NextNode nextNode) {
        this.nextNode = nextNode;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public boolean isSubjectNode() {
        return subjectNode;
    }

    public void setSubjectNode(boolean subjectNode) {
        this.subjectNode = subjectNode;
    }
}
1.2 NextNode.java
package com.devyy.bean;

public class NextNode {
    private int nextLoc;// 下一个节点的数组下标
    private NextNode nextNode;// 指向下一个节点

    public int getNextLoc() {
        return nextLoc;
    }

    public void setNextLoc(int nextLoc) {
        this.nextLoc = nextLoc;
    }

    public NextNode getNextNode() {
        return nextNode;
    }

    public void setNextNode(NextNode nextNode) {
        this.nextNode = nextNode;
    }
}
1.3 PageRank.java
package com.devyy.pagerank;

import java.text.DecimalFormat;

import com.devyy.bean.ENode;
import com.devyy.bean.NextNode;
import com.devyy.util.MatrixUtil;

/** 
 * PageRank是一个函数,它对Web中的网页赋予一个实数值,网页的PageRank值越高,它越“重要”。 
 * 把Web想象成一个有向图,其中网页是图中节点,当满足如下两个条件时,可直接计算PageRank: 
 * (1)图是强连通图,即可以从任一节点到达其他节点 
 * (2)图不存在终止点,即不存在出链的节点。 
 * 当网页数目为n时构造的n*n的方阵乘以当前概率分布向量之后值不再改变时就到达了极限。 
 * 
 * @author ZYY
 * 
 */  
public class PageRank {
    private MatrixUtil matrixUtil =new MatrixUtil(); 

    // 根据邻接表构造Web转移矩阵  
    public double[][] createTransitionMatrixFun(int number, ENode[] node){  
        int i, index, count, temp;  
        double[][] transitionMatrix = new double[number][number];  
        for(i = 0; i < number; i++){  
            count = node[i].getCount();  
            temp = count;  
            index = 0;  
            NextNode nextNode = node[i].getNextNode();  
            while(temp-- != 0){  
                index = nextNode.getNextLoc();  
                transitionMatrix[index][i] = 1.0 / count;  
       
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值