推荐算法
ifnoelse
这个作者很懒,什么都没留下…
展开
-
余弦相似度 —— Cosine Similarity
余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。相比距离度量,余弦相似度更加注重两个向量在方向上的差异,而非距离或长度上。与欧几里德距离类似,基于余弦相似度的计算方法也是把用户的喜好作为n-维坐标系中的一个点,通过连接这个点与坐标系的原点构成一条直线(向量),两个用户之间的相似度值就是两条直线(向量)间夹角的余弦值。因为连接代表用户评分的点与原点的直线都会相交于原点转载 2012-07-20 10:18:13 · 39217 阅读 · 1 评论 -
Slope One 推荐算法
Slope One 推荐算法是 2005 年在香港的 WWW 会议上提出来的。可以Google检索会议论文集看原著,不过还是建议看原著之前,看完本文!Slope One是一个基于Item的个性化推荐算法,股票上有个说法是平均值可以掩盖一切异常波动,所以股票上的各个技术指标都是不同时间段的平均值的曲线图或者柱状图等。同样的,Slope one算法也认为:平均值也可以代替某两个未知个体之间的打分差转载 2012-07-20 10:29:39 · 1326 阅读 · 0 评论 -
欧几里德距离的相似度 —— Euclidean Distance-based Similarity
欧几里德距离的相似度 —— Euclidean Distance-based Similarity欧几里德距离计算相似度是所有相似度计算里面最简单、最易理解的方法。它以经过人们一致评价的物品为坐标轴,然后将参与评价的人绘制到坐标系上,并计算他们彼此之间的直线距离。 图中用户A和用户B分别对项目X、Y进行了评分。用户A对项目X的评分为2,对项目Y的评分为4,表示到坐标系中为坐转载 2012-07-20 10:06:02 · 19318 阅读 · 1 评论 -
皮尔森相关性的相似度 —— Pearson correlation-based similarity
基于皮尔森相关性的相似度 —— Pearson correlation-based similarity皮尔森相关系数反应了两个变量之间的线性相关程度,它的取值在[-1, 1]之间。当两个变量的线性关系增强时,相关系数趋于1或-1;当一个变量增大,另一个变量也增大时,表明它们之间是正相关的,相关系数大于0;如果一个变量增大,另一个变量却减小,表明它们之间是负相关的,相关系数小于0;如果相关转载 2012-07-20 09:55:48 · 12948 阅读 · 1 评论 -
斯皮尔曼相关性 —— Spearman Correlation
斯皮尔曼相关性可以理解为是排列后(Rank)用户喜好值之间的Pearson相关度。《Mahout in Action》中有这样的解释:假设对于每个用户,我们找到他最不喜欢的物品,重写他的评分值为“1”;然后找到下一个最不喜欢的物品,重写评分值为“2”,以此类推。然后我们对这些转换后的值求Pearson相关系数,这就是Spearman相关系数。斯皮尔曼相关度的计算舍弃了一些重要信息,即真实的转载 2012-07-20 10:24:06 · 15710 阅读 · 0 评论 -
谷本系数的相似性度量 —— Tanimoto Coefficient-based Similarity
Tanimoto Coefficient和前面的5中相关度计算方式有很大的不同,它不关心用户对物品的具体评分值是多少,它在关心用户与物品之间是否存在关联关系。还记得上一篇文章《Mahout学习笔记——数据承载》里面提到的布尔喜好值(Boolean Preference)吧!Tanimoto Coefficient依赖于用户和物品之间的这种Boolean关系作为输入。更准确的说法为:Tani转载 2012-07-20 10:27:09 · 23772 阅读 · 1 评论