Recommender.recommend(uid, RECOMMENDER_NUM, rescorer);
Recommender.recommend(long userID, int howMany, IDRescorer rescorer): 获得推荐结果,给userID推荐howMany个Item,凡rescorer中包含的Item都过滤掉。
其中源码中调用了以下方法 TopItems.getTopItems
TopItems类的.getTopItems
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)相关推荐

  1. 推荐算法!基于隐语义模型的协同过滤推荐之用户商品推荐列表

    项目采用ALS作为协同过滤算法,根据MongoDB中的用户评分表计算离线的用户商品推荐列表以及商品相似度矩阵. 通过ALS训练出来的Model来计算所有当前用户商品的推荐列表,主要思路如下: 1. u ...

  2. 电商推荐系统(上):推荐系统架构、数据模型、离线统计与机器学习推荐、历史热门商品、最近热门商品、商品平均得分统计推荐、基于隐语义模型的协同过滤推荐、用户商品推荐列表、商品相似度矩阵、模型评估和参数选取

    文章目录 第1章 项目体系架构设计 1.1 项目系统架构 1.2 项目数据流程 1.3 数据模型 第2章 工具环境搭建 2.1 MongoDB(单节点)环境配置 2.2 Redis(单节点)环境配置 ...

  3. 电商推荐系统四: 基于隐语义模型的协同过滤推荐

    四.离线推荐服务建设(基于隐语义模型的协同过滤推荐) 目录 四.离线推荐服务建设(基于隐语义模型的协同过滤推荐) 4.1 离线推荐服务 4.2 离线统计服务 4.3 基于隐语义模型的协同过滤推荐 4. ...

  4. mahout实现协同过滤推荐算法

    前述 mahout支持分类.聚类.推荐等多种功能,这里不展开阐述,只描述协同过滤的使用. 不明白协同过滤是如何计算的同学可以参考这篇文章,通俗易懂. 点击这里 maven依赖 <!-- mhou ...

  5. 基于Mahout实现协同过滤推荐算法的电影推荐系统

    1 Mahout介绍 Apache Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发人员更 ...

  6. 基于物品的协同过滤mysql_使用Mahout基于用户和物品相似度进行协同过滤推荐内容...

    基于用户User协同过滤 package mahout; import java.io.File; import java.io.IOException; import java.util.List; ...

  7. 基于mahout的协同过滤推荐算法实现

    1.简述项目架构 项目主要实现了基于mahout开源项目实现了协同过滤算法,用java常见的ssm框架搭建,完成了对于用户喜欢的电影进行推荐. 采取MVC模式将业务逻辑.数据.界面显示分离的方法组织代 ...

  8. Mahout协同推荐简单实例

    上篇文章介绍了协同过滤的安装与配置,这篇找了几个协同过滤的简单例子,看一下 Mahout给我们提供的强大的协同过滤算法.需要新建一个基于Maven的工程,下面是 pom.xml需要导入的包. < ...

  9. Apache Mahout中推荐算法Slope one源码分析

    2019独角兽企业重金招聘Python工程师标准>>> 关于推荐引擎 如今的互联网中,无论是电子商务还是社交网络,对数据挖掘的需求都越来越大了,而推荐引擎正是数据挖掘完美体现:通过分 ...

最新文章

  1. 为什么大家都推荐我学Linux
  2. 人工智能时代,最先占领高维度空间
  3. Gartner:2019年十大数据与分析技术趋势
  4. 如何刷入recovery?
  5. 预训练模型需要知道的知识点总结,万字长文带你深入学习(建议收藏)
  6. 你真的会写留言功能吗?
  7. 其他信息: 线程间操作无效: 从不是创建控件“控件名”的线程访问它。
  8. 2.2.2 MySQL基本功能与参数文件管理
  9. Java多线程(九)之ReentrantLock与Condition
  10. Swing的设计是MVC的典范
  11. 【每日一题】8月4日题目精讲—购物
  12. 汽车电子知识篇(十二)-汽车域控制器主芯片选型
  13. 构建微服务:Spring boot 入门篇
  14. js 获取鼠标在画布的位置_云凤蝶如何打造媲美 sketch 的自由画布
  15. 论大数据视角下的地球空间信息学的机遇与挑战
  16. 漫步微积分六——极限的概念
  17. 基于jetty9 编程构建嵌入式https 服务器
  18. 构建嵌入式LINUX的NFS【ZT】
  19. vim python 代码提示_linux vim 编写代码python使用tab补全
  20. 概念数据模型到逻辑数据模型的转化

热门文章

  1. Windows组策略屏蔽U盘有妙法(图)
  2. 4-20mA一进二出隔离分配器
  3. IDE(21)——常用Java IDE开发工具之 Eclipse 介绍
  4. php的json格式,php json格式问题
  5. (超好用)linux/Windows环境下pdf转图片
  6. 基于python的游戏市场分析
  7. 数据分析方法01对比分析法
  8. Windows 右下角任务栏老弹出 “天猫618超级狂欢红包” 解决方法
  9. Memcache的分布式介绍
  10. 猜数字游戏(改进版)