文档章节

【Python】《集体智慧编程》学习笔记(2)推荐系统

duyixian1234
 duyixian1234
发布于 2016/08/07 10:06
字数 353
阅读 36
收藏 0
点赞 0
评论 0

建立数据集

为操作方便手动录入数据集(书中样例)

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

#待续

© 著作权归作者所有

共有 人打赏支持
duyixian1234
粉丝 0
博文 7
码字总数 2707
作品 0
杭州
干货 | 自然语言处理入门资料推荐

微信公众号 关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第一 【Python】:排名第三 【算法】:排名第四 源 | AI深入浅出 最近几个月小编遨游在税务行业的智能问答...

mbx8x9u
01/02
0
0
深度学习炼丹清单:从“入坑”到“放弃”

摘要:随着人工智能的火热,越来越多朋友想要进入深度学习领域,但是总会遇到一个问题:想要系统的入门,但是身边的资料铺天盖地,不知道该从哪里入手。因此,本文想通过自己的一些学习经历和...

阿里云云栖社区
2017/11/27
0
0
一、《集体智慧编程》之机器学习&数据挖掘框架认识

前言:新开通的博客,用于记录一些学习方面的东西,算是一个学习笔记吧。本系列按照《集体智慧编程》一书的框架进行。老实说,《集体》在理论上并不算是很好的参考书,但是该书是以一个个具体...

iTacey
2015/03/28
0
1
人工智能知识整理-第1辑(20170603)-机器学习入门资源汇总

有一天我忽然忘记了一个函数的用法,于是就上谷歌搜,结果搜出来的竟然是自己写的一篇笔记,上面有很详细的回答。当时感觉是跟另外一个自己进行交流,那一个是刚学完知识,印象还非常深的自己...

人工智豪
2017/06/03
0
0
荐书||关于Python的一些书籍推荐

为什么要学Python? 因为... 管它用的到,或是用不到,看一看拓宽思路也是极好的。 入门篇 《A Byte of Python》 豆瓣评分:8.7 推荐人群:初学者,短时间内想了解Python A Byte of Python(中...

包包包包包包包子
2017/11/22
0
0
人工智能三年后将彻底改变前端开发?这并非不可能!

近几天,GitHub排行榜上我们看到了这样一个项目,神经网络通过深度学习,自动把设计稿变成HTML代码。在项目作者Emil Wallner看来,三年后,人工智能将彻底改变前端开发,提高prototyping速度...

web前端04
06/15
0
0
python资料全集

python: 微信公众号开发小记——2.80端口上的服务 python: 微信公众号开发小记——3.接入三方登录 使用python编写一个壁纸网站的简单爬虫 python: python List 用法 Python 中各个时间复杂度...

d_watson
2016/04/15
175
0
【Python】语法学习笔记

1、属性命名规定: python中的标识符是区分大小写的。 以下划线开头的标识符是有特殊意义的。以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用"from...

rathan0
2016/03/06
5
0
推荐 | 基于深度学习的图像语义分割方法回顾(附PDF下载)

微信公众号 关键字全网搜索最新排名 【机器学习算法】:排名第一 【机器学习】:排名第一 【Python】:排名第三 【算法】:排名第四 基于深度学习的图像语义分割 下载方式 请见文末 该报告共...

mbx8x9u
2017/12/31
0
0
Python入门进阶推荐书单

《A Byte Of Python》 中文《简明Python教程》本书采用知识共享协议免费分发,意味着任何人都可以免费获取,这本书走过了11个年头,最新版以Python3为基础同时也会兼顾到Python2的一些东西,...

liuzhijun
2017/06/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

SpringBoot | 第七章:过滤器、监听器、拦截器

前言 在实际开发过程中,经常会碰见一些比如系统启动初始化信息、统计在线人数、在线用户数、过滤敏高词汇、访问权限控制(URL级别)等业务需求。这些对于业务来说一般上是无关的,业务方是无需...

oKong
10分钟前
0
0
存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储

存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储 存储结构分四类:顺序存储、链接存储、索引存储 和 散列存储。 顺序结构和链接结构适用在内存结构中。 顺序表每个单元都是按物理...

DannyCoder
20分钟前
0
0
Firefox 61已经为Ubuntu 提供支持

最新和最好的Mozilla Firefox 61 “Quantum”网络浏览器已经为Ubuntu Linux操作系统的用户提供了支持,现在可以通过官方软件库进行更新。 Mozilla于2018年6月26日发布了Firefox 61版本,该版...

六库科技
47分钟前
0
0
Win10升级后执行系统封装(Sysprep)报错

开始封装 一年多以前开始给公司封装Win10系统,便于统一给公司电脑初始化携带各种软件的系统,致力于装完既可以开发的状态。那时候最新的版本是Win10 1703版本,自然就以他为母盘,然后结合V...

lyunweb
今天
39
0
php 性能优化

#什么情况下会遇到性能问题 PHP 语法使用的不恰当

to_be_better
今天
0
0
Jenkins 构建触发器操作详解

前言 跑自动化用例每次用手工点击jenkins出发自动化用例太麻烦了,我们希望能每天固定时间跑,这样就不用管了,坐等收测试报告结果就行。 一、定时构建语法 * * * * * (五颗星,中间用空格隔...

覃光林
今天
0
0
IDEA配置技巧

超详细设置Idea类注释模板和方法注释模板 idea去掉注解param下划线 JetBrains全系列破解

AK灬
今天
0
0
rsync通过服务同步/Linux系统日志/screen工具

rsync通过服务同步 分为服务端(机器A) 和客户端(机器B) 机器A操作编辑/etc/rsyncd.conf配置文件 [root@yolks1 ~]# vim /etc/rsyncd.conf 文件中添加以下配置 port=873 ...

Hi_Yolks
今天
0
0
分发系统介绍expect脚本远程登录expect脚本远程执行命令 expect脚本传递参数

分发系统介绍 分发系统-expect讲解(也就是一个分发的脚本) 场景: 业务越来越大,网站app,后端,编程语言是php,所以就需要配置lamp或者lnmp,最好还需要吧代码上传到服务器上;但是因为业...

lyy549745
今天
0
0
android studio 中设置创建类时的说明信息(包含 作者 ,创建时间,注释说明等)

今天简单来说一下android studio开发工具中的 一个小设置功能; 在开发过程中我们习惯给新建的类添加一些注释信息,创建日期、时间和作者等。 设置信息 File—>Settings—>Editor—>File and...

切切歆语
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部