slope-one算法.docx


文档分类:IT计算机 | 页数:约7页 举报非法文档有奖
1/7
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/7
文档列表 文档介绍
简要概述 Slope One 是一系列应用于协同过滤的算法的统称。由 Daniel Lemire 和 Anna Maclachlan 于2005 年发表的论文中提出。有争议的是,该算法堪称基于项目评价的 non-trivial 协同过滤算法最简洁的形式。该系列算法的简洁特性使它们的实现简单而高效,而且其精确度与其它复杂费时的算法相比也不相上下。该系列算法也被用来改进其它算法 Slope One 算法试图同时满足这样的的 5个目标: :普通工程师可以轻松解释所有的聚合数据,并且算法易于实现和测试。 :新增一个评分项,应该对预测结果即时产生影响。 :快速的执行查询,可能需要付出更多的空间占用作为代价。 :对于一个评分项目很少的用户,也应该可以获得有效的推荐。 :与最准确的方法相比,此方法应该是有竞争力的,准确性方面的微小增长不能以简单性和扩展性的大量牺牲为代价。基本概念 Slope One的基本概念很简单,例子1,用户X,Y和A都对Item X,Y 还对 Item2 打了分,用户 A对Item2 可能会打多少分呢? User Rating toItem 1Rating toItem 2 X53 Y43 A4? 根据 SlopeOne 算法,应该是:4-((5-3) +(4-3))/2 =. X对Item1 的rating 是5,对Item2 的rating 是3, 那么他可能认为 Item2 应该比 Item1 少两分. 同时用户 Y 认为 Item2 应该比 Item1 少1 1和Item 2都打了分的用户认为Item 2会比Item 1 平均少 A可能会对 Item2 打(4-)= 分; 很简单是不是? 找到对 Item1 和Item2 都打过分的用户,算出 rating 差的平均值, 这样我们就能推测出对 Item1 打过分的用户 A对Item2 的可能 Rating, 并据此向 A用户推荐新项目. 这里我们能看出Slope One算法的一个很大的优点,在只有很少的数据时候也能得到一个相对准确的推荐,这一点可以解决 Cold Start 的问题. 加权算法接下来我们看看加权算法(Weighted Slope One). 如果有 100 个用户对 Item 1 和Item2 都打过分,有1000 个用户对 Item3 和Item2 也打过分. 显然这两个 rating (100*(Rating 1to2)+1000(Rating 3to2)) /(100 +1000) 代码实现 using System; using ; using ; using ; namespace SlopeOne {public class Rating {public float Value {get; set; } public int Freq {get; set; } public float AverageValue

slope-one算法 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数7
  • 收藏数0 收藏
  • 顶次数0
  • 上传人63229029
  • 文件大小123 KB
  • 时间2017-05-29