【Python】《集体智慧编程》学习笔记(2)推荐系统
2016-08-07 00:00
274 查看
建立数据集
为操作方便手动录入数据集(书中样例)critics={'Lisa Rose': {'Lady in the Water': 2.5, 'Snakes on a Plane': 3.5, 'Just My Luck': 3.0, 'Superman Returns': 3.5, 'You, Me and Dupree': 2.5, 'The Night Listener': 3.0}, 'Gene Seymour': {'Lady in the Water': 3.0, 'Snakes on a Plane': 3.5, 'Just My Luck': 1.5, 'Superman Returns': 5.0, 'The Night Listener': 3.0, 'You, Me and Dupree': 3.5}, 'Michael Phillips': {'Lady in the Water': 2.5, 'Snakes on a Plane': 3.0, 'Superman Returns': 3.5, 'The Night Listener': 4.0}, 'Claudia Puig': {'Snakes on a Plane': 3.5, 'Just My Luck': 3.0, 'The Night Listener': 4.5, 'Superman Returns': 4.0, 'You, Me and Dupree': 2.5}, 'Mick LaSalle': {'Lady in the Water': 3.0, 'Snakes on a Plane': 4.0, 'Just My Luck': 2.0, 'Superman Returns': 3.0, 'The Night Listener': 3.0, 'You, Me and Dupree': 2.0}, 'Jack Matthews': {'Lady in the Water': 3.0, 'Snakes on a Plane': 4.0, 'The Night Listener': 3.0, 'Superman Returns': 5.0, 'You, Me and Dupree': 3.5}, 'Toby': {'Snakes on a Plane':4.5,'You, Me and Dupree':1.0,'Superman Returns':4.0}}
计算欧几里得距离
def sim_distance(prefs,person1,person2): si = list(filter(lambda x:x in prefs[person2],prefs[person1])) return 0 if len(si) == 0 else 1 /(1 + sum((prefs[person1][it] - prefs[person2][it]) ** 2 for it in si))
计算皮尔逊距离
def sim_pearson(prefs,p1,p2): si = list(filter(lambda x:x in prefs[p2],prefs[p1])) n = len(si) sum1 = sum(prefs[p1][item] for item in si) sum2 = sum(prefs[p2][item] for item in si) sum1sq = sum([prefs[p1][it] ** 2 for it in si]) sum2sq = sum([prefs[p2][it] ** 2 for it in si]) pSum = sum([prefs[p1][it] * prefs[p2][it] for it in si]) num = pSum - (sum1 * sum2)/n den = ((sum1sq - sum1 ** 2 / n ) * (sum2sq - sum2 ** 2 / n)) ** 0.5 r = 0 if n == 0 or den == 0 else num / den return r
#待续
相关文章推荐
- 通过Python脚本理解系统进程间通信 推荐
- <数据挖掘><python><一个小的推荐系统示例>
- 基于用户协同过滤的推荐系统算法,python 实现
- 在Python中实现你自己的推荐系统【转载】
- 【Python】《集体智慧编程》学习笔记(1)简介和环境搭建
- 【Shell/Python】CentOS 6.X 系统初始化生产脚本 推荐
- 推荐系统之Python系的Crab-安装篇
- 集体智慧编程——推荐系统(1)
- ubuntu14.04下python2.7推荐系统Crab搭建
- 用于推荐系统的SVD算法python实现
- 使用Python MrJob的MapReduce实现电影推荐系统
- Crab,一款python上优秀的推荐系统引擎
- GPFS通用并行文件系统之python自动部署gpfs集群 推荐
- User Base协同过滤的推荐系统,python实现
- Python 系统时间与Mysql时间对比 推荐
- 通过Python脚本理解系统线程 推荐
- Python的系统管理_09_python_email处理 推荐
- 用Python写个简单的推荐系统(一)
- spark机器学习笔记:(三)用Spark Python构建推荐系统
- 用MovieLens数据集做推荐(Python推荐系统二)