slope one predictors

slope one本质上就是一个线性模型 [latex]f(x)=x+b[/latex],核心思想就是利用其他用户对其他物品的评分和目标物品的评分间的差值作为依据,来推测出目标用户对目标物品的评分。

两个物品i和j之间的平均评分偏差可以表示为:

d e v j , i = ∑ ( u j , u i ∈ S j , i ( R ) u j − u i ∣ S j , i ( R ) ∣ dev_{j,i}=\sum_{(u_{j},u_{i}\in S_{j,i}(R)}\frac{u_{j}-u_{i}}{|S_{j,i}(R)|} devj,i=(uj,uiSj,i(R)Sj,i(R)ujui

其中[latex]S_{j,i}®[/latex]表示同时包含item i , j 的评分集合。 [latex]u_{i}[/latex]则表示用户对item i 的评分值。因此对目标物品j的评分可以表示为[latex]dev_{j,i} + u_{i}[/latex]。每一对i,j都可以这么计算,那么一个简单的把所有i,j对组合起来的方式可以表述如下:

p r e d ( u , j ) = ∑ i ∈ R e l e v a n t ( u , j ) ( d e v j , i + u i ) ∣ R e l e v a n t ( u , j ) ∣ pred(u,j)=\frac{\sum_{i\in Relevant(u,j)}(dev_{j,i}+u_{i})}{|Relevant(u,j)|} pred(u,j)=Relevant(u,j)iRelevant(u,j)(devj,i+ui)

其中Relevant(u,j)指的目标用户对除了目标物品以外的其他评过分的物品的集合,并且集合中的物品同时满足被其他用户评过分。这种方法的一个问题是没有考虑到共同评分的物品数。理论上讲共同评分数越多,预测效果应该更好,故应当考虑借助共同评分物品数对原始结果加权处理。即:

p r e d ( u , j ) = ∑ i ∈ R e l e v a n t ( u , k ) ( d e v j , i + u i ) ∗ ∣ S j , i ( R ) ∣ ∑ i ∈ R e l e v a n t ( u , j ) ∗ ∣ S j , i ( R ) ∣ pred(u,j)=\frac{\sum_{i\in Relevant(u,k)}(dev_{j,i}+u_{i})*|S_{j,i}(R)|}{\sum_{i\in Relevant(u,j)}*|S_{j,i}(R)|} pred(u,j)=iRelevant(u,j)Sj,i(R)iRelevant(u,k)(devj,i+ui)Sj,i(R)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值