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

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

 2009-10-15 00:00:00 来源:WEB开发网   
核心提示: 注意虚构数据!本文中的示例完全使用的是虚构数据,我自己完成了所有评分,Apache Mahout 简介:通过可伸缩、商业友好的机器学习来构建智能应用程序(7),模拟了 10 个对 Abraham Lincoln 感兴趣的实际用户,虽然我相信数据内部的概念很有趣,对于此数据,我发现这种组合最为合适

注意虚构数据!

本文中的示例完全使用的是虚构数据。我自己完成了所有评分,模拟了 10 个对 Abraham Lincoln 感兴趣的实际用户。虽然我相信数据内部的概念很有趣,但数据本身以及所使用的值并非如此。我选择虚构数据的原因是希望在所有示例中都使用单一数据集。

首先,我将演示如何为在 recommendations.txt 文件中指定了分数的用户创建推荐。这是 Taste 最为常见的应用,因此首先需要载入包含推荐的数据,并将它存储在一个 DataModel 中。Taste 提供了一些不同的 DataModel 实现,用于操作文件和数据库。在本例中,为简便起见,我选择使用 FileDataModel 类,它对各行的格式要求为:用户 ID、项目 ID、首选项 — 其中,用户 ID 和项目 ID 都是字符串,而首选项可以是双精度型。建立了模型之后,我需要通知 Taste 应该如何通过声明一个 UserSimilarity 实现来比较用户。根据所使用的 UserSimilarity 实现,您可能还需要通知 Taste 如何在未指定明确用户设置的情况下推断首选项。清单 1 实现了以上代码。(示例代码 中的 cf.wikipedia.WikipediaTasteUserDemo 包含了完整的代码清单)。

清单 1. 创建模型和定义用户相似度

//create the data model 
FileDataModel dataModel = new FileDataModel(new File(recsFile)); 
UserSimilarity userSimilarity = new PearsonCorrelationSimilarity(dataModel); 
// Optional: 
userSimilarity.setPreferenceInferrer(new AveragingPreferenceInferrer(dataModel)); 

在 清单 1 中,我使用了 PearsonCorrelationSimilarity,它用于度量两个变量之间的关系,但是也可以使用其他 UserSimilarity 度量。应该根据数据和测试类型来选择相似度度量。对于此数据,我发现这种组合最为合适,但仍然存在一些问题。

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

Tags:Apache Mahout 简介

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