Example usage for org.apache.mahout.cf.taste.eval RecommenderEvaluator evaluate

List of usage examples for org.apache.mahout.cf.taste.eval RecommenderEvaluator evaluate

Introduction

In this page you can find the example usage for org.apache.mahout.cf.taste.eval RecommenderEvaluator evaluate.

Prototype

double evaluate(RecommenderBuilder recommenderBuilder, DataModelBuilder dataModelBuilder, DataModel dataModel,
        double trainingPercentage, double evaluationPercentage) throws TasteException;

Source Link

Document

Evaluates the quality of a org.apache.mahout.cf.taste.recommender.Recommender 's recommendations.

Usage

From source file:com.corchado.testRecomender.evaluarRecomendadorUI.java

private void Evaluar() {
    try {/*from  w  w  w .ja v a2 s.c  om*/

        RandomUtils.useTestSeed();
        RecommenderEvaluator evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator();
        RecommenderBuilder builder = new RecommenderBuilder() {
            @Override
            public Recommender buildRecommender(DataModel model) throws TasteException {

                //                UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
                UserNeighborhood neighborhood = new NearestNUserNeighborhood(CantVecindad, similarity, model);

                return new GenericUserBasedRecommender(model, neighborhood, similarity);
            }
        };

        double score = evaluator.evaluate(builder, null, model, 0.7, 1.0);
        labelEvaluacion.setText("Evaluacin: " + score);
    } catch (TasteException ex) {
        Logger.getLogger(evaluarRecomendadorUI.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:com.corchado.testRecomender.recomendador.java

public static void Probar(final Scanner entrada, DataModel model, final UserSimilarity similarity)
        throws IOException, TasteException {
    RandomUtils.useTestSeed();/*from  w  ww.  j  a v  a 2 s.  c om*/
    RecommenderEvaluator evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator();
    RecommenderBuilder builder = 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);
        }
    };

    double score = evaluator.evaluate(builder, null, model, 0.7, 1.0);
    System.out.println("evaluacion: " + score);
}

From source file:de.tuberlin.dima.recsys.ssnmm.interactioncut.Evaluate.java

License:Apache License

static void runEvaluation(DataModel interactions, int k, double lambda2, double lambda3,
        double trainingPercentage, int numRuns, int minP, int maxP, int pStepSize)
        throws IOException, TasteException {

    RecommenderEvaluator maeEvaluator = new AverageAbsoluteDifferenceRecommenderEvaluator();
    List<Errors> errors = Lists.newArrayList();

    for (int maxPrefsPerUser = minP; maxPrefsPerUser <= maxP; maxPrefsPerUser += pStepSize) {
        Errors error = new Errors(maxPrefsPerUser);

        for (int n = 0; n < numRuns; n++) {
            double maeSampled = maeEvaluator.evaluate(new BiasedRecommenderBuilder(lambda2, lambda3, k),
                    new InteractionCutDataModelBuilder(maxPrefsPerUser), interactions, trainingPercentage,
                    1 - trainingPercentage);
            error.record(0, maeSampled);
        }//  w w w .  ja  va 2 s .co  m
        errors.add(error);
    }
    for (Errors res : errors) {
        System.out.println(res);
    }
}

From source file:hr.fer.tel.rovkp.homework03.task02.ItemBasedRecommenderEvaluator.java

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

    RandomUtils.useTestSeed();//w w  w . j a  v a 2s  .  c o m

    String fileItemsSimilarity = "./src/main/resources/item_similarity.csv";
    String fileDataModel = "./src/main/resources/jester_ratings_small.dat";

    DataModel model = new FileDataModel(new File(fileDataModel));

    RecommenderBuilder builder = (DataModel m) -> RecommenderUtils.itemBasedRecommender(m, fileItemsSimilarity);

    RecommenderEvaluator recEvaluator = new RMSRecommenderEvaluator();
    double score = recEvaluator.evaluate(builder, null, model, 0.7, 1.0);
    System.out.println(score);
}

