Example usage for org.apache.mahout.cf.taste.eval IRStatistics getPrecision

List of usage examples for org.apache.mahout.cf.taste.eval IRStatistics getPrecision

Introduction

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

Prototype

double getPrecision();

Source Link

Document

<p> See <a href="http://en.wikipedia.org/wiki/Information_retrieval#Precision">Precision</a>.

Usage

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

private void calcularPrecicionRecall() {
    try {/*  w w  w.  j  a  v a 2 s. co m*/

        RandomUtils.useTestSeed();
        RecommenderIRStatsEvaluator evaluator = new GenericRecommenderIRStatsEvaluator();
        RecommenderBuilder recommenderBuilder = new RecommenderBuilder() {
            @Override
            public Recommender buildRecommender(DataModel model) throws TasteException {
                UserNeighborhood neighborhood = new NearestNUserNeighborhood(CantVecindad, similarity, model);
                return new GenericUserBasedRecommender(model, neighborhood, similarity);
            }
        };
        IRStatistics stats = evaluator.evaluate(recommenderBuilder, null, model, null, 2,
                GenericRecommenderIRStatsEvaluator.CHOOSE_THRESHOLD, 1.0);

        labelPrecicion.setText("Precisin: " + stats.getPrecision());
        labelRecal.setText("Recall: " + stats.getRecall());

    } catch (TasteException ex) {
        Logger.getLogger(evaluarPrecionRecallUI.class.getName()).log(Level.SEVERE, null, ex);
    }
}

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

public static void evaluarPrecicionRecall(final Scanner entrada, DataModel model,
        final UserSimilarity similarity) throws IOException, TasteException {
    RandomUtils.useTestSeed();//from   ww w .jav a2s .  c  o  m
    RecommenderIRStatsEvaluator evaluator = new GenericRecommenderIRStatsEvaluator();
    RecommenderBuilder recommenderBuilder = new RecommenderBuilder() {
        @Override
        public Recommender buildRecommender(DataModel model) throws TasteException {
            UserNeighborhood neighborhood = new NearestNUserNeighborhood(2, similarity, model);
            return new GenericUserBasedRecommender(model, neighborhood, similarity);
        }
    };
    IRStatistics stats = evaluator.evaluate(recommenderBuilder, null, model, null, 2,
            GenericRecommenderIRStatsEvaluator.CHOOSE_THRESHOLD, 1.0);

    System.out.println("Precision: " + stats.getPrecision());
    System.out.println("Recal: " + stats.getRecall());
}

From source file:edu.uci.ics.sourcerer.ml.db.tools.RecommenderEvaluatorTest.java

License:Open Source License

public void testEvaluate() throws Exception {
    DataModel model = getDataModel();/*from  w w w  .  j a v  a 2 s  .  c o m*/

    RecommenderBuilder builder = new RecommenderBuilder() {
        @Override
        public Recommender buildRecommender(DataModel dataModel) throws TasteException {

            // return new SlopeOneRecommender(dataModel);

            // return new SVDRecommender(dataModel, 25, 100);

            //return new RandomRecommender(dataModel);

            return new ApiRecommender(dataModel);

            //            return new TreeClusteringRecommender(
            //                  dataModel,
            //                  new NearestNeighborClusterSimilarity(
            //                        //UserSimilarity similarity = new EuclideanDistanceSimilarity(bcModel,Weighting.WEIGHTED);
            //                        //UserSimilarity similarity = new LogLikelihoodSimilarity(bcModel);
            //                        //UserSimilarity similarity = new PearsonCorrelationSimilarity(bcModel);
            //                        new TanimotoCoefficientSimilarity(dataModel)      
            //                  ),
            //                  0.5);
        }
    };

    RecommenderIRStatsEvaluator evaluator = new GenericRecommenderIRStatsEvaluator();
    IRStatistics stats = evaluator.evaluate(builder, null, model, null, 5, 1.0, 1.0);

    System.out.println(stats.getPrecision() + ", " + stats.getRecall() + ", " + stats.getF1Measure());

    //      assertEquals(0.75, stats.getPrecision(), EPSILON);
    //      assertEquals(0.75, stats.getRecall(), EPSILON);
    //      assertEquals(0.75, stats.getF1Measure(), EPSILON);
}

From source file:edu.uniandes.yelp.recommender.CFRecommender.java

public void evaluate() {
    try {//from   w  w w . j a v  a2 s . c  om
        System.out.println("Iniciando evaluacion");
        RecommenderIRStatsEvaluator evaluator = new GenericRecommenderIRStatsEvaluator();
        System.out.println("Creando constructor");
        RecommenderBuilder recommenderBuilder = new RecommenderBuilder() {
            @Override
            public Recommender buildRecommender(DataModel model) throws TasteException {
                ItemSimilarity is = new PearsonCorrelationSimilarity(model);
                return new GenericItemBasedRecommender(model, is);
            }

        };
        System.out.println("Iniciando Evaluacion");
        IRStatistics stats = evaluator.evaluate(recommenderBuilder, null, dm, null, 2,
                GenericRecommenderIRStatsEvaluator.CHOOSE_THRESHOLD, 1.0);
        System.out.println("Precision " + stats.getPrecision());
        System.out.println("Recall " + stats.getRecall());
    } catch (TasteException ex) {
        System.out.println("Boom!!! ");
        ex.printStackTrace();
    }
}

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

