Programming Collective Intelligence notes

本文介绍了编程集体智能中的推荐系统,重点讲解了基于用户和物品的协同过滤方法。通过分析欧几里得距离和皮尔逊相关系数来评估相似度,并探讨了两者在实际应用中的优缺点。同时,分享了处理大规模数据集的技巧和 Movielens 数据集的使用经验。
摘要由CSDN通过智能技术生成

Programming Collective Intelligence notes

第二章 提供推荐

引言

  协同过滤首次出现在《Using collaborative filtering to weave an information tapestry》论文中。他设计了一个名叫Tapesrty的系统,该系统允许人们根据自己对文档感兴趣的程度为其添加标注,并利用这一信息为他人进行文档过滤。

搜集偏好

  以字典格式存储偏好:{user:{‘movie’:socre}}
尽管可以将相当数量人员的偏好信息存储于字典中,但对于一个规模巨大的数据集,还是存在数据库比较方便。

相似度评价

  此处采用了欧几里得距离和皮尔逊相关系数。皮尔逊相关系数可以修正“夸大分值”,即如果A倾向于给出更高的分值,B倾向于给出更低的分值,他们对于movie1和movie2的偏好相同,此时用欧式距离,A和B的偏好相似会被低估。

编程tips:

  1. 对于功能相似的函数编写,尽量使用相同的签名;
  2. 在编写函数的时候,必须考虑到所有输入可能的情况,包括缺失值、分母为0等,需要使用if函数或者其他方式收集这些情况;
  3. 得到结果后,注意排序,sort(reverse=True);
  4. 列表推导式非常强大,可以同时接for循环和if逻辑判断.

点击链接可以了解到不同的

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值