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

C++ ItemCF

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

  • GM(1,1)
    GM(1,1)模型GM(1,n) 灰色度模型 但回归-GM(1,1)
    2022-07-24 20:59:30下载
    积分:1
  • OpenGL三维场景绘制
    资源描述1、直接双击3DSLOADER文件夹中3DSLOADER.vcproj工程文件; 2、本程序是在VC2008中调试通过,运行过程中需要OpenGL库函数
    2023-05-09 15:50:05下载
    积分:1
  • OFELI is an object oriented library of C++ classes for development of finite ele...
    OFELI is an object oriented library of C++ classes for development of finite element codes. Its main features are : * Various storage schemes of matrices (dense, sparse, skyline). * Direct methods of solution of linear systems of equations as well as various combinations of iterative solvers and preconditioners. * Shape functions of most "popular" finite elements * Element arrays of most popular problems (Heat Transfer, Fluid Flow, Solid Mechanics, Electromagnetics, ...).-OFELI is an object oriented library of C++ classes for development of finite element codes. Its main features are :* Various storage schemes of matrices (dense, sparse, skyline).* Direct methods of solution of linear systems of equations as well as various combinations of iterative solvers and preconditioners.* Shape functions of most "popular" finite elements* Element arrays of most popular problems (Heat Transfer, Fluid Flow, Solid Mechanics, Electromagnetics, ...).
    2022-02-27 06:26:31下载
    积分:1
  • 很不容易找到的一个外国人写的Fp
    很不容易找到的一个外国人写的Fp-growth的算法。注释很清楚,编程风格值得借鉴-Not easy to find a foreigner to write the Fp-growth algorithm. Notes It is clear that programming style is worth learning from
    2023-01-14 16:00:03下载
    积分:1
  • 科学运语言matlab的程序设计有关的函数code.rar
    科学运算语言matlab的程序设计有关的函数code.rar-Scientific computing matlab programming language-related function code.rar
    2022-02-05 12:36:22下载
    积分:1
  • 用c++编的N个实例子, 有参考价值
    用c++编的N个实例子, 有参考价值-With c++ Allocation of N examples son, a reference value
    2023-01-01 23:50:03下载
    积分:1
  • 是一个利用VC实现的求星期几的小程序.它可以实现你所在日期的是星期几的查询.是一个比较简单的程序.
    是一个利用VC实现的求星期几的小程序.它可以实现你所在日期的是星期几的查询.是一个比较简单的程序.-VC is a realization of a few weeks for a small procedure. It can be achieved in your date is a few weeks of inquiries. It is a relatively simple procedure.
    2022-06-14 07:43:06下载
    积分:1
  • 斯密斯预估器
    1、CserialPort实现了简单而强大的多线程串口编程工具,CserialPort类是在Remon Spekreijse设计的CSerialPort类基础上设计的,并增加了对二进制数据传输和块读写方式的支持和其他功能函数;2、实现了Smith预估器与PID控制的结合;
    2023-01-05 17:00:10下载
    积分:1
  • 利用MATLAB求解TSP的蚁群
    应用背景蚁群算法解决问题,最近有很好的潜力已经吸引了很多的关注,特别是求解NP难的问题关键技术
    2022-03-22 18:51:00下载
    积分:1
  • 石子合并问题C++
    在一个圆形操场的四周摆放N堆石子(N≤100),现要将石子有次序地合并成一堆。规定每次只能选相邻的两堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。编一程序,读入堆数N及每堆石子数(≤100)选择一种合并石子的方案,分别得到合并这N堆石子为一堆,可以得到的最大得分和最小得分
    2022-10-12 06:40:03下载
    积分:1
  • 696519资源总数
  • 104213会员总数
  • 20今日下载