anchor.diff:  data contains rating for all user-item tuples. In contrast, of a system containing
   1000 items, a user may only have rated 20 of them, leaving 980 items unrated. There
   is no way for us to certainly tell if the user likes an unrated product.
  -When we examinte the evaluation result, it is important for us to keep in mind
  +When we examine the evaluation result, it is important for us to keep in mind
   that the final metric is only an approximation of the actual result.
   
   - Recommendation affects user behavior. Suppose you are a e-commerce company and
  
positive.code: and `k` defines how many items we evaluate in the `PredictedResult`.
  We generate a list of all combinations (line 11).
  
  These metrics are expecified as `otherMetrics` (lines 9 to 11), they
  will be calculated and generated on the evaluation UI.
  
  To run this evaluation, you can:
  
  ```
  $ pio eval org.template.recommendation.ComprehensiveRecommendationEvaluation \
    org.template.recommendation.EngineParamsList
  ```
  
negative.code: 2. the `EngineParamsGenerator`, it contains a list of engine params to test
     against.
  The following command kickstarts the evaluation
  workflow for the classification template (replace "org.template" with your package).
  
  ```
  $ pio build
  ...
  $ pio eval org.template.RecommendationEvaluation \
      org.template.EngineParamsList
  ```
  
  You will see the following output:
  