我是一名新手学习驯象师。
我了解到mahout中有五个推荐者。基于用户,基于项目,......
我使用的数据集是movielens 100K
我正在考虑从基于用户的电影推荐器实现一个不同的电影推荐器。即,我不想将用户ID作为输入来向一个用户推荐电影,而是希望获取用户人口统计信息,例如年龄范围,性别,职业和邮政编码。
但问题是我如何创建自己的用户相似性方法(原始的方法是将两个长型用户ID作为参数)以及如何将u.user文件和u.data文件组合在一起?
答案 0 :(得分:1)
我现在明白你的问题。我认为最简单的方法是临时创建一个虚拟用户,其中包含您要查询的人口统计属性,然后推荐给该虚拟用户。
是的,你必须写一个UserSimilarity
,在人口统计数据之上实现你想要的任何相似性规则。
答案 1 :(得分:1)
也许有另一种解决方案。
我实现自己的Rescorer来处理u.user文件和输入(性别,年龄范围......)。如果每条信息都相同,那么我将相应的用户ID放入FastIDSet。
然后,在rescore方法中,我将检查当前用户ID是否在FastIDSet中,如果是,则增加分数。
在我自己的推荐器中,我将使用PlusAnoymousUserDataModel获取临时ID,并调用方法推荐(id,howMany,rescorer)
然而,在我尝试了不同的数据集文件后,我得到了0个推荐项目。
我在想是否是使用PlusAnoymousUserDataModel的正确方法。