数据挖掘Java

您所在的位置:网站首页 用pagerank算法对六支球队进行排序代码 数据挖掘Java

数据挖掘Java

2024-07-07 00:39:34| 来源: 网络整理| 查看: 265

一、PageRank算法的前置知识

PageRank算法:计算每一个网页的PageRank值,然后根据这个值的大小对网页的重要性进行排序。

从用户角度来看,一个网站就是若干页面组成的集合。然而,对于网站的设计者来说,这些页面是经过精心组织的,是通过页面的链接串联起来的一个整体。因此,Web的结构挖掘主要是对网站中页面链接结构的发现。例如:在设计搜索引擎等服务时,对Web页面的链接结构进行挖掘可以得出有用的知识来提高检索效率和质量。 一般来说,Web页面的链接类似学术上的引用,因此,一个重要的页面可能会有很多页面的链接指向它。也就是说,如果有很多链接指向一个页面,那么它一定是重要的页面。同样地,假如一个页面能链接到很多页面,它也有其重要的价值。

设u为一个Web页,Bu为所有指向u的页面的集合,Fu为所有u指向的页面的集合,c(} public Score(int s, int m){ son = s; mom = m; } /** * 分数相加并调用simplify方法进行约分 * @param s1 * @param s2 * @return */ public static Score getAdd(Score s1, Score s2){ if (s1.getMom() == 0 || s2.getMom() == 0) return s1.getMom() == 0 ? s2 : s1; int commonMom = s1.getMom() * s2.getMom(); int commonSon = s1.getSon() * s2.getMom() + s2.getSon() * s1.getMom(); Score addResult = simplify(commonSon, commonMom); return addResult; } /** * 分数相乘并调用simplify方法进行约分 * @param s1 * @param s2 * @return */ public static Score getMultiply(Score s1, Score s2){ int tempMom = s1.getMom() * s2.getMom(); int tempSon = s1.getSon() * s2.getSon(); Score simplifyResult = simplify(tempSon, tempMom); return simplifyResult; } /** * 对分子分母进行约分 * @param s * @param m * @return */ private static Score simplify(int s, int m){ int common = getCommon(s, m); s = s / common; m = m / common; Score result = new Score(s, m); return result; } /** * 找分子分母的最大公约数 * @param s * @param m * @return */ private static int getCommon(int s, int m){ for (int i = s; i >= 1; i--) { if (m%i==0 && s%i==0){ return i; } } return 1; } } PageRank算法实现代码 package com.data.mining.main; import com.data.mining.entity.Score; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class PageRank { //定义转移矩阵 public static List dataList = new ArrayList(); //定义转移矩阵中的每一项 public static Score s00,s01,s02,s03,s10,s11,s12,s13,s20,s21,s22,s23,s30,s31,s32,s33; public static void main(String[] args) { initData(); Score voScore = new Score(1, 4); Score[] V0 = {voScore, voScore, voScore, voScore}; Score[] pageRank = V0; while (true){ Score[] tmpVk = getPageRank(pageRank); if (isRankEqual(pageRank, tmpVk)) break; //新得到的PageRank矩阵和上次得到的PageRank矩阵不相同,则继续迭代,相同则不再迭代 pageRank = tmpVk; System.out.println(Arrays.toString(pageRank)); } System.out.println(Arrays.toString(pageRank)); } /** * 判断V1和V2的PageRank矩阵内的值是否相等 * @param V1 * @param V2 * @return */ public static boolean isRankEqual(Score[] V1, Score[] V2){ for (int i = 0; i List pageRankList = new ArrayList(); for (Score[] dataItem : dataList) { Score itemSum = new Score(0,0); //itemSum中存放PageRank矩阵的每一项 //通过遍历数据集的每一行和Vk的每一列实现矩阵乘法 for (int i = 0; i s00 = new Score(0, 0); s01 = new Score(1, 2); s02 = new Score(1, 1); s03 = new Score(0, 0); s10 = new Score(1, 3); s11 = new Score(0, 0); s12 = new Score(0, 0); s13 = new Score(1, 2); s20 = new Score(1, 3); s21 = new Score(0, 0); s22 = new Score(0, 0); s23 = new Score(1, 2); s30 = new Score(1, 3); s31 = new Score(1, 2); s32 = new Score(0, 0); s33 = new Score(0, 0); Score[] s0 = {s00, s01, s02, s03}; Score[] s1 = {s10, s11, s12, s13}; Score[] s2 = {s20, s21, s22, s23}; Score[] s3 = {s30, s31, s32, s33}; dataList.add(s0); dataList.add(s1); dataList.add(s2); dataList.add(s3); } }

实验结果 在这里插入图片描述 面对这个迭代结果,笔者还是有些许疑问的,书上最后的迭代结果说是趋于稳定了最后结果是[3/9,2/9,2/9,2/9],可是本次实验最终并没有得到满意的结果,而是因为数据溢出直接终止了程序,但可以看到最后一次输出的结果已经很趋近于正确答案了,包括每次的迭代结果笔者也进行了笔算,也没发现什么问题。这图片不知道为啥字这么小,反正我是看不清,所以用表格盛一下: 在这里插入图片描述

五、实验总结

本实验结果笔者并不保证一定是正确的,笔者仅仅是提供一种使用Java语言实现PageRank算法的思路。因为实验并没有给答案,笔者已将书上有答案的实验数据输入程序后,程序输出的结果和答案一致,所以问题应该不大。若有写的不到位的地方,还请各位多多指点! 笔者主页还有其他数据挖掘算法的总结,欢迎各位光顾!



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