分享

Mahout协同过滤

 hmtomyang 2019-05-21
public static void main(String[] args) throws Exception { //准备数据 这里是电影评分数据 File file = new File("F:\\software\\workstation\\Mahout\\ratings.dat"); //将数据加载到内存中,GroupLensDataModel是针对开放电影评论数据的 DataModel dataModel = new GroupLensDataModel(file); //计算相似度,相似度算法有很多种,欧几里得、皮尔逊等等。 ItemSimilarity itemSimilarity = new PearsonCorrelationSimilarity(dataModel); //构建推荐器,协同过滤推荐有两种,分别是基于用户的和基于物品的,这里使用基于物品的协同过滤推荐 GenericItemBasedRecommender recommender = new GenericItemBasedRecommender(dataModel, itemSimilarity); //给用户ID等于5的用户推荐10个与2398相似的商品 List<RecommendedItem> recommendedItemList = recommender.recommendedBecause(5, 2398, 10); //打印推荐的结果 System.out.println("使用基于物品的协同过滤算法"); System.out.println("根据用户5当前浏览的商品2398,推荐10个相似的商品"); for (RecommendedItem recommendedItem : recommendedItemList) { System.out.println(recommendedItem); } long start = System.currentTimeMillis(); recommendedItemList = recommender.recommendedBecause(5, 34, 10); //打印推荐的结果 System.out.println("使用基于物品的协同过滤算法"); System.out.println("根据用户5当前浏览的商品2398,推荐10个相似的商品"); for (RecommendedItem recommendedItem : recommendedItemList) { System.out.println(recommendedItem); } System.out.println(System.currentTimeMillis() -start); }

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多