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

C++ ItemCF

于 2022-03-26 发布 文件大小:11.80 MB
0 192
下载积分: 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 个回复

  • 用Csharp语言实现KMP查找匹配测试正确很快
    用Csharp语言实现KMP查找匹配算法测试正确算法很快-Csharp language by KMP matching algorithm to find the correct algorithm to test soon
    2022-02-02 16:29:45下载
    积分:1
  • 使用fdtd光子晶体的模式折射率
    使用fdtd算法计算光子晶体的模式折射率-Fdtd algorithm using photonic crystal pattern of refractive index
    2023-05-02 00:00:03下载
    积分:1
  • 单舵机实验
    单舵机实验,c语言,STC51单片机控制单个数字舵机,讲述舵机原理, 软件仿真PWM控制数字舵机。
    2022-12-12 16:35:03下载
    积分:1
  • 很多数值分析函数
    很多数值分析算法函数-A lot of numerical analysis algorithm function
    2022-05-21 21:36:22下载
    积分:1
  • 最小二乘反褶积程序,原代码已编译,可以…
    最小平方反褶积程序,原代码,已经编译过了,直接可以应用-least squares deconvolution procedure, the original code has been compiled, can be applied directly
    2023-06-13 18:10:03下载
    积分:1
  • 条形码生成软件,根据用户输入自动检索产生条形码图像
    条形码生成软件,根据用户输入自动检索产生条形码图像-Barcode generation program. It can automatically generate barcode according to user s input.
    2022-01-26 07:32:23下载
    积分:1
  • 优化设计中共轭梯度,单纯形等方的matlab代码
    《优化设计》这门课程中的优化方法的作业,代码思路清晰,运行后没问题。包括,powell法,共轭梯度法,牛顿法,阻尼牛顿法,单纯形法,变尺度法等等。梯度法在第二个目标函数优化时并没有达到理想的点,陷入局部最优,阻尼牛顿法在第二个目标 函数处也精度不高。 用共轭梯度法配合牛顿法一维搜索来第二个目标函数时出现了 NaN 的情况, 是因为牛顿法的代码中运行时出现了分母为0的情况, 但是我在分母加了一个很小的数0.000001之后还会出 现,而已开始用变尺度法和牛顿法优化的时候也出现的 NaN 问题就消失了
    2022-02-07 22:58:22下载
    积分:1
  • 使用VC++的环境进行简单编程的计器功能,可以实现+,
    使用VC++的环境进行简单编程的计算器功能,可以实现+,-,*,/,及混合运算等简单功能-VC environment using a simple programming function calculator can be achieved ,-,*,/, and mixed computing simple function
    2022-03-19 19:04:43下载
    积分:1
  • 最长前缀匹配和最近邻规则的ip聚类
     采用C++语言编写的一种新的IP聚类算法。算法结合最长前缀匹配和最近邻规则聚类算法的概念,运用逐步优化的层次聚类的思想,自动并有意义地进行基于数据集中地址属性的无监督聚类。  
    2022-03-24 05:43:54下载
    积分:1
  • 数据结构及其应用
    数据结构算法与应用-C语言描述阅读软件:Adobe Reader 7.0-data structure algorithms and application-C language description reading software : Adobe Reader 7.0
    2023-01-23 12:40:05下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载