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

C++ ItemCF

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

  • 任务分配问题 求解问题的算法描N个任务分配给n个人,任务j分配给人i的成本是C[i,j],希望完成所有任务的成本最低。
    任务分配问题可数学建模成二分图最大权匹配问题,利用k-m算法求解。我们可以将人员看成是顶点Xi,任务看成是Yj,W[i][j]是 请点击左侧文件开始预览 !预览只提供20%的代码片段,完整代码需下载后查看 加载中 侵权举报
    2022-05-05 12:52:32下载
    积分:1
  • 一个RNG(相关邻近图)的生成算法,输入一些原始数据信息,得到RNG图信息....
    一个RNG(相关邻近图)的生成算法,输入一些原始数据信息,得到RNG图信息.-an RNG (related neighboring) algorithm for the generation, the importation of some raw data information, to receive information RNG map.
    2022-03-15 01:10:48下载
    积分:1
  • 排序算法以及评估
    排序算法以及评估-algorithm and the assessment
    2022-07-12 05:12:26下载
    积分:1
  • MATLAB算法应用
    资源描述本书有大量的MATLAB算法,具有广泛的应用,通过查看,可以更好的学习MATLAB。这对于初学者来说是个很有用的工具。相信读懂他,对学习会有很大用处。
    2022-06-15 22:16:58下载
    积分:1
  • 快速DCT算法32位的C语言实现,乘法次数最少,可嵌入编码器及解码器使用
    快速DCT算法32位的C语言实现,乘法次数最少,可嵌入编码器及解码器使用- Fast DCT the algorithm 32 C language realization, the multiplication number of times are least, may insert the encoder and the decoding use
    2022-08-19 10:04:59下载
    积分:1
  • 蓝牙技术在物联网中的应用研究
    资源描述随着蓝牙技术的不断演进和发展,蓝牙已经从单一 的传统蓝牙技术发展成集传统蓝牙。高速蓝牙和低耗能 蓝牙于一体的综合技术,不同的应用标准更是超过40 个。越来越广的技术领域和越来越多的应用场景,使得目 前的蓝牙技术成为包含传感器技术、识别技术、移动通信 技术等与物联网密切相关的综合技术。因此,蓝牙在物联 网中的应用具有十分广阔的前景。 本文根据传统蓝牙,高速蓝牙和低耗能蓝牙的不同 特性,分析其在物联网中的应用范围,设计相关的应用场 景,以推动蓝牙技术在物联网中的应用。
    2022-02-05 12:35:50下载
    积分:1
  • 用于图象边缘检测,是一个视频采集的基础
    用于图象边缘检测,是一个视频采集的基础-for image edge detection, is a collection of video
    2023-01-24 02:40:04下载
    积分:1
  • webrtc中的ns(背景音去除)模块,可以直接编译,编译完后生成动态库。
    webrtc中的ns(背景音去除)模块,可以直接编译,编译完后生成动态库。后续可以直接使用include目录的noise_suppression.h和library中的libwebrtc_ns.so进行测试。
    2023-04-20 06:20:03下载
    积分:1
  • 自主访问控制
       创建一个主体(客体)就把创建主体(客体)的一个结构加入到主体(客体)链表中去,然后和客体关联起来,一个可以对应一主体并创建一个用户对客体的一个权限结构,使得用户对客体的权限关联起来关联起来,由于设计时候有一个小疏忽,这里的客体并不是主体自己创建的,而是由管理员创建的,所以必须为客体定义其拥有者,点击客体授权进入到客体拥有者授予界面,如下。通关选中客体与主体,点击授予就可以为客体分配其拥有者,然后回到主界面刷新一下,就可以发现授权链表内容被修改了,然后我们通过登陆界面进入到用户专属的授权表,如登录是s1我们可以看到如下界面,左边的权限表是s1所有的权限,然后我们选中一个权限(其中拥有权不能授予,不然会报错)再点击主体,授予,就可以把权限授予到点击的主体,刷新一下授权表就可以查看已经授予的权限 请点击左侧文件开始预览 !预览只提供20%的代码片段,完整代码需下载后查看 加载中 侵权举报
    2022-05-01 01:39:53下载
    积分:1
  • 将空节点连接成链表的静态链表
    about cooperation of list
    2022-05-18 08:43:23下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载