slope-one算法

slope-one算法

ID:38169872

大小:123.33 KB

页数:7页

时间:2019-06-06

slope-one算法_第1页
slope-one算法_第2页
slope-one算法_第3页
slope-one算法_第4页
slope-one算法_第5页
资源描述:

《slope-one算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、简要概述SlopeOne是一系列应用于协同过滤的算法的统称。由DanielLemire和AnnaMaclachlan于2005年发表的论文中提出。有争议的是,该算法堪称基于项目评价的non-trivial协同过滤算法最简洁的形式。该系列算法的简洁特性使它们的实现简单而高效,而且其精确度与其它复杂费时的算法相比也不相上下。该系列算法也被用来改进其它算法SlopeOne算法试图同时满足这样的的5个目标:1.易于实现和维护:普通工程师可以轻松解释所有的聚合数据,并且算法易于实现和测试。2.运行时可更新的:新增一个评

2、分项,应该对预测结果即时产生影响。3.高效率的查询响应:快速的执行查询,可能需要付出更多的空间占用作为代价。4.对初次访问者要求少:对于一个评分项目很少的用户,也应该可以获得有效的推荐。5.合理的准确性:与最准确的方法相比,此方法应该是有竞争力的,准确性方面的微小增长不能以简单性和扩展性的大量牺牲为代价。基本概念SlopeOne的基本概念很简单,例子1,用户X,Y和A都对Item1打了分.同时用户X,Y还对Item2打了分,用户A对Item2可能会打多少分呢?UserRatingtoItem1Ratingto

3、Item2X53Y43A4?根据SlopeOne算法,应该是:4-((5-3)+(4-3))/2=2.5. 解释一下.用户X对Item1的rating是5,对Item2的rating是3,那么他可能认为Item2应该比Item1少两分.同时用户Y认为Item2应该比Item1少1分.据此我们知道所有对Item1和Item2都打了分的用户认为Item2会比Item1平均少1.5分.所以我们有理由推荐用户A可能会对Item2打(4-1.5)=2.5分;很简单是不是?找到对Item1和Item2都打过分的用户,算出

4、rating差的平均值,这样我们就能推测出对Item1打过分的用户A对Item2的可能Rating,并据此向A用户推荐新项目.这里我们能看出SlopeOne算法的一个很大的优点,在只有很少的数据时候也能得到一个相对准确的推荐,这一点可以解决ColdStart的问题.加权算法接下来我们看看加权算法(WeightedSlopeOne).如果有100个用户对Item1和Item2都打过分,有1000个用户对Item3和Item2也打过分.显然这两个rating差的权重是不一样的.因此我们的计算方法是(100*(Ra

5、ting1to2)+1000(Rating3to2))/(100+1000)代码实现usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceSlopeOne{publicclassRating{publicfloatValue{get;set;}publicintFreq{get;set;}publicfloatAverageValue{get{returnValue/Freq;}}}publ

6、icclassRatingDifferenceCollection:Dictionary{privatestringGetKey(intItem1Id,intItem2Id){return(Item1Id(GetKey(Item1Id

7、,Item2Id));}publicRatingthis[intItem1Id,intItem2Id]{get{returnthis[this.GetKey(Item1Id,Item2Id)];}set{this[this.GetKey(Item1Id,Item2Id)]=value;}}}publicclassSlopeOne{publicRatingDifferenceCollection_DiffMarix=newRatingDifferenceCollection();//Thedictionaryt

8、okeepthediffmatrixpublicHashSet_Items=newHashSet();//TrackinghowmanyitemstotallypublicvoidAddUserRatings(IDictionaryuserRatings){foreach(varitem1inuserRatings){intitem1Id=item1.Key

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。