List of usage examples for org.apache.mahout.cf.taste.eval IRStatistics getF1Measure
double getF1Measure();
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, // §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(); } }