WEB开发网
开发学院软件开发Java Apache Mahout 简介:通过可伸缩、商业友好的机器... 阅读

Apache Mahout 简介:通过可伸缩、商业友好的机器学习来构建智能应用程序

 2009-10-15 00:00:00 来源:WEB开发网   
核心提示: 与 清单 1 相同,我根据推荐文件创建了一个 DataModel,Apache Mahout 简介:通过可伸缩、商业友好的机器学习来构建智能应用程序(10),但这次并未实例化 UserSimilarity 实例,而是使用 LogLikelihoodSimilarity 创建了一个 ItemSim

与 清单 1 相同,我根据推荐文件创建了一个 DataModel,但这次并未实例化 UserSimilarity 实例,而是使用 LogLikelihoodSimilarity 创建了一个 ItemSimilarity,它可以帮助处理不常见的事件。然后,我将 ItemSimilarity 提供给一个 ItemBasedRecommender,最后请求推荐。完成了!您可以通过 ant item-demo 命令在示例中代码运行它。当然,在此基础上,您可以让系统支持离线执行这些计算,您还可以探索其他的 ItemSimilarity 度量。注意,由于本示例中的数据是随机的,所推荐的内容可能并不符合用户的期望。事实上,您应该确保在测试过程中计算结果,并尝试不同的相似度指标,因为许多常用指标在一些边界情况中会由于数据不足而无法提供合适的推荐。

我们再来看新用户的例子,当用户导航到某个项目之后,缺少用户首选项时的操作就比较容易实现了。对于这种情况,您可以利用项目计算并向 ItemBasedRecommender 请求与相当项目最相似的项目。清单 5 展示了相关代码:

清单 5. 相似项目演示(摘录自 cf.wikipedia.WikipediaTasteItemRecDemo)

//create the data model 
FileDataModel dataModel = new FileDataModel(new File(recsFile)); 
//Create an ItemSimilarity 
ItemSimilarity itemSimilarity = new LogLikelihoodSimilarity(dataModel); 
//Create an Item Based Recommender 
ItemBasedRecommender recommender = 
    new GenericItemBasedRecommender(dataModel, itemSimilarity); 
//Get the recommendations for the Item 
List<RecommendedItem> simItems 
    = recommender.mostSimilarItems(itemId, numRecs); 
TasteUtils.printRecs(simItems, handler.map); 

上一页  5 6 7 8 9 10 

Tags:Apache Mahout 简介

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接