@Nonnull @Override public Map<Long, Double> predict(long user, @Nonnull Collection<Long> items) { Map<Long, Double> scores = scorer.score(user, items); if (preferenceDomain == null) { return scores; } else { return preferenceDomain.clampVector(scores); } }
@Test public void testClampValue() { PreferenceDomain d = PreferenceDomain.fromString("[1.0,5.0]"); for (Map<Long,Double> vec: someMaps(longs(), doubles(0.0, 8.0))) { Long2DoubleMap clamped = d.clampVector(vec); assertThat(clamped.keySet(), equalTo(vec.keySet())); for (Long k: vec.keySet()) { double v = vec.get(k); if (v < 1.0) { assertThat(clamped, hasEntry(k, 1.0)); } else if (v > 5.0) { assertThat(clamped, hasEntry(k, 5.0)); } else { assertThat(clamped, hasEntry(k, v)); } } } } }
@Nonnull @Override public Map<Long, Double> predict(long user, @Nonnull Collection<Long> items) { Map<Long, Double> scores = scorer.score(user, items); if (preferenceDomain == null) { return scores; } else { return preferenceDomain.clampVector(scores); } }