title: Interpreting the parameters of the evaluate() function of a item-based recommender in Mahout
body: <p>I am working with boolean values, trying to evaluate a recommending engine in Mahout. My questions are about the selection of the "correct" parameters of the evaluate function. Apologize in advance for the lengthy post.</p>
  
  <pre><code>  IRStatistics evaluate(RecommenderBuilder recommenderBuilder,
                          DataModelBuilder dataModelBuilder,
                          DataModel dataModel,
                          IDRescorer rescorer,
                          int at,
                          double relevanceThreshold,
                          double evaluationPercentage) throws TasteException;
  </code></pre>
  
  <p>1) Can you think of an example in which the following two parameters must be used:</p>
  
  <pre><code> - DataModelBuilder dataModelBuilder
   - IDRescorer rescorer
  </code></pre>
  
  <p>2) For the <code>double relevanceThreshold</code> variable, I set the value GenericRecommenderIRStatsEvaluator.CHOOSE_THRESHOLD, however, I was wondering if a "better" model could be built by setting a different value.</p>
  
  <p>3) In my project, I need to recommend at most 10 items per user. Does this mean that it shouldn't make sense to set a value bigger than 10 for variable <code>int at</code>?</p>
  
  <p>4) Given that I don't bother if I have to wait a lot for building the model, is it a good practice to set variable <code>double evaluationPercentage</code> equal to 1? Can you think of any case where 1 will not give the optimum model?</p>
  
  <p>5) Why precision / recall (note that I am working on boolean data) increases as long as the number of recommendations (i.e. variable <code>int at</code>) increases (I proved that experimentally)?</p>
  
  <p>6) Where does the <code>spiting of both testing and training tests</code> is taking place within mahout, and how could I change that percentage (unless if this is not the case for item-based recommendations)?</p>