集体智慧编程笔记:物品推荐过程小结
2015-12-05 23:17
225 查看
1、搜集偏好数据:
准备好人与物之间的数据:即每个person,对各个item的评价,评价需要量化成数字,比如1-10的评分,或者是喜欢\不喜欢\缺失
的评价(转化成1、-1、0),已购买\已浏览\未购买(2\1\0)等;
2、寻找相似用户:
利用上述数据,计算每个用户之间的相似性:使用欧氏距离法,或者皮尔森系数等都可以,只需要满足:拥有同样的函数签名、以一个浮点数作为返回值,其数值越大代表相似度越大。
根据相似性评价指标,可以得到对每个用户,其他用户的相似性评分表;
3、推荐物品:
找到用户的相似用户后,并非将直接将相似用户的item直接推荐给用户。有种可能是:相似用户与一些item还没有建立评分联系,而这些item正是用户所喜欢的。
故,使用一个加权的评价值来为所有item打分:想似性*该用户对item的评分,除以总的相似性之和(对item有关系的所有用户的相似性评分之和),这样得到的结果,即是对每个item的一个加权评分
对上述分值作降序排列,即得到一个顺序推荐列表。
准备好人与物之间的数据:即每个person,对各个item的评价,评价需要量化成数字,比如1-10的评分,或者是喜欢\不喜欢\缺失
的评价(转化成1、-1、0),已购买\已浏览\未购买(2\1\0)等;
2、寻找相似用户:
利用上述数据,计算每个用户之间的相似性:使用欧氏距离法,或者皮尔森系数等都可以,只需要满足:拥有同样的函数签名、以一个浮点数作为返回值,其数值越大代表相似度越大。
根据相似性评价指标,可以得到对每个用户,其他用户的相似性评分表;
3、推荐物品:
找到用户的相似用户后,并非将直接将相似用户的item直接推荐给用户。有种可能是:相似用户与一些item还没有建立评分联系,而这些item正是用户所喜欢的。
故,使用一个加权的评价值来为所有item打分:想似性*该用户对item的评分,除以总的相似性之和(对item有关系的所有用户的相似性评分之和),这样得到的结果,即是对每个item的一个加权评分
对上述分值作降序排列,即得到一个顺序推荐列表。
相关文章推荐
- 解决Java调用Azure SDK证书错误javax.net.ssl.SSLHandshakeException
- OutputStream
- mybatis(12) spring和mybatis整合
- xxOutputStream xxInputStream
- 从零开始写javaweb框架笔记7-动手开发web应用
- java.io.Serializable接口
- 开始学习Python,设置环境和编译一个简单的程序
- 一个正则表达式分析(python)
- eclipse 快捷键
- 趣味C语言
- selenium python (四)键盘事件
- 对象内存大小度量
- python django 初始化数据库时提示unknow command:'syncdb'
- 【C++】Visual Studio中动态申请二维数组,new二维数组
- python默认编码与解码格式设置
- Spring/Hibernate 应用性能优化的7种方法
- 第六届蓝桥杯大赛个人赛(软件类)校内选拔题目\Java大学B组\1题
- notepad++代码折叠对应的树形结构快捷键
- Qt 打开保存文件对话框
- 安装 Eclipse IDE for c/c++