@Override public Long2DoubleMap getItemBiases() { return delegate.getItemBiases(); } }
Transform(long uid) { user = uid; userBias = model.getIntercept() + model.getUserBias(user); }
@Override public double getItemBias(long item) { return delegate.getItemBias(item); }
@Test public void testBasicBias() { BiasModel model = new UserItemBiasModel(Math.PI, Long2DoubleMaps.EMPTY_MAP, Long2DoubleMaps.EMPTY_MAP); assertThat(model.getIntercept(), equalTo(Math.PI)); assertThat(model.getUserBias(42L), equalTo(0.0)); assertThat(model.getItemBias(42L), equalTo(0.0)); }
@Test public void testNoUsers() { BiasModel model = new UserBiasModel(1.5, Long2DoubleMaps.EMPTY_MAP); assertThat(model.getIntercept(), equalTo(1.5)); assertThat(model.getItemBias(42L), equalTo(0.0)); assertThat(model.getUserBias(42L), equalTo(0.0)); }
@Test public void testZeroBias() { BiasModel model = new GlobalBiasModel(0); assertThat(model.getIntercept(), equalTo(0.0)); assertThat(model.getUserBias(42L), equalTo(0.0)); assertThat(model.getItemBias(42L), equalTo(0.0)); }
@Test public void testNoItems() { BiasModel model = new ItemBiasModel(1.5, Long2DoubleMaps.EMPTY_MAP); assertThat(model.getIntercept(), equalTo(1.5)); assertThat(model.getItemBias(42L), equalTo(0.0)); assertThat(model.getUserBias(42L), equalTo(0.0)); }
@Override public Result score(long user, long item) { return Results.create(item, model.getIntercept() + model.getUserBias(user) + model.getItemBias(item)); }
Transform(long iid) { item = iid; itemBias = model.getIntercept() + model.getItemBias(item); }
@Override public Long2DoubleMap apply(Long2DoubleMap input) { Long2DoubleMap biases = model.getItemBiases(input.keySet()); return Vectors.combine(input, biases, -1.0, -userBias); } }
@Inject public ItemAverageRatingBiasModelProvider(RatingSummary rs, @BiasDamping double damp) { summary = rs; damping = damp; }
@Override public double getIntercept() { return delegate.getIntercept(); }
@Test public void testZeroBias() { BiasModel model = new UserItemBiasModel(0, Long2DoubleMaps.EMPTY_MAP, Long2DoubleMaps.EMPTY_MAP); assertThat(model.getIntercept(), equalTo(0.0)); assertThat(model.getUserBias(42L), equalTo(0.0)); assertThat(model.getItemBias(42L), equalTo(0.0)); }
@Test public void testWithUsers() { BiasModel model = new UserBiasModel(1.5, Long2DoubleMaps.singleton(42L, 1.0)); assertThat(model.getIntercept(), equalTo(1.5)); assertThat(model.getUserBias(42L), equalTo(1.0)); assertThat(model.getUserBias(37L), equalTo(0.0)); assertThat(model.getItemBias(42L), equalTo(0.0)); }
@Test public void testBasicBias() { BiasModel model = new GlobalBiasModel(Math.PI); assertThat(model.getIntercept(), equalTo(Math.PI)); assertThat(model.getUserBias(42L), equalTo(0.0)); assertThat(model.getItemBias(42L), equalTo(0.0)); }
@Test public void testWithItems() { BiasModel model = new ItemBiasModel(1.5, Long2DoubleMaps.singleton(42L, 1.0)); assertThat(model.getIntercept(), equalTo(1.5)); assertThat(model.getItemBias(42L), equalTo(1.0)); assertThat(model.getItemBias(37L), equalTo(0.0)); assertThat(model.getUserBias(42L), equalTo(0.0)); }
@Override public Long2DoubleMap getItemBiases(LongSet items) { return delegate.getItemBiases(items); }
@Inject public UserItemAverageRatingBiasModelProvider(ItemBiasModel ib, @Transient RatingVectorPDAO dao, @BiasDamping double damp) { itemBiases = ib; this.dao = dao; damping = damp; }
@Test public void testWithItems() { BiasModel model = new UserItemBiasModel(1.5, Long2DoubleMaps.EMPTY_MAP, Long2DoubleMaps.singleton(42L, 1.0)); assertThat(model.getIntercept(), equalTo(1.5)); assertThat(model.getItemBias(42L), equalTo(1.0)); assertThat(model.getItemBias(37L), equalTo(0.0)); assertThat(model.getUserBias(42L), equalTo(0.0)); }
@Test public void testWithUsers() { BiasModel model = new UserItemBiasModel(1.5, Long2DoubleMaps.singleton(42L, 1.0), Long2DoubleMaps.EMPTY_MAP); assertThat(model.getIntercept(), equalTo(1.5)); assertThat(model.getUserBias(42L), equalTo(1.0)); assertThat(model.getUserBias(37L), equalTo(0.0)); assertThat(model.getItemBias(42L), equalTo(0.0)); }