【问题标题】:Recommendations based on product view history using Mahout使用 Mahout 基于产品查看历史的推荐
【发布时间】:2015-05-19 18:11:27
【问题描述】:

我正在开发一个电子商务网站。我想使用 Apache Mahout 根据用户的产品查看历史创建推荐器。现在,我能够根据用户提供的评级数据生成推荐。现在,推荐器的输入是 user_id、item_id 和 rating。我想创建一个推荐器,它根据用户查看的产品生成推荐。谁能告诉我这是如何实现的?

附言。我需要使用 Apache Mahout。

【问题讨论】:

  • 用户偏好数据是聚合的,即用户 x 已查看项目 y 7 次,还是只是布尔值,即用户 x 已查看项目 y?
  • yaa...只是用户 x 已经查看了项目 y...然后根据用户比较 mahout 会推荐一些其他项目.. 访问项目的次数无关紧要...

标签: apache mahout


【解决方案1】:

Mahout 可以处理您的隐式评分的布尔偏好。布尔数据模型可以使用 PostgreSQLBooleanPrefJDBCDataModel 或 MySQLBooleanPrefJDBCDataModel 类从 csv 文件或数据库创建。与具有非布尔评级的推荐的主要区别在于,对于布尔偏好,相似性应该是 Tanimoto 或 Log Likelihood 相似性。所以 Mahout 主页的示例代码如下所示:

           DataModel model = new FileDataModel(new File("booleanpref.dat"));

            UserSimilarity userSimilarity = new TanimotoCoefficientSimilarity(
                    model);

            UserNeighborhood neighborhood = new NearestNUserNeighborhood(3,
                    userSimilarity, model);
            Recommender recommender = new GenericUserBasedRecommender(model,
                    neighborhood, userSimilarity);
            Recommender cachingRecommender = new CachingRecommender(recommender);
            List<RecommendedItem> recommendations = cachingRecommender
                    .recommend(1234, 10);

blog 给出了基于项目的布尔推荐示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多