2

Recommender Systems は初めてです。私は Mahout を学ぼうとしていますが、これまでのところ、私はそれを把握していると思います。

しかし、Mahout in Action (リスト 2.4、21 ページ) の本からの例を使用して Precision & Recall を計算しようとすると、かなり奇妙な問題が発生します。便宜上、ここに本文をコピーして貼り付けます。

RandomUtils.useTestSeed();
 DataModel model = new FileDataModel (new File("intro.csv"));
 RecommenderIRStatsEvaluator evaluator =
 new GenericRecommenderIRStatsEvaluator ();
  RecommenderBuilder recommenderBuilder = new RecommenderBuilder() {
  @Override
   public Recommender buildRecommender(DataModel model)
    throws TasteException {
    UserSimilarity similarity = new PearsonCorrelationSimilarity (model);
    UserNeighborhood neighborhood =
     new NearestNUserNeighborhood (2, similarity, model);
      return
      new GenericUserBasedRecommender (model, neighborhood, similarity);
     }
   };
    IRStatistics stats = evaluator.evaluate(
    recommenderBuilder, null, model, null, 2,
    GenericRecommenderIRStatsEvaluator.CHOOSE_THRESHOLD,
    1.0);
 System.out.println(stats.getPrecision());
 System.out.println(stats.getRecall());

本にある小さなデータセットを使用して上記を実行しようとすると、すべてが正常になります。しかし、Movielens 1M または 10M を使用して精度と再現率を計算しようとすると、結果は恐ろしく低くなります...たとえば、精度と再現率 @ 2 は次のようになります: P: 0.00573 および R: 0.005882

私はアイデアが不足しているので、誰かが同様の問題を抱えている、または持っていた場合、解決策があると聞いてうれしいです...

4

2 に答える 2

-1

問題はあなたの近所の大きさだと思います。近所のサイズで10サイズが少ないという記事を見た記憶があります。10以上の数字で試してください。

于 2016-03-04T19:28:44.720 に答える