-
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
-
Moving average moving average prediction ModifyShiftAverageRegress.cs trends can...
移动平均预测 ModifyShiftAverageRegress.cs
移动平均也可画趋势图,如下:
public double forecast(int interval)
移动平均认为数据是时间序列数据,该方法预测interval个时间间隔后的值
public override double[] getTrendArray()
得到趋势数组,该数组的数据直接在图形中展示出来就可以产生趋势线。
-Moving average moving average prediction ModifyShiftAverageRegress.cs trends can also be painted as follows: public double forecast (int interval) consider moving average data are time-series data, the method of prediction interval of time after the interval the value of public override double [] getTrendArray () be the trend of the array, the array of data directly in the graphical display can be generated by the trend line.
- 2022-06-06 15:01:20下载
- 积分:1
-
a matrix multiplication code in C Language
一个矩阵相乘的c语言代码-a matrix multiplication code in C Language
- 2022-04-19 17:23:06下载
- 积分:1
-
基本矩阵运算
它是包括矢量和矩阵加,减,乘,转置和逆一个简单的矩阵操作包。
- 2022-08-17 07:07:47下载
- 积分:1
-
双色球随机软件源码
void CRandDlg::OnOK()
{
// TODO: Add extra validation here
int a[7];
int b=0;
srand((unsigned)time( NULL ));
for (int i=0;i
- 2022-03-24 20:24:18下载
- 积分:1
-
一个关于下载文件客户程序的小程序,欢迎大家下载,如有问题,请和我联系。...
一个关于下载文件客户程序的小程序,欢迎大家下载,如有问题,请和我联系。-download files on a client"s computer and you are welcome to download, if there are questions, please contact me.
- 2022-03-01 09:04:57下载
- 积分:1
-
multivariate linear equation solvers
多元线性方程求解程序-multivariate linear equation solvers
- 2022-02-05 16:59:26下载
- 积分:1
-
讲解内排序的PPT
讲解内排序的PPT-on sorting within the PPT
- 2022-05-26 11:56:58下载
- 积分:1
-
mps create
mps create
- 2022-12-22 10:50:03下载
- 积分:1
-
巫魔问题求解,只是一个简单的框架,仅仅有一个很简单的算法...
巫魔问题求解,只是一个简单的框架,仅仅有一个很简单的算法-Wumpus problem solving
- 2022-04-10 08:53:37下载
- 积分:1