Anthony Tsivarev
Anthony Tsivarev

Reputation: 891

Mahout recommender return empty result

I have a table with estimates of the users. There are about 1000 entries. From these data, I want to build a recommendation, but returns an empty list Mahout. In what may be the problem?

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();
    }

Upvotes: 0

Views: 584

Answers (1)

Sean Owen
Sean Owen

Reputation: 66876

That just means there was nothing eligible for recommendation. Your data set is tiny, and, I imagine too sparse. Pearson does not work well with sparse data as it can rarely compute any similarity.

Upvotes: 7

Related Questions