mahout过滤推荐结果 Recommender.recommend(long userID, int howMany, IDRescorer rescorer)
来源:互联网 发布:linux 设置启动内核 编辑:程序博客网 时间:2024/06/05 07:53
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(): 提取推荐数据
0 0
- mahout过滤推荐结果 Recommender.recommend(long userID, int howMany, IDRescorer rescorer)
- Mahout协同过滤推荐
- 【甘道夫】通过Mahout构建推荐系统--通过IDRescorer扩展评分规则
- 【甘道夫】通过Mahout构建推荐系统--通过IDRescorer扩展评分规则
- Mahout 物品推荐 协同过滤
- Mahout实现基于性别的IDRescorer
- Mahout(2) Recommender
- [Mahout]--SVD Recommender
- Mahout--(二)协同过滤推荐
- Mahout的taste推荐系统里的几种Recommender分析
- Mahout的taste推荐系统里的几种Recommender分析
- Mahout的taste推荐系统里的几种Recommender分析
- [Mahout in action]--Recommender System
- 【读书笔记】《推荐系统(recommender systems An introduction)》第二章 协同过滤推荐
- 【读书笔记】《推荐系统(recommender systems An introduction)》第九章 针对协同过滤推荐系统的攻击
- 基于 Apache Mahout 实现高效的协同过滤推荐
- 【Machine Learning】Mahout基于协同过滤(CF)的用户推荐
- 用R解析Mahout用户推荐协同过滤算法(UserCF)
- 数据库设计五戒
- 在用java访问数据库时遇到的错误解决方法
- spring aop 理论知识
- 在WindowFrom中画一条直线
- OGRE(八):Ogre例子中的Character脱离Browser的代码
- mahout过滤推荐结果 Recommender.recommend(long userID, int howMany, IDRescorer rescorer)
- 为业务流程构筑引擎BEA WebLogic Process IntegratorTM
- mac OS X 10.9.2 gdb codesign
- Simple test ----Compute the area of a circle
- 模版--截取字符
- 使用之Web Services开发工具--Borland推出专供Java
- 理解一般指针和指向指针的指针
- iOS7开发中的新特性,开发者需要注意了
- 2014阿里实习面试经验