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

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

 2009-10-15 00:00:00 来源:WEB开发网   
核心提示: 从清单 3 中可以看到,系统推荐了一些信心级别不同的文章,Apache Mahout 简介:通过可伸缩、商业友好的机器学习来构建智能应用程序(9),事实上,这些项目的分数都是由其他 Lincoln 爱好者指定的,幸运的是,Taste 可以非常轻松地实现基于项目的方法,而不是用户 995 一人所为

从清单 3 中可以看到,系统推荐了一些信心级别不同的文章。事实上,这些项目的分数都是由其他 Lincoln 爱好者指定的,而不是用户 995 一人所为。如果您希望查看其他用户的结构,只需要在命令行中传递 -Duser.id=USER-ID 参数,其中 USER-ID 是 0 和 999 之间的编号。您还可以通过传递 -Dneighbor.size=X 来更改邻近空间,其中,X 是一个大于 0 的整型值。事实上,将邻近空间更改为 10 可以生成极为不同的结果,这是因为阾近范围内存在一个随机用户。要查看邻近用户以及共有的项目,可以向命令行添加 -Dcommon=true。

现在,如果您所输入的编号恰好不在用户范围内,则会注意到示例生成了一个 NoSuchUserException。确实,应用程序需要处理新用户进入系统的情况。举例来说,您可以只显示 10 篇最热门的文章,一组随机文章,或者一组 “不相关” 的文章 — 或者,与其这样,还不如不执行任何操作。

如前所述,基于用户的方法经常不具有可伸缩性。在本例中,使用基于项目的方法是更好的选择。幸运的是,Taste 可以非常轻松地实现基于项目的方法。处理项目相似度的基本代码并没有很大差异,如清单 4 所示:

清单 4. 项目相似度示例(摘录自 cf.wikipedia.WikipediaTasteItemItemDemo)

//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 
List<RecommendedItem> recommendations = 
    recommender.recommend(userId, 5); 
TasteUtils.printRecs(recommendations, handler.map); 

上一页  4 5 6 7 8 9 10  下一页

Tags:Apache Mahout 简介

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