前言:
现时朋友们对“平分算法java”大约比较看重,咱们都想要学习一些“平分算法java”的相关资讯。那么小编同时在网络上汇集了一些关于“平分算法java””的相关内容,希望各位老铁们能喜欢,兄弟们快快来学习一下吧!SlopeOne推荐算法也是基于物品协同过滤算法,但与之前说的ItemCF不同的是,ItemCF计算物品间的相似度,而SlopeOne则是基于不同物品间的评分差来预测用户对物品的评分。
算法简单,易于实现,准确性相对较高,且有效地适应数据的稀疏性。
设用户对物品的评分如下:
步骤1:
计算两个都被评过分物品的评分差的均值。
设:
物品i,j。
N(i)、N(j)分别代表对i,j评过分的用户集。
N(i)∩N(j)代表对i,j都评过分的用户集。
|N(i)∩N(j)|代表对i,j都评过分的用户数量。
u∈N(i)∩N(j)代表用户u对i,j都评过分。
r(u,i)、r(u,j)代表u对i,j的评分。
R(i,j)代表i,j评分差均值。
公式如下:
步骤2:
根据物品间的评分差均值,以及用户对其他物品的真实评分,来预测用户对未评分物品的评分。
设:
N(u)为用户u评过分的物品集。
i∈N(u)为用户u对物品i评过分。
P(u,j)为用户u对物品j的预测评分。
公式如下:
步骤3:
根据预测评分,选取分高的物品推荐。
举例:
设有如下用户与物品的评分:
求用户U3对物品c、d的评分x,y
如图可得,U3对a、b的评分
R(a)=2,R(b)=1。
计算物品间评分差均值:
R(a,b)=[(5-4)+(3-2)+(2-1)]/3=1R(a,c)=[(5-4)+(3-2)]/2=1R(a,d)=2R(b,c)=0R(b,d)=1R(c,d)=1
计算用户U3对c的预测分:
U3给a、b评过分,同时给a、c评过分的人数为2,同时给a、d评过分的人数为2。
P(u3,c)=[2*(R(a)-R(a,c))+2*(R(b-R(b,c)))]/(2+2)=[2(2-1)+2(1-0)]/4=1
计算用户U3对d的评测分:
P(u3,d)=0
U3对c的预测评分x=1,对d的预测评分y=0。
标签: #平分算法java