mahout-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steven Bourke <sbou...@gmail.com>
Subject Re: Why does evaluating a recommender take far less time than actually generating results?
Date Mon, 18 Oct 2010 07:56:16 GMT
What I mean is my assumption (Which of course can be wrong!)

Is that when using any of the evaluation framework mahout will inspect all
users / preferences in the dataset (if specified). Therefore using .7 as
training and the remaining .3 to predict on would involve using the dataset
in its entirety. However when I look to generate all the users preferences
using the code attached in the original mail  it appears to take a good bit
longer to complete.

I was wondering is the evaluation framework doing anything different or
cutting corners somehow?

On Mon, Oct 18, 2010 at 7:38 AM, Sebastian Schelter <ssc@apache.org> wrote:

> Hi Steve,
>
> If I understand you correctly your question is why it takes longer to
> compute recommendations for all users than to run an evaluation with 0.7 as
> training percentage?
>
> That would be because if you use 70% of the ratings for training, you only
> need to estimate the preference for the remaining 30% of ratings.
>
> --sebastian
>
>
> On 18.10.2010 01:17, Steven Bourke wrote:
>
>> Hi,
>>
>> I've previously tested a variety of recommenders from mahout using the
>> evaluation framework that comes built in (MAE, Precision and Recall).
>>
>> I'm just now generating a full list of recommendations for users from my
>> dataset. Previously using this dataset has taken a matter of minutes to
>> get
>> precision and recall results back using .7 as the training percentage. I
>> now
>> notice that when I generate recommendations for all users in my dataset it
>> takes substantially longer to generate the entire list. Any idea what I
>> could be doing wrong?
>>
>> My code is as follows
>>
>>        LongPrimitiveIterator userlist= model.getUserIDs();
>>
>>          while(userlist.hasNext())
>>
>>          {
>>
>>          Long id = userlist.next();
>>
>>          List<RecommendedItem>  recommendations =
>> recommender.recommend(id,
>> 5);
>>
>>          for(RecommendedItem reco : recommendations)
>>
>>          {
>>
>>          System.out.println(id+" likes " + reco);
>>
>>          }
>>
>>
>>
>>          }
>>
>> }
>>
>>
>>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message