博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
提供推荐
阅读量:5049 次
发布时间:2019-06-12

本文共 1027 字,大约阅读时间需要 3 分钟。

1. Collaborative Filtering

Collaborative Filtering: 通过喜好相近的人构造推荐列表。

如何表示喜好?用嵌套字典表示不同人对不同影片的评分。嵌套字典的数据结构就像一棵树,叶子节点(键值)表示最终的属性。(源代码)

>>>from recommendations import critics>>> critics['Toby']{
'Snakes on a Plane': 4.5, 'Superman Returns': 4.0, 'You, Me and Dupree': 1.0}>>> critics['Toby']['Superman Returns']4.0

 

2. Finding Similar Users

Euclidean Distance Score

评价公式:

该值越大,喜好越相似,没有共同评价过的电影,则返回 0.

Pearson Correlation Score

数据不是很规范,比如有人习惯给高分,有人习惯给低分,用皮尔逊相关度评价效果更好。

Pearson Correlation 实际上就是两个向量的余弦值,等于两个向量中心化后(减去均值)的内积除以长度的乘积:

同样,数值越大,两个向量角度越小,喜好越相似。此外,相似度度量方法还有 Jaccard 系数或者曼哈顿距离等,更多关于相似度度量信息可以参考这篇.

Ranking the Critics

根据不同的相似度度量方法返回从高到低排好序的的相似者.

>>> from recommendations import *>>> topMatches(critics, 'Toby', similarity=sim_pearson, n=3)[(0.9912407071619299, 'Lisa Rose'), (0.9244734516419049, 'Mick LaSalle'), (0.8934051474415647, 'Claudia Puig')]

 

3. Recommending Items

现在我们只得到喜好相同的人,怎么才能得到推荐的物品?我们可以查找与自己品味相投的人,并从他们喜好的影片中找到自己没有看过的电影,但是这样不够全面。可以利用下面公式给自己没有看过的电影进行评分预测:

 

 

 

转载于:https://www.cnblogs.com/daniel-D/p/3192180.html

你可能感兴趣的文章
数据结构之查找算法总结笔记
查看>>
Linux内核OOM机制的详细分析
查看>>
Android TextView加上阴影效果
查看>>
Requests库的基本使用
查看>>
C#:System.Array简单使用
查看>>
「Foundation」集合
查看>>
二叉树的遍历 - 数据结构和算法46
查看>>
类模板 - C++快速入门45
查看>>
RijndaelManaged 加密
查看>>
Android 音量调节
查看>>
windows上面链接使用linux上面的docker daemon
查看>>
Redis事务
查看>>
Web框架和Django基础
查看>>
python中的逻辑操作符
查看>>
HDU 1548 A strange lift (Dijkstra)
查看>>
每天一个小程序—0005题(批量处理图片大小)
查看>>
IIS的各种身份验证详细测试
查看>>
JavaScript特效源码(3、菜单特效)
查看>>
Linux常用命令总结
查看>>
yii模型ar中备忘
查看>>