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

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

Introduction

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

Prototype

double getF1Measure();

Source Link

Document

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

Usage

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 . ja  va 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: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  w w .  j  a v a 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();
    }

}