From source file:hr.fer.tel.rovkp.homework03.task02.UserBasedRecommenderEvaluator.java

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

    RandomUtils.useTestSeed();//from   w w  w . jav a 2  s  .c  o m

    String fileDataModel = "./src/main/resources/jester_ratings.dat";

    DataModel model = new FileDataModel(new File(fileDataModel));

    RecommenderBuilder builder = (DataModel m) -> RecommenderUtils.userBasedRecommender(m);

    RecommenderEvaluator recEvaluator = new RMSRecommenderEvaluator();
    double score = recEvaluator.evaluate(builder, null, model, 0.7, 1.0);
    System.out.println(score);
}

From source file:lsdr.user.based.recommender.intro.trivial.EvaluatorIntro.java

License:Open Source License

public Double evaluate() throws TasteException {
    RandomUtils.useTestSeed();//from w w w  .j a v  a 2s  .co  m

    RecommenderEvaluator evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator();

    RecommenderBuilder recommenderBuilder = new RecommenderBuilder() {
        @Override
        public Recommender buildRecommender(DataModel model) throws TasteException {
            UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
            UserNeighborhood neighborhood = new NearestNUserNeighborhood(AMOUNT_OF_NEIGHBORS, similarity,
                    model);

            return new GenericUserBasedRecommender(model, neighborhood, similarity);
        }
    };
    //                                                                 70% as a training data
    double score = evaluator.evaluate(recommenderBuilder, null, model, 0.7, 1.0);

    return score;
}

From source file:net.aprendizajengrande.gitrecommender.Experiment.java

License:Open Source License

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

    DataModel model = new FileDataModel(new File(args[0]));

    System.out.println("For repo: " + args[0]);
    System.out.println("User-based:");

    RecommenderEvaluator evaluator = new RMSRecommenderEvaluator();
    RecommenderBuilder recommenderBuilder = new RecommenderBuilder() {
        @Override//  ww w.jav  a  2 s. c  o  m
        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);
        }
    };
    // Use 90% of the data to train; test using the other 10%.
    double score = evaluator.evaluate(recommenderBuilder, null, model, 0.9, 1.0);
    System.out.println(score);

    recommenderBuilder = new RecommenderBuilder() {
        @Override
        public Recommender buildRecommender(DataModel model) throws TasteException {
            ItemSimilarity similarity = new EuclideanDistanceSimilarity(model);
            //new LogLikelihoodSimilarity(model);
            return new GenericItemBasedRecommender(model, similarity);
        }
    };
    System.out.println("Item-based:");
    score = evaluator.evaluate(recommenderBuilder, null, model, 0.9, 1.0);
    System.out.println(score);
}

From source file:nl.gridline.zieook.client.tools.ZieOokEvaluatorTest.java

License:Apache License

/**
 * 3x userbased using: AverageAbsoluteDifferenceRecommenderEvaluator
 */// www .j a va2s  .  c om
@Test
@Ignore
public void evaluate1() {
    // UserBasedRecommenderBuilder
    // AverageAbsoluteDifferenceRecommenderEvaluator
    try {
        DataModel model = createDataModel(input);
        RecommenderEvaluator evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator();
        double evaluation = evaluator.evaluate(
                new UserBasedRecommenderBuilder(EuclideanDistanceSimilarity.class.getCanonicalName()), null,
                model, 0.9, 1.0);
        LOG.info("result: " + evaluation);
        writetofile("EuclideanDistanceSimilarity,AverageAbsoluteDifferenceRecommenderEvaluator," + evaluation
                + "\n");

        evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator();
        evaluation = evaluator.evaluate(
                new UserBasedRecommenderBuilder(PearsonCorrelationSimilarity.class.getCanonicalName()), null,
                model, 0.9, 1.0);
        LOG.info("result: " + evaluation);
        writetofile("PearsonCorrelationSimilarity,AverageAbsoluteDifferenceRecommenderEvaluator," + evaluation
                + "\n");

        evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator();
        evaluation = evaluator.evaluate(
                new UserBasedRecommenderBuilder(UncenteredCosineSimilarity.class.getCanonicalName()), null,
                model, 0.9, 1.0);
        LOG.info("result: " + evaluation);
        writetofile("UncenteredCosineSimilarity,AverageAbsoluteDifferenceRecommenderEvaluator," + evaluation
                + "\n");

    } catch (TasteException e) {
        LOG.error("faild evaulate", e);
        fail();
    }
}

