协作型过滤(2):欧几里得距离评价两个人喜好的想关性

from math import sqrt
def sim_distance(prefs, person1, person2):
si
={}
for item in prefs[person1]: if item in prefs[person2]: si[item]=1
if len(si)==0: return 0
sum_of_squares
=sum([pow(prefs[person1][item]-prefs[person2][item],2) for item in prefs[person1] if item in prefs[person2]]) return 1/(1+sqrt(sum_of_squares))

调用函数,传入两个人的名字作为参数,计算出相似度的评价值:

reload(recommendations)
recommendations.sim_distance(recommendations.critics,'Lisa Rose',Gene Seymour)

 

posted @ 2013-02-20 00:26  <无影人>  阅读(243)  评论(0编辑  收藏  举报