0

私は mahout を少し試して、すべてを構築し始め、例を見てみましょう。私は主に協調フィルタリングに関心があるので、BookCrossing データセットからおすすめを見つける例から始めました。私はなんとかすべてを機能させることができました.サンプルはエラーなしで実行されます. ただし、出力は次のようになります。

INFO: Creating FileDataModel for file /tmp/taste.bookcrossing.
INFO: Reading file info...
INFO: Read lines: 433647
INFO: Processed 10000 users
INFO: Processed 20000 users
INFO: Processed 30000 users
INFO: Processed 40000 users
INFO: Processed 50000 users
INFO: Processed 60000 users
INFO: Processed 70000 users
INFO: Processed 77799 users
INFO: Beginning evaluation using 0.9 of BookCrossingDataModel
INFO: Processed 10000 users
INFO: Processed 20000 users
INFO: Processed 22090 users
INFO: Beginning evaluation of 4245 users
INFO: Starting timing of 4245 tasks in 2 threads
INFO: Average time per recommendation: 296ms
INFO: Approximate memory used: 115MB / 167MB
INFO: Unable to recommend in 1 cases
INFO: Average time per recommendation: 67ms
INFO: Approximate memory used: 107MB / 167MB
INFO: Unable to recommend in 2363 cases
INFO: Average time per recommendation: 72ms
INFO: Approximate memory used: 146MB / 167MB
INFO: Unable to recommend in 5095 cases
INFO: Average time per recommendation: 71ms
INFO: Approximate memory used: 113MB / 167MB
INFO: Unable to recommend in 7596 cases
INFO: Average time per recommendation: 71ms
INFO: Approximate memory used: 130MB / 167MB
INFO: Unable to recommend in 10896 cases
INFO: Evaluation result: 1.0895580110095793

コードを確認すると、次のようになっていることがわかります。

RecommenderIRStatsEvaluator evaluator = new GenericRecommenderIRStatsEvaluator();
File ratingsFile = TasteOptionParser.getRatings(args);
DataModel model =
    ratingsFile == null ? new BookCrossingDataModel(true) : new BookCrossingDataModel(ratingsFile, true);

IRStatistics evaluation = evaluator.evaluate(
    new BookCrossingBooleanRecommenderBuilder(),
    new BookCrossingDataModelBuilder(),
    model,
    null,
    3,
    Double.NEGATIVE_INFINITY,
    1.0);

log.info(String.valueOf(evaluation));

それは正しいようですが、生成された提案や類似点から詳細を確認したいと思います。返されるオブジェクトは IRStatistics 型で、結果の統計の一部の数値のみを公開します。私は別の場所を見るべきですか?このレコメンデーションは、実際のレコメンデーションを取得するためのものではありませんか?

4

1 に答える 1