代码改变世界

随笔档案-2013年02月

Mahout SlopeOne实现(一)

2013-02-06 18:37 by Polarisary, 1279 阅读, 收藏,
摘要: 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, 241 阅读, 收藏,
摘要: 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... 阅读全文