Mahout——推荐给一类人
我是一个新手,正在学习象夫。
我了解到mahout中有五个推荐者。基于用户、基于项目……
我使用的数据集是 movielens 100K
我正在考虑实现一种与基于用户的电影推荐系统略有不同的电影推荐系统。即,我不想将用户 ID 作为仅向一个用户推荐电影的输入,而是想获取用户的人口统计信息,例如年龄范围、性别、职业和邮政编码。
但问题是我如何创建自己的用户相似度方法(最初的方法是以两个长类型用户id作为参数)以及如何将u.user文件和u.data文件组合在一起?
I am a newbie learning mahout.
I learned that there are five recommenders in mahout. User-based, Item-based,...
The datasets I used is movielens 100K
I am thinking implement a little different movie recommender from user based one. i.e., instead of taking user id as an input to recommend movies to only one user, I want to take user demographic information, e.g., age range, gender, occupation, and zip code.
But the problem is how do I create my own user similarity method (The original one is taking two long type user id as parameters) and how do I combine u.user file and u.data file together?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我现在明白你的问题了。我认为最简单的事情是临时创建一个具有您正在查询的人口统计属性的虚拟用户,然后为该虚拟用户推荐。
是的,您必须编写一个
UserSimilarity
来在人口统计数据之上实现您想要的任何相似性规则。I understand your question now. I think the simplest thing is to temporary create a dummy user with the demographic properties you are querying for, and then recommend for that dummy user.
Yes, you would have to write a
UserSimilarity
that implements whatever similarity rule you want on top of the demographic data.也许还有另一种解决方案。
我实现了自己的 Rescorer 来处理 u.user 文件和输入(性别、年龄范围……)。如果每条信息都相等,那么我将相应的用户 id 放入 FastIDSet 中。
然后,在 rescore 方法中,我将检查当前用户 id 是否在 FastIDSet 中,如果是,则增加分数。
在我自己的推荐系统中,我将使用 PlusAnoymousUserDataModel 来获取临时 id,并调用方法 recommen(id, howMany, rescorer)
但是,在我尝试不同的数据集文件后,我得到 0 个推荐项目。
我在想使用 PlusAnoymousUserDataModel 是否是正确的方法。
Maybe there is another solution.
I implement my own Rescorer to deal with u.user file and input (gender, age range, ...). If each piece of information is equal, then I put the according user id into a FastIDSet.
Then, in the rescore method, I will check if the current user id is in FastIDSet, if yes, the augment the score.
In my own Recommender, I will use PlusAnoymousUserDataModel to get a temp id, and call the method recommen(id, howMany, rescorer)
However, after I tried different dataset file, I get 0 recommended item.
I am thinking whether it is the right way to use PlusAnoymousUserDataModel.