Example usage for org.apache.mahout.cf.taste.impl.eval AverageAbsoluteDifferenceRecommenderEvaluator AverageAbsoluteDifferenceRecommenderEvaluator

List of usage examples for org.apache.mahout.cf.taste.impl.eval AverageAbsoluteDifferenceRecommenderEvaluator AverageAbsoluteDifferenceRecommenderEvaluator

Introduction

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

Prototype

AverageAbsoluteDifferenceRecommenderEvaluator

Source Link

Usage

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

private void Evaluar() {
    try {//from www .  j  av  a  2s  .  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();/*  ww w. ja v  a 2s .  c o m*/
    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. j  a v a2s .  c  o m
        errors.add(error);
    }
    for (Errors res : errors) {
        System.out.println(res);
    }
}

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  .jav  a 2  s .  c  o 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:nl.gridline.zieook.client.tools.ZieOokEvaluatorTest.java

License:Apache License

/**
 * 3x userbased using: AverageAbsoluteDifferenceRecommenderEvaluator
 *//*from ww  w .ja  va  2  s .  co  m*/
@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

@Test
@Ignore//from   w w w . ja va 2  s.c  om
public void evaluate4() {
    // ItemBasedRecommenderBuilder
    // AverageAbsoluteDifferenceRecommenderEvaluator
    try {
        DataModel model = createDataModel(input);
        RecommenderEvaluator evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator();
        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 AverageAbsoluteDifferenceRecommenderEvaluator();
        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 AverageAbsoluteDifferenceRecommenderEvaluator();
        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();
    }
}

From source file:nl.gridline.zieook.tasks.quality.MahoutEvaluatorTest.java

License:Apache License

@Test
public void testSanity() throws TasteException, IOException {
    RandomUtils.useTestSeed();//  w w  w  .j  a v a2  s . c  om

    LOG.info("testing sanity on dummy data, result should be 1.0");

    DataModel model = new FileDataModel(new File("test-data-small/intro.csv"));
    AverageAbsoluteDifferenceRecommenderEvaluator evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator();
    RecommenderBuilder builder = new RecommenderBuilder() {

        @Override
        public Recommender buildRecommender(DataModel model) throws TasteException {
            PearsonCorrelationSimilarity similarity = new PearsonCorrelationSimilarity(model);
            NearestNUserNeighborhood neighborhood = new NearestNUserNeighborhood(2, similarity, model);
            return new GenericUserBasedRecommender(model, neighborhood, similarity);
        }
    };

    final long start = System.currentTimeMillis();
    double score = evaluator.evaluate(builder, null, model, 0.7, 1.0);
    LOG.info("score: {} in {}ms", String.format("%.4f", score), (System.currentTimeMillis() - start));

    assertTrue(1.0 == score);

}

From source file:nl.gridline.zieook.tasks.quality.MahoutEvaluatorTest.java

License:Apache License

@Test
public void testRandom() throws IOException, TasteException {
    RandomUtils.useTestSeed();//from   ww  w.  j ava2  s .c o  m

    LOG.info("testing Random:");
    DataModel model = new FileDataModel(testData);
    GenericRecommenderIRStatsEvaluator evaluatorIR = new GenericRecommenderIRStatsEvaluator();
    AverageAbsoluteDifferenceRecommenderEvaluator evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator();
    RMSRecommenderEvaluator rmsEvaluator = new RMSRecommenderEvaluator();

    RecommenderBuilder builder = new RecommenderBuilder() {
        @Override
        public Recommender buildRecommender(DataModel model) throws TasteException {
            return new RandomRecommender(model);
        }
    };

    long start = System.currentTimeMillis();
    double score = evaluator.evaluate(builder, null, model, 0.7, 1.0);
    LOG.info("score: {} in {}s", String.format("%.4f", score), ((System.currentTimeMillis() - start) / 1000));

    start = System.currentTimeMillis();
    score = rmsEvaluator.evaluate(builder, null, model, 0.7, 1.0);
    LOG.info("rms score: {} in {}s", String.format("%.4f", score),
            ((System.currentTimeMillis() - start) / 1000));

    start = System.currentTimeMillis();
    IRStatistics stats = evaluatorIR.evaluate(builder, null, model, null, 2,
            GenericRecommenderIRStatsEvaluator.CHOOSE_THRESHOLD, 1.0);
    LOG.info("precision: {} recall: {} in {}s", new Object[] { String.format("%.4f", stats.getPrecision()),
            String.format("%.4f", stats.getRecall()), ((System.currentTimeMillis() - start) / 1000) });

}

