-
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
-
串口转以太网程序
此源文件是串口转以太网的程序文件,芯片采用的stm32单片机,里面各种标注。
- 2022-07-12 19:19:12下载
- 积分:1
-
LEACH路由算法源码
无线传感器网络LEACH (Low Energy Adaptive Clustering Hierarchy)路由算法C++源码
- 2022-04-11 10:39:34下载
- 积分:1
-
计算机图形学,道格拉斯曲线拟合,Delphi源代码,值得学习…
计算机图形学,Douglas曲线拟合,Delphi源码,值得学习。-Computer Graphics, Douglas curve fitting, Delphi source code, it is worth learning.
- 2023-01-26 07:00:03下载
- 积分:1
-
定位算法在传感器网络中的 改进策略
资源描述本文首先在查阅和参考大量国内外相关文献的基础上,介绍了无线传感器网
络节点定位技术的研究背景及意义,综述了国内外研究现状,并详细介绍了无线
传感器网络中一些典型的无需测距定位算法和系统。
传统DV-Hop 算法采用较少的锚节点参与平均跳距计算,未知节点使用此平均
跳距值误差大,为了减小DV-Hop 算法的定位误差,提高待定位节点的定位精度,
本文从以下三方面对其进行改进:针对DV-Hop 定位算法适应节点均匀分布的网络
这一特性,在算法的前期提出了节点的部署策略;针对平均每跳距离在求各种跳
数的节点之间的距离时有着不同程度的影响,在算法的中期提出了距离修正值策
略;针对用三边或多边测量法计算未知节点的坐标精度不高这一问题,在算法的
后期使用了具有交叉因子的粒子群算法这一策略
使用Omnet++和Matlab 仿真工具对提出改进算法的有效性进行验证。实验证
明,与DV-Hop 算法相比,三种改进算法的定位精度都得到了一定程度的提高,特
别是基于交叉因子粒子群定位时效果最佳,能更好地满足实际应用的需求。
关键词:无线传感器网络,节点定位技术,距离向量-跳段,平分四块部署,距离
修正,交叉粒子群优化算法
- 2022-11-10 18:25:04下载
- 积分:1
-
背包问题的C++ 实现
背包问题的 求解代码,自己用C++实现,里面包括0-1背包问题 和 单位质量的背包问题,包括如下几个关键的函数:void vwComp(Item*item,int n) ;void vwSort(Item*item,int n);int getMaxValue(Item*item,int n, int p,int cvs,int cws);double frackKnapsack(Item*item,int n,double *chs);void zeroOneKnapsack(Item*item,int n,int &fv,int &fw,int *fch)
- 2022-10-14 21:55:03下载
- 积分:1
-
插入排序C代码
对一个可排序数组A[],从右到左扫描这个有序的字数组,直到遇到第一个小于等于A[]的元素,然后把A[]插在该元素的后边。基于递归思想,从底至上地实现这个算法,效率会更高,也就是使用迭代。给定n个可排序的元素构成的一个数组A[],输出一个非降序排列的数组A[]。
- 2022-03-04 13:59:36下载
- 积分:1
-
聚类算法对无线网络节点的影响
自己编的,使用kmeans对网络节点进行划分,尽可能使路径最短,从而使无线网络收集点移动的距离最短
- 2022-03-13 22:27:19下载
- 积分:1
-
北大ACM试题poj 第3061题源码,很好的代码,希望对搞ACM的同学有帮助...
北大ACM试题poj 第3061题源码,很好的代码,希望对搞ACM的同学有帮助
-Peking University ACM Chapter 3061 question Question poj source code, good code, and want to help students engage in ACM
- 2022-03-02 13:20:30下载
- 积分:1
-
VC迷宫代码
这是VC迷宫的代码,写的很整洁,非常的好,下载了即使可以用,声音什么的没有设置
- 2022-04-24 08:51:30下载
- 积分:1