登录
首页 » 算法 » C++ ItemCF

C++ ItemCF

于 2022-03-26 发布 文件大小:11.80 MB
0 224
下载积分: 2 下载次数: 1

代码说明:

UserCF和ItemCF是协同过滤中最为古老的两种算法,在top-N的推荐上被广泛应用。这两个算法之所以重要,是因为他们使用了两个不同的推荐系统基本假设。UserCF认为一个人会喜欢和他有相同爱好的人喜欢的东西,而ItemCF认为一个人会喜欢和他以前喜欢的东西相似的东西。这两个假设都有其合理性。根据我的测试,用UserCF和ItemCF做出的推荐列表中,只有50%是一样的,还有50%完全不同。但是这两个算法确有相似的精度。所以说,这两个算法是很互补的。我一直认为这两个算法是推荐系统的根本,因为无论我们是用矩阵,还是用概率模型,我们都非常的依赖于前面说的两种假设。如果用户的行为不符合那两种假设,推荐系统就没必要存在了。因此我一直希望能够找出这两种算法的本质区别。他们有相似的精度,但是coverage相差很大,ItemCF coverage很大而UserCF很小。我还测试了很多其他指标,不过要从这些表象的指标差异找出这两个算法的本质区别还是非常困难。不过上周我基本发现了这两个算法推荐机理的本质区别。我们做如下假设。每个用户兴趣爱好都是广泛的,他们可能喜欢好几个领域的东西。不过每个用户肯定也有一个主要的领域,对这个领域会比其他领域更加关心。给定一个用户,假设他喜欢3个领域A,B,C,同时A是他喜欢的主要领域。这个时候我们来看UserCF和ItemCF倾向于做出什么推荐。结果如下,如果用UserCF, 它会将A,B,C三个领域中比较热门的东西推荐给用户。而如果用ItemCF,它会基本上只推荐A领域的东西给用户。因为UserCF只推荐热门的,所以UserCF在推荐长尾上能力不足。而ItemCF只推荐A领域给用户,这样他有限的推荐列表中就可能包含了一定数量的不热门item,所以ItemCF推荐长尾的能力比较强。不过ItemCF的推荐对某一个用户而言,显然多样性不足。但是对整个系统而言,因为不同的用户的主要兴趣点不同,所以系统的coverage会很大。显然上面的两种推荐都有其合理性,但都不是最好的选择,因此他们的精度也会有损失。最好的选择是,如果我们给这个用户推荐30个item,我们既不是每个领域挑选10个最热门的给他,也不是推荐30个A领域的给他,而是比如推荐15个A领域的给他,剩下的15个从B,C中选择。认识到这一

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • 微粒群寻优算法源程序,可根据需要自行修改
    微粒群寻优算法源程序,可根据需要自行修改-Particle swarm optimization algorithm source code can be modified according to the needs of their own
    2022-09-30 01:10:03下载
    积分:1
  • jmetal5.3集成多种进化算法
    JMetal是一个集成的可以更方便地比较各种算法的平台,包括的算法是流行的,常用的多目标进化算法,包括NSGA2,SPEA2,NSGA3等。
    2023-08-03 00:10:11下载
    积分:1
  • textrank algorithm
    利用textRank关键词提取算法,分析用户微博中所包含的关键词,作为用户的标签,可以用于用户聚类,用户兴趣分析等
    2023-01-30 09:00:04下载
    积分:1
  • 简单计算器的实现
    本文是基于Visual 6.0的C++语言编程 实现了简单计算器的加、减、乘、除运算操作。
    2023-06-25 23:00:03下载
    积分:1
  • C++实现基于VQ和HMM的语音识别
    资源描述 基于VQ和HMM的语音处理-c++读入wave文件,可进行显示波形,进行端点检测,提取语音特征参数,通过训练,最后可以进行简单的语音识别,代码充足,是大家学习的好工具。
    2022-05-21 20:38:17下载
    积分:1
  • c++深度优先搜索的回溯法实现多集合矩阵互斥问题
    给定1个1000行×20列的0-1矩阵,对于该矩阵的任意1列,其中值为1的元素的数量不超过10%。设有两个非空集合A和B,每个集合由矩阵的若干列组成。集合A和B互斥是指对于矩阵的任意一行,同时满足下列2个条件:1)若A中有一个或多个元素在这一行上的值是1,则B中的元素在这一行全部是0;2)若B中有一个或多个元素在这一行上的值是1,则A中的元素在这一行全部是0。请你设计一个算法,找出集合A、B和C,满足:1)A、B、C两两互斥,且2)A、B和C包含的列的总数最大。
    2022-07-25 02:20:37下载
    积分:1
  • 基于邻居覆盖减少MANET路由开销的概率转发
    为了降低移动自组织网络(Manet)中的路由开销,我们提出了一种基于邻居覆盖的概率重播方案,由于移动自组织网络(Manet)的高移动性,存在频繁的链路中断,导致路径失效和路由失效新发现路由发现的开销不能被忽略被忽视。在路线发现,广播是一种基本而有效的数据传播机制,其中,移动节点盲目地重播第一个接收到的路由请求包,从而导致广播Strom问题来了我们正在避开广播风暴问题来了我们使用两个主要因素,即连通性因子和平均延迟,找到了从源到目的地发送消息的共同邻居比率.we将通过公共邻居路径发送rreq,从而减少重传和路由开销。
    2022-04-22 00:24:07下载
    积分:1
  • 双摆动画
    通过 Matlab 提示符下键入 DoublePendulumAnimation 运行该程序。请确保您在 Matlab 中的当前目录设置为包含 DoublePendulumAnimation.m 的目录。要使用默认的参数运行动画,只需单击开始按钮时开始动画。你可以通过改变参数及初始条件和按下开始按钮,看到双摆的运动试验。 1) 如果动画都太缓慢下降的点的数量。 2) 如果动画是太快或太生涩的点的数量增加。 3) 不同的时间跨度,要么增加要么减少动画的长度。
    2022-01-25 22:24:13下载
    积分:1
  • 图像处理函数
    包含图像处理基本算法。高斯滤波。拉普拉斯锐化。反色。傅里叶变换。灰度均衡。walsh变换等。对比度拉伸。方块编码。二值化变换。调试时的计算机的配置:Windows2000/XP + Visual Studio 6.0 企业版 。。
    2022-07-28 09:20:20下载
    积分:1
  • C、 人工智慧、 BFS 和 DFS
    出差旅行推销员的问题,解决问题使用人工智能此代码
    2022-08-25 16:42:27下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载