Mahout - 推荐给一类人

时间:2011-05-28 01:18:27

标签: mahout recommendation-engine mahout-recommender

我是一名新手学习驯象师。

我了解到mahout中有五个推荐者。基于用户,基于项目,......

我使用的数据集是movielens 100K

我正在考虑从基于用户的电影推荐器实现一个不同的电影推荐器。即,我不想将用户ID作为输入来向一个用户推荐电影,而是希望获取用户人口统计信息,例如年龄范围,性别,职业和邮政编码。

但问题是我如何创建自己的用户相似性方法(原始的方法是将两个长型用户ID作为参数)以及如何将u.user文件和u.data文件组合在一起?

2 个答案:

答案 0 :(得分:1)

我现在明白你的问题。我认为最简单的方法是临时创建一个虚拟用户,其中包含您要查询的人口统计属性,然后推荐给该虚拟用户。

是的,你必须写一个UserSimilarity,在人口统计数据之上实现你想要的任何相似性规则。

答案 1 :(得分:1)

也许有另一种解决方案。

我实现自己的Rescorer来处理u.user文件和输入(性别,年龄范围......)。如果每条信息都相同,那么我将相应的用户ID放入FastIDSet。

然后,在rescore方法中,我将检查当前用户ID是否在FastIDSet中,如果是,则增加分数。

在我自己的推荐器中,我将使用PlusAnoymousUserDataModel获取临时ID,并调用方法推荐(id,howMany,rescorer)

然而,在我尝试了不同的数据集文件后,我得到了0个推荐项目。

我在想是否是使用PlusAnoymousUserDataModel的正确方法。