引言
Taste是曾经风靡一时的推荐算法框架,后来被并入
Mahout中,Mahout的部分推荐算法基于Taste实现。
下文介绍基于Taste实现最常用的UserCF和ItemCF。
本文不涉及
UserCF和ItemCF算法的介绍,这方面网上资料很多,本文仅介绍如何基于Mahout编程实现。
欢迎转载,请注明来源:
http://blog.csdn.net/u010967382/article/details/39183839
步骤一:构建数据模型
UserCF和ItemCF算法的输入数据是用户偏好,用户偏好数据可以有两种形式:
- 包含用户对目标评分的【用户ID,itemID,评分】
- 不包含评分的【用户ID,itemID】
推荐算法的第一步是基于数据源构建数据模型,
Taste构建数据模型的数据源可以有很多,比如JDBC,文件等。
下面仅介绍最常用的文件数据源:
- 用户偏好数据包含评分
示例代码:
DataModel dm = new FileDataModel(new File("E:\\testdata\\3columns"));
- 用户偏好数据不包含评分
示例代码:
DataModel dm = new GenericBooleanPrefDataModel(
GenericBooleanPrefDataModel
.toDataMap<