List of usage examples for org.apache.mahout.cf.taste.eval IRStatistics getRecall
double getRecall();
From source file:com.corchado.testRecomender.evaluarPrecionRecallUI.java
private void calcularPrecicionRecall() { try {/*from w w w . j a v a 2 s . 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();//from ww w . j av a 2s . 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 ww. 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:edu.uniandes.yelp.recommender.CFRecommender.java
public void evaluate() { try {/*w w w .jav a2 s. c o m*/ 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, // §1.0); try {//ww w .j a v a 2s . 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 www .j a va 2s. co 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();//w ww .j a v a 2 s .c o m 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 . ja v a 2 s . c om 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 w ww.ja v a2 s . c om*/ 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();// w ww.java2s. c om 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) }); }