List of usage examples for org.apache.mahout.cf.taste.impl.eval RMSRecommenderEvaluator RMSRecommenderEvaluator
RMSRecommenderEvaluator
From source file:hr.fer.tel.rovkp.homework03.task02.ItemBasedRecommenderEvaluator.java
public static void main(String[] args) throws Exception { RandomUtils.useTestSeed();/*from w w w . j a v a2 s. co m*/ String fileItemsSimilarity = "./src/main/resources/item_similarity.csv"; String fileDataModel = "./src/main/resources/jester_ratings_small.dat"; DataModel model = new FileDataModel(new File(fileDataModel)); RecommenderBuilder builder = (DataModel m) -> RecommenderUtils.itemBasedRecommender(m, fileItemsSimilarity); RecommenderEvaluator recEvaluator = new RMSRecommenderEvaluator(); double score = recEvaluator.evaluate(builder, null, model, 0.7, 1.0); System.out.println(score); }
From source file:hr.fer.tel.rovkp.homework03.task02.UserBasedRecommenderEvaluator.java
public static void main(String[] args) throws Exception { RandomUtils.useTestSeed();/* w w w . j a v a2 s . co m*/ String fileDataModel = "./src/main/resources/jester_ratings.dat"; DataModel model = new FileDataModel(new File(fileDataModel)); RecommenderBuilder builder = (DataModel m) -> RecommenderUtils.userBasedRecommender(m); RecommenderEvaluator recEvaluator = new RMSRecommenderEvaluator(); double score = recEvaluator.evaluate(builder, null, model, 0.7, 1.0); System.out.println(score); }
From source file:hr.fer.tel.rovkp.lab03.HybridRecommenderEvaluator.java
public static void main(String[] args) throws IOException, TasteException { DataModel model = new FileDataModel(new File("./src/main/resources/jester_ratings.dat"), ","); System.out.println(new RMSRecommenderEvaluator().evaluate(hybridRecommender(), null, model, 0.7, 1.0)); }
From source file:net.aprendizajengrande.gitrecommender.Experiment.java
License:Open Source License
public static void main(String[] args) throws Exception { DataModel model = new FileDataModel(new File(args[0])); System.out.println("For repo: " + args[0]); System.out.println("User-based:"); RecommenderEvaluator evaluator = new RMSRecommenderEvaluator(); RecommenderBuilder recommenderBuilder = new RecommenderBuilder() { @Override/*from w w w .j a v a2s . c om*/ public Recommender buildRecommender(DataModel model) throws TasteException { UserSimilarity similarity = new PearsonCorrelationSimilarity(model); UserNeighborhood neighborhood = new NearestNUserNeighborhood(2, similarity, model); return new GenericUserBasedRecommender(model, neighborhood, similarity); } }; // Use 90% of the data to train; test using the other 10%. double score = evaluator.evaluate(recommenderBuilder, null, model, 0.9, 1.0); System.out.println(score); recommenderBuilder = new RecommenderBuilder() { @Override public Recommender buildRecommender(DataModel model) throws TasteException { ItemSimilarity similarity = new EuclideanDistanceSimilarity(model); //new LogLikelihoodSimilarity(model); return new GenericItemBasedRecommender(model, similarity); } }; System.out.println("Item-based:"); score = evaluator.evaluate(recommenderBuilder, null, model, 0.9, 1.0); System.out.println(score); }
From source file:nl.gridline.zieook.client.tools.ZieOokEvaluatorTest.java
License:Apache License
/** * 3x userbased using RMSRecommenderEvaluator *//*from www . j a v a 2 s.c o m*/ @Test @Ignore public void evaulate2() { // UserBasedRecommenderBuilder // RMSRecommenderEvaluator try { DataModel model = createDataModel(input); RecommenderEvaluator evaluator = new RMSRecommenderEvaluator(); double evaluation = evaluator.evaluate( new UserBasedRecommenderBuilder(EuclideanDistanceSimilarity.class.getCanonicalName()), null, model, 0.9, 1.0); LOG.info("result: " + evaluation); writetofile("UserBasedRecommenderBuilder,EuclideanDistanceSimilarity,RMSRecommenderEvaluator," + evaluation + "\n"); evaluator = new RMSRecommenderEvaluator(); evaluation = evaluator.evaluate( new UserBasedRecommenderBuilder(PearsonCorrelationSimilarity.class.getCanonicalName()), null, model, 0.9, 1.0); LOG.info("result: " + evaluation); writetofile("UserBasedRecommenderBuilder,PearsonCorrelationSimilarity,RMSRecommenderEvaluator," + evaluation + "\n"); evaluator = new RMSRecommenderEvaluator(); evaluation = evaluator.evaluate( new UserBasedRecommenderBuilder(UncenteredCosineSimilarity.class.getCanonicalName()), null, model, 0.9, 1.0); LOG.info("result: " + evaluation); writetofile("UserBasedRecommenderBuilder,UncenteredCosineSimilarity,RMSRecommenderEvaluator," + evaluation + "\n"); } catch (TasteException e) { LOG.error("faild evaulate", e); fail(); } }
From source file:nl.gridline.zieook.client.tools.ZieOokEvaluatorTest.java
License:Apache License
@Test @Ignore/* w ww . j ava2 s . co m*/ public void evaluate3() { // ItemBasedRecommenderBuilder // RMSRecommenderEvaluator try { DataModel model = createDataModel(input); RecommenderEvaluator evaluator = new RMSRecommenderEvaluator(); double evaluation = evaluator.evaluate( new ItemBasedRecommenderBuilder(EuclideanDistanceSimilarity.class.getCanonicalName()), null, model, 0.9, 1.0); LOG.info("result: " + evaluation); writetofile( "ItemBasedRecommenderBuilder,EuclideanDistanceSimilarity,AverageAbsoluteDifferenceRecommenderEvaluator," + evaluation + "\n"); evaluator = new RMSRecommenderEvaluator(); evaluation = evaluator.evaluate( new ItemBasedRecommenderBuilder(PearsonCorrelationSimilarity.class.getCanonicalName()), null, model, 0.9, 1.0); LOG.info("result: " + evaluation); writetofile( "ItemBasedRecommenderBuilder,PearsonCorrelationSimilarity,AverageAbsoluteDifferenceRecommenderEvaluator," + evaluation + "\n"); evaluator = new RMSRecommenderEvaluator(); evaluation = evaluator.evaluate( new ItemBasedRecommenderBuilder(UncenteredCosineSimilarity.class.getCanonicalName()), null, model, 0.9, 1.0); LOG.info("result: " + evaluation); writetofile( "ItemBasedRecommenderBuilder,UncenteredCosineSimilarity,AverageAbsoluteDifferenceRecommenderEvaluator," + evaluation + "\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();//ww w .j a v a 2 s.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();/* w w w . j av a 2 s .co 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 www . j a va 2s . 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 www. j a v a 2 s . c o m*/ 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) }); }