From source file:nl.gridline.zieook.tasks.quality.MahoutEvaluatorTest.java

License:Apache License

@Test
public void testPearsonCorrelationSimilarity() throws IOException, TasteException {
    RandomUtils.useTestSeed();// www.j a  va2 s.c om

    LOG.info("testing PearsonCorrelationSimilarity: ");

    DataModel model = new FileDataModel(testData);

    AverageAbsoluteDifferenceRecommenderEvaluator evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator();
    RMSRecommenderEvaluator rmsEvaluator = new RMSRecommenderEvaluator();

    GenericRecommenderIRStatsEvaluator evaluatorIR = new GenericRecommenderIRStatsEvaluator();

    RecommenderBuilder builder = new RecommenderBuilder() {
        @Override
        public Recommender buildRecommender(DataModel model) throws TasteException {
            PearsonCorrelationSimilarity similarity = new PearsonCorrelationSimilarity(model);
            UserNeighborhood neighborhood = new NearestNUserNeighborhood(2, similarity, model);
            return new GenericUserBasedRecommender(model, neighborhood, similarity);
        }
    };

    long start = System.currentTimeMillis();
    double score = evaluator.evaluate(builder, null, model, 0.7, 1.0);
    LOG.info("score: {} in {}s", String.format("%.4f", score), ((System.currentTimeMillis() - start) / 1000));

    start = System.currentTimeMillis();
    score = rmsEvaluator.evaluate(builder, null, model, 0.7, 1.0);
    LOG.info("rms score: {} in {}s", String.format("%.4f", score),
            ((System.currentTimeMillis() - start) / 1000));

    start = System.currentTimeMillis();
    IRStatistics stats = evaluatorIR.evaluate(builder, null, model, null, 2,
            GenericRecommenderIRStatsEvaluator.CHOOSE_THRESHOLD, 1.0);

    LOG.info("precision: {} recall: {} in {}s", new Object[] { String.format("%.4f", stats.getPrecision()),
            String.format("%.4f", stats.getRecall()), ((System.currentTimeMillis() - start) / 1000) });

}

From source file:nl.gridline.zieook.tasks.quality.MahoutEvaluatorTest.java

License:Apache License

@Test
public void testTanimotoCoefficientSimilarity() throws TasteException, IOException {
    RandomUtils.useTestSeed();//from  ww w. j a va2  s  .com

    LOG.info("testing: TanimotoCoefficientSimilarity:");

    DataModel model = new FileDataModel(testData);

    AverageAbsoluteDifferenceRecommenderEvaluator evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator();
    RMSRecommenderEvaluator rmsEvaluator = new RMSRecommenderEvaluator();

    GenericRecommenderIRStatsEvaluator evaluatorIR = new GenericRecommenderIRStatsEvaluator();

    RecommenderBuilder builder = new RecommenderBuilder() {
        @Override
        public Recommender buildRecommender(DataModel model) throws TasteException {
            TanimotoCoefficientSimilarity similarity = new TanimotoCoefficientSimilarity(model);
            UserNeighborhood neighborhood = new NearestNUserNeighborhood(2, similarity, model);
            return new GenericUserBasedRecommender(model, neighborhood, similarity);
        }
    };

    long start = System.currentTimeMillis();
    double score = evaluator.evaluate(builder, null, model, 0.7, 1.0);
    LOG.info("average score: {} in {}s", String.format("%.4f", score),
            ((System.currentTimeMillis() - start) / 1000));

    start = System.currentTimeMillis();
    score = rmsEvaluator.evaluate(builder, null, model, 0.7, 1.0);
    LOG.info("rms score: {} in {}s", String.format("%.4f", score),
            ((System.currentTimeMillis() - start) / 1000));

    start = System.currentTimeMillis();
    IRStatistics stats = evaluatorIR.evaluate(builder, null, model, null, 2,
            GenericRecommenderIRStatsEvaluator.CHOOSE_THRESHOLD, 1.0);

    LOG.info("precision: {} recall: {} in {}s", new Object[] { String.format("%.4f", stats.getPrecision()),
            String.format("%.4f", stats.getRecall()), ((System.currentTimeMillis() - start) / 1000) });
}