From source file:nl.gridline.zieook.client.tools.ZieOokEvaluatorTest.java

License:Apache License

/**
 * 3x userbased using RMSRecommenderEvaluator
 *///  www  .ja  v  a2  s.  c o  m
@Test
@Ignore
public void evaulate2() {
    // UserBasedRecommenderBuilder
    // RMSRecommenderEvaluator
    try {
        DataModel model = createDataModel(input);

        RecommenderEvaluator evaluator = new RMSRecommenderEvaluator();
        double evaluation = evaluator.evaluate(
                new UserBasedRecommenderBuilder(EuclideanDistanceSimilarity.class.getCanonicalName()), null,
                model, 0.9, 1.0);
        LOG.info("result: " + evaluation);
        writetofile("UserBasedRecommenderBuilder,EuclideanDistanceSimilarity,RMSRecommenderEvaluator,"
                + evaluation + "\n");

        evaluator = new RMSRecommenderEvaluator();
        evaluation = evaluator.evaluate(
                new UserBasedRecommenderBuilder(PearsonCorrelationSimilarity.class.getCanonicalName()), null,
                model, 0.9, 1.0);
        LOG.info("result: " + evaluation);
        writetofile("UserBasedRecommenderBuilder,PearsonCorrelationSimilarity,RMSRecommenderEvaluator,"
                + evaluation + "\n");

        evaluator = new RMSRecommenderEvaluator();
        evaluation = evaluator.evaluate(
                new UserBasedRecommenderBuilder(UncenteredCosineSimilarity.class.getCanonicalName()), null,
                model, 0.9, 1.0);
        LOG.info("result: " + evaluation);
        writetofile("UserBasedRecommenderBuilder,UncenteredCosineSimilarity,RMSRecommenderEvaluator,"
                + evaluation + "\n");

    } catch (TasteException e) {
        LOG.error("faild evaulate", e);
        fail();
    }
}

From source file:nl.gridline.zieook.client.tools.ZieOokEvaluatorTest.java

License:Apache License

@Test
@Ignore//from  ww w .  jav a  2s. c  o  m
public void evaluate3() {
    // ItemBasedRecommenderBuilder
    // RMSRecommenderEvaluator
    try {
        DataModel model = createDataModel(input);
        RecommenderEvaluator evaluator = new RMSRecommenderEvaluator();
        double evaluation = evaluator.evaluate(
                new ItemBasedRecommenderBuilder(EuclideanDistanceSimilarity.class.getCanonicalName()), null,
                model, 0.9, 1.0);
        LOG.info("result: " + evaluation);
        writetofile(
                "ItemBasedRecommenderBuilder,EuclideanDistanceSimilarity,AverageAbsoluteDifferenceRecommenderEvaluator,"
                        + evaluation + "\n");

        evaluator = new RMSRecommenderEvaluator();
        evaluation = evaluator.evaluate(
                new ItemBasedRecommenderBuilder(PearsonCorrelationSimilarity.class.getCanonicalName()), null,
                model, 0.9, 1.0);
        LOG.info("result: " + evaluation);
        writetofile(
                "ItemBasedRecommenderBuilder,PearsonCorrelationSimilarity,AverageAbsoluteDifferenceRecommenderEvaluator,"
                        + evaluation + "\n");

        evaluator = new RMSRecommenderEvaluator();
        evaluation = evaluator.evaluate(
                new ItemBasedRecommenderBuilder(UncenteredCosineSimilarity.class.getCanonicalName()), null,
                model, 0.9, 1.0);
        LOG.info("result: " + evaluation);
        writetofile(
                "ItemBasedRecommenderBuilder,UncenteredCosineSimilarity,AverageAbsoluteDifferenceRecommenderEvaluator,"
                        + evaluation + "\n");
    } catch (TasteException e) {
        LOG.error("faild evaulate", e);
        fail();
    }
}