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

C++ ItemCF

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

  • 匹配追踪
    贪婪算法的一种 经典的算法,适用于压缩感知,稀疏分解等多种算法的恢复算法。
    2023-03-04 07:10:03下载
    积分:1
  • Gauss
    高斯消元法(选主元)这个也是数学方法中的常用计算程序学过的人都知道的-Gauss-Emilination algorithm
    2022-03-20 12:23:23下载
    积分:1
  • a good molecular dynamics procedure, it provides a lot of orders for users state...
    一个很好的分子动力学程序,它提供了很多命令语句供用户进行建模和计算。-a good molecular dynamics procedure, it provides a lot of orders for users statement modeling and calculation.
    2022-07-26 18:39:58下载
    积分:1
  • 用matlab程序实现粒子群
    该程序是基于matlab平台的粒子群算法的实现程序,用来实现粒子群算法,程序简单易理解,对学习该方面知识的学者提供一定的帮助。
    2022-03-21 20:42:33下载
    积分:1
  • 医学图像处理源代码
    一个完整的可运行的医学图像处理软件源代码, 很全面的VC++程序,都是关于医学图像方面的. 包括配准和分割等功能-Can run a complete medical image processing software source code, including features such as registration and segmentation
    2022-03-19 23:47:44下载
    积分:1
  • C简单实现socket通信
    用c语言简单实现了socket通信,Tcp协议,只能在linux下运行,window下不能使用socket包。
    2022-09-11 23:35:03下载
    积分:1
  • 矩阵数组
    应用背景该算法的基础上,它的基础上的+ +代码关键技术这个代码库是基于C++ + +代码,这只是简单的代码,但也许可以帮助
    2022-12-29 17:35:03下载
    积分:1
  • 系统辨识中,一个很重要的方是用相关分析辨识脉冲响应,该程序可以计出输入和输出序列的互相关函数,以及计出脉冲响应估计值...
    系统辨识中,一个很重要的方法是用相关分析法辨识脉冲响应,该程序可以计算出输入和输出序列的互相关函数,以及计算出脉冲响应估计值-system identification, a very important way is to analyze the identification impulse response, the program can calculate the input and output sequence of cross-correlation function, and calculated the estimated value of the impulse response
    2022-03-12 14:53:12下载
    积分:1
  • dining philosophers problem source code
    哲学家就餐问题源代码-dining philosophers problem source code
    2022-11-23 20:50:03下载
    积分:1
  • jsceg分词器源码
    jcseg是使用Java开发的一个开源中文分词器,使用流行的mmseg算法实现,并且提供了最高版本的lucene, solr, elasticsearch(New)的分词接口.1。目前最高版本:jcseg-1.9.5。兼容最高版本lucene-4.x,solr-4.x,elasticsearch2。三种切分模式: (1).简易模式:FMM算法,适合速度要求场合。 (2).复杂模式-MMSEG四种过滤算法,具有较高的岐义去除,分词准确率达到了98.41%。 (3).(!New)检测模式:只返回词库中已有的词条,很适合某些应用场合。(1.9.4版本开始)3。支持自定义词库。在lexicon文件夹下,可以随便添加/删除/更改词库和词库内容,并且对词库进行了分类。参考下面了解如何给jcseg添加词库/新词。4。(!New) 支持词库多目录加载. 配置lexicon.path中使用";"隔开多个词库目录.5。(!New)词库分为简体/繁体/简繁体混合词库: 可以专门适用于简体切分, 繁体切分, 简繁体混合切分, 并且可以利用下面提到的同义词实现,简繁体的相互检索,  jcseg同时提供了词库两个简单的词库管理工具来进行简繁体的转换和词库的合并.6。中英文同义词追加/同义词匹配 + 中文词条拼音追加.词库整合了《现代汉语词典》和cc-cedict辞典中的词条,并且依据cc-cedict词典为词条标上了拼音,依据《中华同义词词典》为词条标上了同义词(尚未完成)。更改jcseg.properties配置文档可以在分词的时候加入拼音和同义词到分词结果中。7。中文数字和中文分数识别,例如:"一百五十个人都来了,四十分之一的人。"中的"一百五十"和"四十分之一"。并且jcseg
    2022-03-07 04:18:17下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载