mahout过滤推荐结果 Recommender.recommend(long userID, int howMany, IDRescorer rescorer)
public static List<RecommendedItem> getTopItems(int howMany,LongPrimitiveIterator possibleItemIDs,IDRescorer rescorer,Estimator<Long> estimator) throws TasteException {Preconditions.checkArgument(possibleItemIDs != null, "argument is null");Preconditions.checkArgument(estimator != null, "argument is null");Queue<RecommendedItem> topItems = new PriorityQueue<RecommendedItem>(howMany + 1,Collections.reverseOrder(ByValueRecommendedItemComparator.getInstance()));boolean full = false;double lowestTopValue = Double.NEGATIVE_INFINITY;while (possibleItemIDs.hasNext()) {long itemID = possibleItemIDs.next();if (rescorer == null || !rescorer.isFiltered(itemID)) {double preference;try {preference = estimator.estimate(itemID);} catch (NoSuchItemException nsie) {continue;}double rescoredPref = rescorer == null ? preference : rescorer.rescore(itemID, preference);if (!Double.isNaN(rescoredPref) && (!full || rescoredPref > lowestTopValue)) {topItems.add(new GenericRecommendedItem(itemID, (float) rescoredPref));if (full) {topItems.poll();} else if (topItems.size() > howMany) {full = true;topItems.poll();}lowestTopValue = topItems.peek().getValue();}}}int size = topItems.size();if (size == 0) {return Collections.emptyList();}List<RecommendedItem> result = Lists.newArrayListWithCapacity(size);result.addAll(topItems);Collections.sort(result, ByValueRecommendedItemComparator.getInstance());return result;}
recommend(long userID, int howMany): 获得推荐结果,给userID推荐howMany个Item
estimatePreference(long userID, long itemID): 当打分为空,估计用户对物品的打分
setPreference(long userID, long itemID, float value): 赋值用户,物品,打分
removePreference(long userID, long itemID): 删除用户对物品的打分
getDataModel(): 提取推荐数据
版权声明:本文为博主原创文章,未经博主允许不得转载。
转载于:https://www.cnblogs.com/jamesf/p/4751595.html
mahout过滤推荐结果 Recommender.recommend(long userID, int howMany, IDRescorer rescorer)相关推荐
- 推荐算法!基于隐语义模型的协同过滤推荐之用户商品推荐列表
项目采用ALS作为协同过滤算法,根据MongoDB中的用户评分表计算离线的用户商品推荐列表以及商品相似度矩阵. 通过ALS训练出来的Model来计算所有当前用户商品的推荐列表,主要思路如下: 1. u ...
- 电商推荐系统(上):推荐系统架构、数据模型、离线统计与机器学习推荐、历史热门商品、最近热门商品、商品平均得分统计推荐、基于隐语义模型的协同过滤推荐、用户商品推荐列表、商品相似度矩阵、模型评估和参数选取
文章目录 第1章 项目体系架构设计 1.1 项目系统架构 1.2 项目数据流程 1.3 数据模型 第2章 工具环境搭建 2.1 MongoDB(单节点)环境配置 2.2 Redis(单节点)环境配置 ...
- 电商推荐系统四: 基于隐语义模型的协同过滤推荐
四.离线推荐服务建设(基于隐语义模型的协同过滤推荐) 目录 四.离线推荐服务建设(基于隐语义模型的协同过滤推荐) 4.1 离线推荐服务 4.2 离线统计服务 4.3 基于隐语义模型的协同过滤推荐 4. ...
- mahout实现协同过滤推荐算法
前述 mahout支持分类.聚类.推荐等多种功能,这里不展开阐述,只描述协同过滤的使用. 不明白协同过滤是如何计算的同学可以参考这篇文章,通俗易懂. 点击这里 maven依赖 <!-- mhou ...
- 基于Mahout实现协同过滤推荐算法的电影推荐系统
1 Mahout介绍 Apache Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更 ...
- 基于物品的协同过滤mysql_使用Mahout基于用户和物品相似度进行协同过滤推荐内容...
基于用户User协同过滤 package mahout; import java.io.File; import java.io.IOException; import java.util.List; ...
- 基于mahout的协同过滤推荐算法实现
1.简述项目架构 项目主要实现了基于mahout开源项目实现了协同过滤算法,用java常见的ssm框架搭建,完成了对于用户喜欢的电影进行推荐. 采取MVC模式将业务逻辑.数据.界面显示分离的方法组织代 ...
- Mahout协同推荐简单实例
上篇文章介绍了协同过滤的安装与配置,这篇找了几个协同过滤的简单例子,看一下 Mahout给我们提供的强大的协同过滤算法.需要新建一个基于Maven的工程,下面是 pom.xml需要导入的包. < ...
- Apache Mahout中推荐算法Slope one源码分析
2019独角兽企业重金招聘Python工程师标准>>> 关于推荐引擎 如今的互联网中,无论是电子商务还是社交网络,对数据挖掘的需求都越来越大了,而推荐引擎正是数据挖掘完美体现:通过分 ...
最新文章
- 为什么大家都推荐我学Linux
- 人工智能时代,最先占领高维度空间
- Gartner:2019年十大数据与分析技术趋势
- 如何刷入recovery?
- 预训练模型需要知道的知识点总结,万字长文带你深入学习(建议收藏)
- 你真的会写留言功能吗?
- 其他信息: 线程间操作无效: 从不是创建控件“控件名”的线程访问它。
- 2.2.2 MySQL基本功能与参数文件管理
- Java多线程(九)之ReentrantLock与Condition
- Swing的设计是MVC的典范
- 【每日一题】8月4日题目精讲—购物
- 汽车电子知识篇(十二)-汽车域控制器主芯片选型
- 构建微服务:Spring boot 入门篇
- js 获取鼠标在画布的位置_云凤蝶如何打造媲美 sketch 的自由画布
- 论大数据视角下的地球空间信息学的机遇与挑战
- 漫步微积分六——极限的概念
- 基于jetty9 编程构建嵌入式https 服务器
- 构建嵌入式LINUX的NFS【ZT】
- vim python 代码提示_linux vim 编写代码python使用tab补全
- 概念数据模型到逻辑数据模型的转化