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

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

Introduction

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

Prototype

IRStatistics evaluate(RecommenderBuilder recommenderBuilder, DataModelBuilder dataModelBuilder,
        DataModel dataModel, IDRescorer rescorer, int at, double relevanceThreshold,
        double evaluationPercentage) throws TasteException;

Source Link

Usage

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

private void calcularPrecicionRecall() {
    try {/*from  w ww .  j a v a  2s  . com*/

        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();/*w ww . j a v a  2 s  .  co  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 va 2  s .  co 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 {//w w  w.  j av a  2  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:lsdr.user.based.recommender.intro.trivial.IREvaluatorIntro.java

License:Open Source License

public IRStatistics evaluate() throws TasteException {
    RecommenderIRStatsEvaluator evaluator = new GenericRecommenderIRStatsEvaluator();
    RecommenderBuilder recommenderBuilder = new RecommenderBuilder() {
        @Override/*from   w w w  .  j  a v a  2s  .  c  om*/
        public Recommender buildRecommender(DataModel model) throws TasteException {
            // same as RecommenderIntro // TODO prepareRecommender?
            UserSimilarity similarity = new PearsonCorrelationSimilarity(model);
            UserNeighborhood neighborhood = new NearestNUserNeighborhood(AMOUNT_OF_NEIGHBORS, similarity,
                    model);

            return new GenericUserBasedRecommender(model, neighborhood, similarity);
        }
    };
    IRStatistics stats = evaluator.evaluate(recommenderBuilder, null, model, null, 2,
            GenericRecommenderIRStatsEvaluator.CHOOSE_THRESHOLD, 1.0);
    return stats;
}

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,
    // §1.0);

    try {/*  ww  w .  ja va 2s .c  om*/
        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:smartcityrecommender.Recommender.java

License:Open Source License

public static void evaluateRecommender() {
    try {//  w ww.j a  va2 s  .  c  om
        RandomUtils.useTestSeed();
        DataModel model = new MySQLJDBCDataModel(mysql_datasource, "assessment_new", "user_id", "item_id",
                "preference", "timestamp");
        RecommenderIRStatsEvaluator evaluator = new GenericRecommenderIRStatsEvaluatorCustom();
        RecommenderBuilder recommenderBuilder = new MyRecommenderBuilder();
        IRStatistics stats = evaluator.evaluate(recommenderBuilder, null, model, null, 10,
                GenericRecommenderIRStatsEvaluator.CHOOSE_THRESHOLD, 1.0);
        System.out.println("Precision: " + stats.getPrecision());
        System.out.println("Recall: " + stats.getRecall());
    } catch (TasteException ex) {
        Logger.getLogger(Recommender.class.getName()).log(Level.SEVERE, null, ex);
    }
}

From source file:tv.icntv.recommend.algorithm.test.RecommendFactory.java

License:Apache License

/**
 * statsEvaluator/*from w w  w  .  j av a 2 s . com*/
 */
public static void statsEvaluator(RecommenderBuilder rb, DataModelBuilder mb, DataModel m, int topn)
        throws TasteException {
    RecommenderIRStatsEvaluator evaluator = new GenericRecommenderIRStatsEvaluator();
    IRStatistics stats = evaluator.evaluate(rb, mb, m, null, topn,
            GenericRecommenderIRStatsEvaluator.CHOOSE_THRESHOLD, 1.0);
    // System.out.printf("Recommender IR Evaluator: %s\n", stats);
    System.out.printf("Recommender IR Evaluator: [Precision:%s,Recall:%s]\n", stats.getPrecision(),
            stats.getRecall());
}