slopeone原理
Slope One 是一种很简单的类比类似的算法, 其实大体意思 就是A B 不同的用户 对不同的 item1 item2 打分
那么 一个新用户C 对item的打分,就是 该用户的打分 减去 其他用户打分的平均 就是C用户对未知tem的打分
他有个很好的有点,数据少的时候效果也很好。
user
item1
item2
A
7
2
B
8
3
C
9
那么 C的item2 打分 为 9-((7-2)+(8-3))/2=4
其实分成2步
1. 计算物品之间评分差的平均值,记为物品间的评分偏差;
2.根据物品间的评分偏差和用户的历史评分,给用户生成预测评分高的推荐物品列表。
python版本
# Copyright 2006 Bryan O'Sullivan .
#
# This software may be used and distributed according to the terms
# of the GNU General Public License, version 2 or later, which is
# incorporated herein by reference.
class SlopeOne(object):
def __init__(self):
self.diffs = {}
self.freqs = {}
def predict(self, userprefs):
preds, fr