我是 Apache Mahout 推荐器的新手。该用例涉及根据用户的购买历史记录向他们提供建议。 我计划使用以下信息:
- 购买类别
- 购买金额
- 购买时间(例如 - 在购买第一条牛仔裤 6 个月后推荐一条牛仔裤)
- 用户位置
为了识别具有相似购买模式/购买时间的用户并给予他们更多偏好,我是否必须为每个用户制作自定义数据模型? 我计划定期从数据库导入以重新创建数据模型。 有没有一种方法可以动态地给予偏好,如下所述:
- 地点+购买类别+时间匹配
- 购买类别+时间匹配
- 地点 + 时间匹配(例如冬季服装)
目前我正在使用提供的示例代码。 (需要进行大量修改)
UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
UserNeighborhood neighborhood = new ThresholdUserNeighborhood(0.1, similarity, model);
UserBasedRecommender recommender = new GenericUserBasedRecommender(model, neighborhood, similarity);
List<RecommendedItem> recommendations = recommender.recommend(74, 10);
最佳答案
一般来说,要实现您的建议,您需要对数据执行一个步骤,添加一个诸如 t_since_last_purchase
之类的功能,该功能采用整数 0 -> inf。例如。自上次购买以来的天数。
此功能(时间)将是另一个相关的用户功能。
我认为您正在查看一些较旧的基于 Map-Reduce 的推荐器 - 实际上它们是一流的 - 但考虑到您的用例,您可能需要查看 coorelated cooccurence based reccomenders其一个显着的好处是能够查看用户的多种 Activity (在您的情况下,位置,以前的购买,时间)。
关于java - Apache mahout 推荐器 - 我应该为每个用户重新创建数据模型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42084184/