List of usage examples for org.apache.mahout.cf.taste.impl.eval AverageAbsoluteDifferenceRecommenderEvaluator AverageAbsoluteDifferenceRecommenderEvaluator
AverageAbsoluteDifferenceRecommenderEvaluator
From source file:com.corchado.testRecomender.evaluarRecomendadorUI.java
private void Evaluar() { try {//from www . j av a 2s . c om RandomUtils.useTestSeed(); RecommenderEvaluator evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator(); RecommenderBuilder builder = new RecommenderBuilder() { @Override public Recommender buildRecommender(DataModel model) throws TasteException { // UserSimilarity similarity = new PearsonCorrelationSimilarity(model); UserNeighborhood neighborhood = new NearestNUserNeighborhood(CantVecindad, similarity, model); return new GenericUserBasedRecommender(model, neighborhood, similarity); } }; double score = evaluator.evaluate(builder, null, model, 0.7, 1.0); labelEvaluacion.setText("Evaluacin: " + score); } catch (TasteException ex) { Logger.getLogger(evaluarRecomendadorUI.class.getName()).log(Level.SEVERE, null, ex); } }
From source file:com.corchado.testRecomender.recomendador.java
public static void Probar(final Scanner entrada, DataModel model, final UserSimilarity similarity) throws IOException, TasteException { RandomUtils.useTestSeed();/* ww w. ja v a 2s . c o m*/ RecommenderEvaluator evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator(); RecommenderBuilder builder = new RecommenderBuilder() { @Override 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); } }; double score = evaluator.evaluate(builder, null, model, 0.7, 1.0); System.out.println("evaluacion: " + score); }
From source file:de.tuberlin.dima.recsys.ssnmm.interactioncut.Evaluate.java
License:Apache License
static void runEvaluation(DataModel interactions, int k, double lambda2, double lambda3, double trainingPercentage, int numRuns, int minP, int maxP, int pStepSize) throws IOException, TasteException { RecommenderEvaluator maeEvaluator = new AverageAbsoluteDifferenceRecommenderEvaluator(); List<Errors> errors = Lists.newArrayList(); for (int maxPrefsPerUser = minP; maxPrefsPerUser <= maxP; maxPrefsPerUser += pStepSize) { Errors error = new Errors(maxPrefsPerUser); for (int n = 0; n < numRuns; n++) { double maeSampled = maeEvaluator.evaluate(new BiasedRecommenderBuilder(lambda2, lambda3, k), new InteractionCutDataModelBuilder(maxPrefsPerUser), interactions, trainingPercentage, 1 - trainingPercentage); error.record(0, maeSampled); }// w w w. j a v a2s . c o m errors.add(error); } for (Errors res : errors) { System.out.println(res); } }
From source file:lsdr.user.based.recommender.intro.trivial.EvaluatorIntro.java
License:Open Source License
public Double evaluate() throws TasteException { RandomUtils.useTestSeed();//from w w w .jav a 2 s . c o m RecommenderEvaluator evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator(); RecommenderBuilder recommenderBuilder = new RecommenderBuilder() { @Override public Recommender buildRecommender(DataModel model) throws TasteException { UserSimilarity similarity = new PearsonCorrelationSimilarity(model); UserNeighborhood neighborhood = new NearestNUserNeighborhood(AMOUNT_OF_NEIGHBORS, similarity, model); return new GenericUserBasedRecommender(model, neighborhood, similarity); } }; // 70% as a training data double score = evaluator.evaluate(recommenderBuilder, null, model, 0.7, 1.0); return score; }
From source file:nl.gridline.zieook.client.tools.ZieOokEvaluatorTest.java
License:Apache License
/** * 3x userbased using: AverageAbsoluteDifferenceRecommenderEvaluator *//*from ww w .ja va 2 s . co m*/ @Test @Ignore public void evaluate1() { // UserBasedRecommenderBuilder // AverageAbsoluteDifferenceRecommenderEvaluator try { DataModel model = createDataModel(input); RecommenderEvaluator evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator(); double evaluation = evaluator.evaluate( new UserBasedRecommenderBuilder(EuclideanDistanceSimilarity.class.getCanonicalName()), null, model, 0.9, 1.0); LOG.info("result: " + evaluation); writetofile("EuclideanDistanceSimilarity,AverageAbsoluteDifferenceRecommenderEvaluator," + evaluation + "\n"); evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator(); evaluation = evaluator.evaluate( new UserBasedRecommenderBuilder(PearsonCorrelationSimilarity.class.getCanonicalName()), null, model, 0.9, 1.0); LOG.info("result: " + evaluation); writetofile("PearsonCorrelationSimilarity,AverageAbsoluteDifferenceRecommenderEvaluator," + evaluation + "\n"); evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator(); evaluation = evaluator.evaluate( new UserBasedRecommenderBuilder(UncenteredCosineSimilarity.class.getCanonicalName()), null, model, 0.9, 1.0); LOG.info("result: " + evaluation); writetofile("UncenteredCosineSimilarity,AverageAbsoluteDifferenceRecommenderEvaluator," + 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//from w w w . ja va 2 s.c om public void evaluate4() { // ItemBasedRecommenderBuilder // AverageAbsoluteDifferenceRecommenderEvaluator try { DataModel model = createDataModel(input); RecommenderEvaluator evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator(); 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 AverageAbsoluteDifferenceRecommenderEvaluator(); 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 AverageAbsoluteDifferenceRecommenderEvaluator(); 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 testSanity() throws TasteException, IOException { RandomUtils.useTestSeed();// w w w .j a v a2 s . c om LOG.info("testing sanity on dummy data, result should be 1.0"); DataModel model = new FileDataModel(new File("test-data-small/intro.csv")); AverageAbsoluteDifferenceRecommenderEvaluator evaluator = new AverageAbsoluteDifferenceRecommenderEvaluator(); RecommenderBuilder builder = new RecommenderBuilder() { @Override public Recommender buildRecommender(DataModel model) throws TasteException { PearsonCorrelationSimilarity similarity = new PearsonCorrelationSimilarity(model); NearestNUserNeighborhood neighborhood = new NearestNUserNeighborhood(2, similarity, model); return new GenericUserBasedRecommender(model, neighborhood, similarity); } }; final long start = System.currentTimeMillis(); double score = evaluator.evaluate(builder, null, model, 0.7, 1.0); LOG.info("score: {} in {}ms", String.format("%.4f", score), (System.currentTimeMillis() - start)); assertTrue(1.0 == score); }
From source file:nl.gridline.zieook.tasks.quality.MahoutEvaluatorTest.java
License:Apache License
@Test public void testRandom() throws IOException, TasteException { RandomUtils.useTestSeed();//from ww w. j ava2 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();// www.j a va2 s.c om 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 ww w. j a va2 s .com 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) }); }