Apache Mahout 简介:通过可伸缩、商业友好的机器学习来构建智能应用程序
2009-10-15 00:00:00 来源:WEB开发网从清单 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);
- ››apache设置域名绑定 以及绑定不起作用的排查
- ››apache rewrite将指定URL转向指定的几个服务器
- ››apache配置文件httpd.comf部分参数说明
- ››Apache+Mysql+PHP+phpMyAdmin+Mac OS X 10.7 Lion...
- ››apache+tomcat负载均衡_项目实例
- ››apache mysql php 源码编译使用
- ››Apache添加mod_aspdotnet.so支持ASP.NET配置指南
- ››Apache中改变php.ini的路径
- ››Apache2.2与Tomcat6整合及虚拟主机配置
- ››Apache+php+mysql在windows下的安装与配置图解
- ››Apache+Subversion完美结合,CentOS下实现版本控制...
- ››Apache HTTPServer2.2.16 发布
更多精彩
赞助商链接