License:Apache License

@Test
public void evaluate5() {
    // RecommenderIRStatsEvaluator
    // ItemBasedRecommenderBuilder
    // TanimotoCoefficientSimilarity

    // IRStatistics stats =
    // evaluator.evaluate(builder, myModel, null, 3,
    // RecommenderIRStatusEvaluator.CHOOSE_THRESHOLD,
    // &sect;1.0);

    try {/*from  w ww . j a v a 2 s . com*/
        DataModel model = createDataBooleanModel(input);

        RecommenderIRStatsEvaluator evaluator = new GenericRecommenderIRStatsEvaluator();
        IRStatistics evaluation = evaluator.evaluate(
                new ItemBasedRecommenderBuilder(TanimotoCoefficientSimilarity.class.getCanonicalName()),
                new BooleanDataModelBuilder(), model, null, 3,
                GenericRecommenderIRStatsEvaluator.CHOOSE_THRESHOLD, 0.9);
        LOG.info("result: " + evaluation);

        writetofile("ItemBasedRecommenderBuilder,TanimotoCoefficientSimilarity,RecommenderIRStatsEvaluator-F1,"
                + evaluation.getF1Measure() + "\n");
        // getFNMeasure
        // writetofile("ItemBasedRecommenderBuilder,EuclideanDistanceSimilarity,RecommenderIRStatsEvaluator-F1,"
        // + evaluation.getFNMeasure(n) + "\n");
        writetofile(
                "ItemBasedRecommenderBuilder,TanimotoCoefficientSimilarity,RecommenderIRStatsEvaluator-FallOut,"
                        + evaluation.getFallOut() + "\n");
        writetofile(
                "ItemBasedRecommenderBuilder,TanimotoCoefficientSimilarity,RecommenderIRStatsEvaluator-precision,"
                        + evaluation.getPrecision() + "\n");
        writetofile(
                "ItemBasedRecommenderBuilder,TanimotoCoefficientSimilarity,RecommenderIRStatsEvaluator-recall,"
                        + evaluation.getRecall() + "\n");

        evaluator = new GenericRecommenderIRStatsEvaluator();
        evaluation = evaluator.evaluate(
                new UserBasedRecommenderBuilder(TanimotoCoefficientSimilarity.class.getCanonicalName()),
                new BooleanDataModelBuilder(), model, null, 3, 3, 0.9);
        LOG.info("result: " + evaluation);

        writetofile("UserBasedRecommenderBuilder,TanimotoCoefficientSimilarity,RecommenderIRStatsEvaluator-F1,"
                + evaluation.getF1Measure() + "\n");
        // getFNMeasure
        // writetofile("ItemBasedRecommenderBuilder,EuclideanDistanceSimilarity,RecommenderIRStatsEvaluator-F1,"
        // + evaluation.getFNMeasure(n) + "\n");
        writetofile(
                "UserBasedRecommenderBuilder,TanimotoCoefficientSimilarity,RecommenderIRStatsEvaluator-FallOut,"
                        + evaluation.getFallOut() + "\n");
        writetofile(
                "UserBasedRecommenderBuilder,TanimotoCoefficientSimilarity,RecommenderIRStatsEvaluator-precision,"
                        + evaluation.getPrecision() + "\n");
        writetofile(
                "UserBasedRecommenderBuilder,TanimotoCoefficientSimilarity,RecommenderIRStatsEvaluator-recall,"
                        + evaluation.getRecall() + "\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 testRandom() throws IOException, TasteException {
    RandomUtils.useTestSeed();/*from ww  w.  j a  v  a  2s  .  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();/*from  ww  w . ja va  2s.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 w  w w. j  a  v  a  2  s . c  o m

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

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

License:Apache License

@Test
public void testUncenteredCosineSimilarity() throws TasteException, IOException {
    RandomUtils.useTestSeed();//from   www  .j a  v a 2 s.com

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

    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 {
            UncenteredCosineSimilarity similarity = new UncenteredCosineSimilarity(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) });
}

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

License:Apache License

@Test
public void testCityBlockSimilarity() throws TasteException, IOException {
    RandomUtils.useTestSeed();//from   w ww .  ja  va  2s  . c  o  m

    LOG.info("testing CityBlockSimilarity:");
    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 {
            CityBlockSimilarity similarity = new CityBlockSimilarity(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) });
}