@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)); }
@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 ItemBiasModel get() { Long2DoubleMap offsets; if (damping > 0) { offsets = new Long2DoubleOpenHashMap(); LongIterator iter = summary.getItems().iterator(); while (iter.hasNext()) { long item = iter.nextLong(); double off = summary.getItemOffset(item); int count = summary.getItemRatingCount(item); offsets.put(item, count * off / (count + damping)); } } else { offsets = summary.getItemOffets(); } return new ItemBiasModel(summary.getGlobalMean(), offsets); } }
@Override public ItemBiasModel get() { Long2DoubleMap offsets; if (damping > 0) { offsets = new Long2DoubleOpenHashMap(); LongIterator iter = summary.getItems().iterator(); while (iter.hasNext()) { long item = iter.nextLong(); double off = summary.getItemOffset(item); int count = summary.getItemRatingCount(item); offsets.put(item, count * off / (count + damping)); } } else { offsets = summary.getItemOffets(); } return new ItemBiasModel(summary.getGlobalMean(), offsets); } }