0

ユーザーの見積もりを含む表があります。約1000件のエントリーがあります。これらのデータからレコメンデーションを作成したいのですが、空のリスト Mahout が返されます。問題は何でしょうか?

JDBCDataModel dataModel = new MySQLJDBCDataModel(source, "rate", "userId", "eventId", "rate", null);

    dataModel.refresh(null);

    try {
        UserSimilarity userSimilarity = new PearsonCorrelationSimilarity(dataModel);
        userSimilarity.setPreferenceInferrer(new AveragingPreferenceInferrer(dataModel));

        UserNeighborhood neighborhood =
                  new NearestNUserNeighborhood(10, userSimilarity, dataModel);

        Recommender recommender =
                  new GenericUserBasedRecommender(dataModel, neighborhood, userSimilarity);
        Recommender cachingRecommender = new CachingRecommender(recommender);
        List<RecommendedItem> recommendations =
                    cachingRecommender.recommend(user.id, 10);


    } catch (TasteException e) {

        e.printStackTrace();
    }
4

1 に答える 1

7

これは、推奨の対象となるものがなかったことを意味します。あなたのデータセットは小さいです、そして、私はあまりにもまばらだと思います。ピアソンは、類似性をほとんど計算できないため、スパースデータではうまく機能しません。

于 2012-07-13T15:33:25.137 に答える