0

以下のコードを使用してサンプルデータ「intro.csv」を使用してKnnItemBasedRecommenderを実行しようとしていますが、結果として空のセットが取得されます。

public static void main(String[] args) throws Exception {

        DataModel model = NeuvidisData.convertToDataModel();

        //RecommenderEvaluator evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator();

        RecommenderBuilder recommenderBuilder = new RecommenderBuilder() {
            @Override
            public Recommender buildRecommender(DataModel model) {
                ItemSimilarity similarity = new LogLikelihoodSimilarity(model);
                Optimizer optimizer = new ConjugateGradientOptimizer();
                return new KnnItemBasedRecommender(model, similarity, optimizer, 2);
            }
        };

        Recommender rec = recommenderBuilder.buildRecommender(model);
        List<RecommendedItem>  rcList  = rec.recommend(1, 2);

        for(RecommendedItem item:rcList)
        {
            System.out.println("item:");
            System.out.println(item);
        }
    }

誰か助けてもらえますか?

4

2 に答える 2

0

次のコードは私にとってはうまくいきました。

                ItemSimilarity similarity = new PearsonCorrelationSimilarity(dataModel);
                Optimizer optimizer =  new ConjugateGradientOptimizer();
                Recommender recommender = new KnnItemBasedRecommender(dataModel, similarity, optimizer, 5);

LogLikelihoodSimilarity の代わりに PearsonCorrelationSimilarity を使用しました。

このソリューションは、特定のデータ セットに対して機能する場合があります。したがって、このソリューションはデータセットに基づいています。

于 2013-07-04T04:54:52.723 に答える
0

おそらく、このアルゴリズムを使用してユーザー 1 にレコメンデーションを作成するには、データが小さすぎるかまばらすぎるためです。データがなければなんとも言えません。

于 2013-02-05T15:01:50.300 に答える