测试目的
1.我们想要确认现在使用的推荐算法到底效果如何,能否达到用户的期望
2.由于推荐系统中广泛使用的有三种主要的距离计算方法,分别是pearson相似度,欧氏距离和角距离,这三种算法在推荐系统中都具有良好的使用性,为了测试哪种距离计算方法是最适合这个图书推荐系统的,我们进行一次测试
测试方法
这次测试的基本思想如下:
我们的推荐系统以及可以通过协同过滤算法推测某个用户对一本未读过书的评分。现在我们将采用交叉测试的方法。具体的做法就是,我们将某些已知的评分值去掉,然后对他们进行预测,最后计算预测值和真实值之间的差异。
首先获得图书评分矩阵:
1.我们想要确认现在使用的推荐算法到底效果如何,能否达到用户的期望
2.由于推荐系统中广泛使用的有三种主要的距离计算方法,分别是pearson相似度,欧氏距离和角距离,这三种算法在推荐系统中都具有良好的使用性,为了测试哪种距离计算方法是最适合这个图书推荐系统的,我们进行一次测试
测试方法
这次测试的基本思想如下:
我们的推荐系统以及可以通过协同过滤算法推测某个用户对一本未读过书的评分。现在我们将采用交叉测试的方法。具体的做法就是,我们将某些已知的评分值去掉,然后对他们进行预测,最后计算预测值和真实值之间的差异。
用于推荐引擎的指标是最小均方根误差(RMSE),我们先计算均方误差的平均值然后取其平方根,如果评级在1星到5星范围内,而我们的RMSE结果为1星的话,代表我们的预测值与用户给出的真实评价相差1颗星。
测试过程首先获得图书评分矩阵:
def getDataFrameAndBookId(): #获得图书评分矩阵
db=pymysql.connect("localhost","root","","douban")
cursor=db.cursor()
sql="select bookid,userid,score from comment limit 10000"
cursor.execute(sql)
record=cursor.fetchall()
data=DataFrame()
for item in record:
data.loc[item[1],item[0]]=item[2]
_&