public static LoadStatistics runLoad(Recommender recommender, int howMany) throws TasteException { DataModel dataModel = recommender.getDataModel(); int numUsers = dataModel.getNumUsers(); double sampleRate = 1000.0 / numUsers; LongPrimitiveIterator userSampler = SamplingLongPrimitiveIterator.maybeWrapIterator(dataModel.getUserIDs(), sampleRate); recommender.recommend(userSampler.next(), howMany); // Warm up Collection<Callable<Void>> callables = new ArrayList<>(); while (userSampler.hasNext()) { callables.add(new LoadCallable(recommender, userSampler.next())); } AtomicInteger noEstimateCounter = new AtomicInteger(); RunningAverageAndStdDev timing = new FullRunningAverageAndStdDev(); AbstractDifferenceRecommenderEvaluator.execute(callables, noEstimateCounter, timing); return new LoadStatistics(timing); }
@Override public long[] getUserNeighborhood(long userID) throws TasteException { DataModel dataModel = getDataModel(); UserSimilarity userSimilarityImpl = getUserSimilarity(); TopItems.Estimator<Long> estimator = new Estimator(userSimilarityImpl, userID, minSimilarity); LongPrimitiveIterator userIDs = SamplingLongPrimitiveIterator.maybeWrapIterator(dataModel.getUserIDs(), getSamplingRate()); return TopItems.getTopUsers(n, userIDs, null, estimator); }
@Override public long[] getUserNeighborhood(long userID) throws TasteException { DataModel dataModel = getDataModel(); UserSimilarity userSimilarityImpl = getUserSimilarity(); TopItems.Estimator<Long> estimator = new Estimator(userSimilarityImpl, userID, minSimilarity); LongPrimitiveIterator userIDs = SamplingLongPrimitiveIterator.maybeWrapIterator(dataModel.getUserIDs(), getSamplingRate()); return TopItems.getTopUsers(n, userIDs, null, estimator); }
public static LoadStatistics runLoad(Recommender recommender, int howMany) throws TasteException { DataModel dataModel = recommender.getDataModel(); int numUsers = dataModel.getNumUsers(); double sampleRate = 1000.0 / numUsers; LongPrimitiveIterator userSampler = SamplingLongPrimitiveIterator.maybeWrapIterator(dataModel.getUserIDs(), sampleRate); recommender.recommend(userSampler.next(), howMany); // Warm up Collection<Callable<Void>> callables = Lists.newArrayList(); while (userSampler.hasNext()) { callables.add(new LoadCallable(recommender, userSampler.next())); } AtomicInteger noEstimateCounter = new AtomicInteger(); RunningAverageAndStdDev timing = new FullRunningAverageAndStdDev(); AbstractDifferenceRecommenderEvaluator.execute(callables, noEstimateCounter, timing); return new LoadStatistics(timing); }
public static LoadStatistics runLoad(Recommender recommender, int howMany) throws TasteException { DataModel dataModel = recommender.getDataModel(); int numUsers = dataModel.getNumUsers(); double sampleRate = 1000.0 / numUsers; LongPrimitiveIterator userSampler = SamplingLongPrimitiveIterator.maybeWrapIterator(dataModel.getUserIDs(), sampleRate); recommender.recommend(userSampler.next(), howMany); // Warm up Collection<Callable<Void>> callables = Lists.newArrayList(); while (userSampler.hasNext()) { callables.add(new LoadCallable(recommender, userSampler.next())); } AtomicInteger noEstimateCounter = new AtomicInteger(); RunningAverageAndStdDev timing = new FullRunningAverageAndStdDev(); AbstractDifferenceRecommenderEvaluator.execute(callables, noEstimateCounter, timing); return new LoadStatistics(timing); }
@Override public long[] getUserNeighborhood(long userID) throws TasteException { DataModel dataModel = getDataModel(); UserSimilarity userSimilarityImpl = getUserSimilarity(); TopItems.Estimator<Long> estimator = new Estimator(userSimilarityImpl, userID, minSimilarity); LongPrimitiveIterator userIDs = SamplingLongPrimitiveIterator.maybeWrapIterator(dataModel.getUserIDs(), getSamplingRate()); return TopItems.getTopUsers(n, userIDs, null, estimator); }
@Override public long[] getUserNeighborhood(long userID) throws TasteException { DataModel dataModel = getDataModel(); FastIDSet neighborhood = new FastIDSet(); LongPrimitiveIterator usersIterable = SamplingLongPrimitiveIterator.maybeWrapIterator(dataModel .getUserIDs(), getSamplingRate()); UserSimilarity userSimilarityImpl = getUserSimilarity(); while (usersIterable.hasNext()) { long otherUserID = usersIterable.next(); if (userID != otherUserID) { double theSimilarity = userSimilarityImpl.userSimilarity(userID, otherUserID); if (!Double.isNaN(theSimilarity) && theSimilarity >= threshold) { neighborhood.add(otherUserID); } } } return neighborhood.toArray(); }
@Override public long[] getUserNeighborhood(long userID) throws TasteException { DataModel dataModel = getDataModel(); FastIDSet neighborhood = new FastIDSet(); LongPrimitiveIterator usersIterable = SamplingLongPrimitiveIterator.maybeWrapIterator(dataModel .getUserIDs(), getSamplingRate()); UserSimilarity userSimilarityImpl = getUserSimilarity(); while (usersIterable.hasNext()) { long otherUserID = usersIterable.next(); if (userID != otherUserID) { double theSimilarity = userSimilarityImpl.userSimilarity(userID, otherUserID); if (!Double.isNaN(theSimilarity) && theSimilarity >= threshold) { neighborhood.add(otherUserID); } } } return neighborhood.toArray(); }
@Override public long[] getUserNeighborhood(long userID) throws TasteException { DataModel dataModel = getDataModel(); FastIDSet neighborhood = new FastIDSet(); LongPrimitiveIterator usersIterable = SamplingLongPrimitiveIterator.maybeWrapIterator(dataModel .getUserIDs(), getSamplingRate()); UserSimilarity userSimilarityImpl = getUserSimilarity(); while (usersIterable.hasNext()) { long otherUserID = usersIterable.next(); if (userID != otherUserID) { double theSimilarity = userSimilarityImpl.userSimilarity(userID, otherUserID); if (!Double.isNaN(theSimilarity) && theSimilarity >= threshold) { neighborhood.add(otherUserID); } } } return neighborhood.toArray(); }