-
C++ ItemCF
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中选择。认识到这一
- 2022-03-26 08:57:57下载
- 积分:1
-
c 语言实现avl树
读取stl文件,把stl文件中所有三角形面片的顶点坐标记录下来,由于这些三角形面片都是相连的,所以肯定存在很多的重复点。现在要把这些重复点删除,并计算整个stl文件中的点的个数记录下来(不包括重复的点),数据结构用的是AVL树。
- 2022-06-01 23:26:33下载
- 积分:1
-
利用有限元流体计算求解器的准备,包括你的使用…
一个用fortran90编写有限元流体求解器,包括使用源代码,输出文件和单元文件,推荐学习使用-Prepared using a finite element fluid fortran90 solver, including the use of source code, the output file and the unit document and recommend learning to use
- 2022-02-03 11:34:16下载
- 积分:1
-
大学里必学的一门课程,数值分析的一个必做的程序,雅可必插值...
大学里必学的一门课程,数值分析的一个必做的程序,雅可必插值-universities will learn a curriculum, a numerical analysis of the process will do, the latter can certainly interpolation.
- 2022-07-19 15:24:19下载
- 积分:1
-
决策树是用二叉树形图来表示处理逻辑的一种工具。可以直观、清晰地表达加工的逻辑要求。特别适合于判断因素比较少、逻辑组合关系不复杂的情况。...
决策树是用二叉树形图来表示处理逻辑的一种工具。可以直观、清晰地表达加工的逻辑要求。特别适合于判断因素比较少、逻辑组合关系不复杂的情况。
-Decision tree is a tree-shaped diagram used to indicate the processing logic as a tool. Can be intuitive, clear logic processing requirements. Particularly suited to determine the factors that have relatively less logical combination of relations with complex situations.
- 2022-06-20 01:42:38下载
- 积分:1
-
这个应该是经典编程里面的经典算法实现的八皇后问题.也通过了测试.完全达到设计要求.
这个应该是经典编程里面的经典算法实现的八皇后问题.也通过了测试.完全达到设计要求.-This should be a classic of the classic programming algorithm inside the eight Queen s problems. Also passed the test. Fully meet the design requirements.
- 2022-01-22 07:50:23下载
- 积分:1
-
Matlab的地理数据分析
%Markov链%第一种方法A=[0 1243.37 171.92 29.79 0 0 00 0 6983.97 957.97 0 0 00 0 203845.5 9812.96 0 0 034 0 77259.28 11323.64 3851.17 0 4.89128.47 11580.83 917.15 0 5761.7 2397.61 02293.52 79225.61 9979.07 3647.11 0 91339.8 24.360 141.18 964.94 2.2 0 0 28.67]; %原始数据矩阵[m,n]=size(A); %计算矩阵的行数和列数Rsum=sum(A"); %计算矩阵各行数值之和S=Rsum(ones(n,1),:); %将各行数值之和平移为矩阵M=(A"./S)"; %计算转移概率矩阵%第二种方法A=[0
- 2022-01-22 01:04:19下载
- 积分:1
-
VIBE背景差分算法
VIBE实时背景差分算法。这种算法是用 C/c + + 编码的。它可以找到序列帧和视频运动对象。
- 2022-08-23 01:18:31下载
- 积分:1
-
matlab遗传算法工具包
遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解 请点击左侧文件开始预览 !预览只提供20%的代码片段,完整代码需下载后查看 加载中 侵权举报
- 2022-10-13 11:25:03下载
- 积分:1
-
一个Huffman的例子
一个Huffman的例子--A Huffman example
- 2022-08-19 09:15:43下载
- 积分:1