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