代码改变世界

Mahout SlopeOne实现(一)

2013-02-06 18:37 by Polarisary, 1270 阅读, 0 推荐, 收藏, 编辑
摘要:SlopeOne的基本思想是用均值化的来掩盖个体的打分差异,使用加权平均估算未评分的物品的评分。今天用了大半天的时间看了下mahout中SlopeOne的实现,它是初始化时计算所有的两个物品之间的评分均值。存在内存中(map:具体是FastByIDMap),这样,当要计算某个用户对某个未评分的商品的评分时,可以直接从内存中取均值。如下:评分物品1物品2物品3用户1524用户24?5用户321?要计算用户3对物品3的评分,(((5-4)+(4-5))/2+2 + ((2-4)/1)+1)/2=1,初始化所做的是计算:物品1与物品2的评分均值((5-4)+(4-5))/2)、物品1与物品3的评分均 阅读全文

归并排序的两种实现

2013-02-04 16:22 by Polarisary, 234 阅读, 0 推荐, 收藏, 编辑
摘要:sort是正常的递归实现归并排序,sortWithFor是从单个元素到整个集合实现归并排序,两种思想殊途同归。 1 public static Comparable[] aux; 2 /** 3 * 自顶向下递归的归并排序 4 * @param a 集合 5 */ 6 public static void sort(Comparable[] a){ 7 aux = new Comparable[a.length]; 8 sort(a,0,a.length-1); 9 }10 public static... 阅读全文

选择排序和插入排序

2013-01-31 17:08 by Polarisary, 160 阅读, 0 推荐, 收藏, 编辑
摘要:1 /** 2 * 选择排序 3 * @param arr 待排数组 4 */ 5 public static void selectSort(int[] arr){ 6 int n = arr.length; 7 for(int i=0;i<n;i++){ 8 int min = i; 9 for(int j=i+1;j<n;j++){10 if(arr[j]<arr[min])11 min = j;1... 阅读全文

动态连通性问题

2013-01-30 18:08 by Polarisary, 567 阅读, 0 推荐, 收藏, 编辑
摘要:问题:构建一个N个数的整数列,判断两个数是否是连通的。通过记录父节点来构建树,从而最终形成一个森林。亮点:引入连通分量大小,连接两个分类时,将小的分类连到大的分量上,减小书的高度,这样使通过父节点找其根节点的复杂度降低,从而适用于大数据量的处理!思路:判断两个数字是否连通:通过数组id[]记录其父节点,根节点的父节点是其本上,若两个数字的根节点是同一个,就连通。否则,不连通。连通两个分量:将两个不连通的分量的根节点的其中一个的父指向另一个。为了使连接后的树的高度降低,需要将小树连到大树上。采用sz[]记录连通分量大小实现。连通后将大树根的分量置为两个分类之和。 1 public class W 阅读全文

RDD(转):一种基于内存的集群计算的容错性抽象方法(三)

2013-01-30 11:59 by Polarisary, 676 阅读, 0 推荐, 收藏, 编辑
摘要:弹性分布式数据集:一种基于内存的集群计算的容(一):摘要,引言弹性分布式数据集:一种基于内存的集群计算的容(二):弹性分布式数据集(RDD)弹性分布式数据集:一种基于内存的集群计算的容(三):Spark API,应用程序示例3. Spark APISpark用Scala语言实现了RDD的API。Scala是一种基于JVM的静态类型、函数式、面向对象的语言。我们选择Scala是因为它简 洁(特别适合交互式使用)、有效(因为是静态类型)。但是,RDD抽象并不局限于函数式语言,也可以使用其他语言来实现RDD,比如像Hadoop那样用 类表示用户函数。要使用Spark,开发者需要编写一个driver程 阅读全文

RDD(转):一种基于内存的集群计算的容错性抽象方法(二)

2013-01-29 11:40 by Polarisary, 636 阅读, 0 推荐, 收藏, 编辑
摘要:弹性分布式数据集:一种基于内存的集群计算的容(一):摘要,引言弹性分布式数据集:一种基于内存的集群计算的容(二):弹性分布式数据集(RDD)弹性分布式数据集:一种基于内存的集群计算的容(三):Spark API,应用程序示例2.弹性分布式数据集(RDD)本部分描述RDD和编程模型。首先讨论设计目标(2.1),然后定义RDD(2.2),接着讨论Spark的编程模型(2.3),并给出一个示例(2.4),最后将RDD与分布式共享内存进行比较(2.5)。2.1 目标和概述我们的目标是为基于工作集(working set)的应用(即多个并行操作重用中间结果的这类应用)提供抽象,同时保持MapReduce 阅读全文

RDD(转):一种基于内存的集群计算的容错性抽象方法(一)

2013-01-28 19:57 by Polarisary, 610 阅读, 0 推荐, 收藏, 编辑
摘要:弹性分布式数据集:一种基于内存的集群计算的容(一):摘要,引言弹性分布式数据集:一种基于内存的集群计算的容(二):弹性分布式数据集(RDD)弹性分布式数据集:一种基于内存的集群计算的容(三):Spark API,应用程序示例原文出处:http://www.eecs.berkeley.edu/Pubs/TechRpts/2011/EECS-2011-82.pdf译文原处:http://bbs.sciencenet.cn/home.php?mod=space&uid=425672&do=blog&id=520947摘要:本文提出了弹性分布式数据集(RDD,Resilient 阅读全文

log4j源码学习---log打印

2012-08-31 16:47 by Polarisary, 492 阅读, 0 推荐, 收藏, 编辑
摘要:接上篇,继续学习log4j源码---log4j打印日志流程log4j最核心的6个类:Logger:对日志行为的抽象,封装了不同级别的日志记录接口Level:对日志级别的抽象Appender:对日志记录形式的抽象Layout:对格式的抽象LoggingEvent:对一次日志记录过程中日志信息的抽象LoggerRepository:Logger实例的容器1.首先判断该级别的日志是否可以打印,不能的话直接退出,通过getEffectiveLevel()方法遍历其父Logger直到找到一个有效的Level,并与本日志(logger.info()就是INFO)级别比较小于则调用forcedLog()打印 阅读全文

log4j源码学习---加载Logger

2012-08-28 16:05 by Polarisary, 1697 阅读, 0 推荐, 收藏, 编辑
摘要:时间过得真快,毕业2个月了,一直没有时间静下心来学些新技术,每天煎药,喝药,很痛苦又占用了大量的时间。前几天在博客园申请了个博客,准备写些东西已记录工作过程中的一些心得。最近工作上不忙,开始时学习dubbo和zookeeper及thrift,了解了其应用场景及方法,就想读下dubbo的源码,都是dubbo写得相当好,但刚开始就得结束了,因为dubbo确实是个不小的框架,并且又刚开始学应用,又没有阅读源码的经验,所以现在读dubbo源码非常的吃力,所以就想从较小且常用的log4j开始试着读源码,才有了这个系列的一些心得体会,记录下来,权当笔记了。1.slf4j和log4j首先,slf4j算是日志 阅读全文