提供推荐
提供推荐
天线无双 发表于6个月前
提供推荐
  • 发表于 6个月前
  • 阅读 4
  • 收藏 0
  • 点赞 0
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: 集体智慧编程 学习笔记
  1. 欧几里德距离评价

    欧氏距离:(∑(Xi-Yi)2)1/2,即两项间的差是每个变量值差的平方和再平方根。

    Python方法: pow(n,2) 对某数求平方,sqrt 求平方根可对函数+1,避免被0 整除的错误,返回1 则两人有一样的偏好。

from math import sqrt
sqrt(pow(4.5-4),2+pow(1-2,2))
1/(1+sqrt(pow(4.5-4),2+pow(1-2,2)))

对方法进行封装

def sim_distance(prefs,person1,person2):
  # Get the list of shared_items
  si={}
  for item in prefs[person1]: 
    if item in prefs[person2]: si[item]=1

  # if they have no ratings in common, return 0
  if len(si)==0: return 0

  # Add up the squares of all the differences
  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+sum_of_squares)
共有 人打赏支持
粉丝 0
博文 7
码字总数 2680
×
天线无双
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: