protected LenskitConfiguration getDaoConfig() { LenskitConfiguration config = new LenskitConfiguration(); config.bind(DataAccessObject.class) .toProvider(source); return config; }
@Nonnull public LenskitConfiguration getConfiguration() { StaticDataSource src = getSource(); LenskitConfiguration config = new LenskitConfiguration(); if (src != null) { config.bind(DataAccessObject.class).toProvider(src); } return config; }
/** * Get extra LensKit configuration required by this data set. * * @return A LensKit configuration with additional configuration data for this data set. */ public LenskitConfiguration getExtraConfiguration() { LenskitConfiguration config = new LenskitConfiguration(); PreferenceDomain pd = trainData.getPreferenceDomain(); if (pd != null) { config.bind(PreferenceDomain.class).to(pd); } config.bind(TestUsers.class, LongSet.class) .toProvider(testUserProvider); return config; }
private LenskitConfiguration makeDataConfig(Context ctx) { LenskitConfiguration config = new LenskitConfiguration(); config.bind(DataAccessObject.class).toProvider(new DAOProvider()); String dspec = ctx.options.getString("domain"); if (dspec != null) { PreferenceDomain domain = PreferenceDomain.fromString(dspec); config.bind(PreferenceDomain.class).to(domain); } return config; }
@SuppressWarnings("deprecation") @Before public void setup() throws RecommenderBuildException { List<Rating> rs = new ArrayList<>(); rs.add(Rating.create(1, 5, 2)); rs.add(Rating.create(1, 7, 4)); rs.add(Rating.create(8, 4, 5)); rs.add(Rating.create(8, 5, 4)); StaticDataSource source = StaticDataSource.fromList(rs); LenskitConfiguration config = new LenskitConfiguration(); config.bind(DataAccessObject.class).toProvider(source); config.bind(ItemScorer.class).to(ItemItemScorer.class); config.bind(ItemBasedItemScorer.class).to(ItemItemItemBasedItemScorer.class); // this is the default // factory.setComponent(UserVectorNormalizer.class, VectorNormalizer.class, // IdentityVectorNormalizer.class); engine = LenskitRecommenderEngine.build(config); }
@SuppressWarnings("deprecation") @Before public void setup() throws RecommenderBuildException { List<Rating> rs = new ArrayList<>(); rs.add(Rating.create(1, 5, 2)); rs.add(Rating.create(1, 7, 4)); rs.add(Rating.create(8, 4, 5)); rs.add(Rating.create(8, 5, 4)); StaticDataSource source = StaticDataSource.fromList(rs); dao = source.get(); LenskitConfiguration config = new LenskitConfiguration(); config.bind(ItemItemModel.class).toProvider(NormalizingItemItemModelProvider.class); config.bind(ItemScorer.class).to(ItemItemScorer.class); config.bind(ItemBasedItemScorer.class).to(ItemItemItemBasedItemScorer.class); // this is the default // factory.setComponent(UserVectorNormalizer.class, VectorNormalizer.class, // IdentityVectorNormalizer.class); engine = LenskitRecommenderEngine.build(config, dao); }
private LenskitRecommenderEngine makeEngine() throws RecommenderBuildException { LenskitConfiguration config = new LenskitConfiguration(); config.bind(RatingMatrix.class) .to(PackedRatingMatrix.class); config.bind(ItemScorer.class) .to(HPFItemScorer.class); config.bind(HPFModel.class) .toProvider(HPFModelProvider.class); config.set(ConvergenceCheckFrequency.class) .to(2); config.set(StoppingThreshold.class) .to(0.000001); config.set(FeatureCount.class) .to(5); config.set(SplitProportion.class) .to(0.1); // config.set(RandomSeed.class) // .to(System.currentTimeMillis()); config.set(IterationCount.class) .to(1000); config.set(IsProbabilityPrediction.class) .to(false); return LenskitRecommenderEngine.build(config, dao); }
@Test public void testComputeItemMeans() { EntityFactory efac = new EntityFactory(); EntityCollectionDAOBuilder daoBuilder = new EntityCollectionDAOBuilder(); daoBuilder.addEntities(efac.rating(100, 200, 3.0), efac.rating(101, 200, 4.0), efac.rating(101, 201, 2.5), efac.rating(102, 203, 4.5), efac.rating(103, 203, 3.5)); LenskitConfiguration config = new LenskitConfiguration(); config.addRoot(BiasModel.class); config.bind(BiasModel.class).toProvider(ItemAverageRatingBiasModelProvider.class); LenskitRecommender rec = LenskitRecommender.build(config, daoBuilder.build()); BiasModel model = rec.get(BiasModel.class); assertThat(model.getIntercept(), closeTo(3.5, 1.0e-3)); assertThat(model.getItemBias(200), closeTo(0.0, 1.0e-3)); assertThat(model.getItemBias(201), closeTo(-1.0, 1.0e-3)); assertThat(model.getItemBias(203), closeTo(0.5, 1.0e-3)); }
@Test public void testComputeUserMeans() { EntityFactory efac = new EntityFactory(); EntityCollectionDAOBuilder daoBuilder = new EntityCollectionDAOBuilder(); daoBuilder.addEntities(efac.rating(100, 200, 3.0), efac.rating(101, 200, 4.0), efac.rating(102, 201, 2.5), efac.rating(102, 203, 4.5), efac.rating(101, 203, 3.5)); LenskitConfiguration config = new LenskitConfiguration(); config.addRoot(BiasModel.class); config.bind(BiasModel.class).toProvider(UserAverageRatingBiasModelProvider.class); LenskitRecommender rec = LenskitRecommender.build(config, daoBuilder.build()); BiasModel model = rec.get(BiasModel.class); assertThat(model.getIntercept(), closeTo(3.5, 1.0e-3)); assertThat(model.getUserBias(100), closeTo(-0.5, 1.0e-3)); assertThat(model.getUserBias(101), closeTo(0.25, 1.0e-3)); assertThat(model.getUserBias(102), closeTo(0.0, 1.0e-3)); }
@Test public void testComputeMeans() { EntityFactory efac = new EntityFactory(); EntityCollectionDAOBuilder daoBuilder = new EntityCollectionDAOBuilder(); daoBuilder.addEntities(efac.rating(100, 200, 3.0), efac.rating(101, 200, 4.0), efac.rating(101, 201, 2.5), efac.rating(102, 203, 4.5), efac.rating(103, 203, 3.5)); LenskitConfiguration config = new LenskitConfiguration(); config.addRoot(BiasModel.class); config.bind(BiasModel.class).toProvider(ItemAverageRatingBiasModelProvider.class); LenskitRecommender rec = LenskitRecommender.build(config, daoBuilder.build()); BiasModel model = rec.get(BiasModel.class); assertThat(model.getIntercept(), closeTo(3.5, 1.0e-3)); assertThat(model.getItemBias(200), closeTo(0.0, 1.0e-3)); assertThat(model.getItemBias(201), closeTo(-1.0, 1.0e-3)); assertThat(model.getItemBias(203), closeTo(0.5, 1.0e-3)); } }
@Test public void testComputeAllMeans() { EntityFactory efac = new EntityFactory(); EntityCollectionDAOBuilder daoBuilder = new EntityCollectionDAOBuilder(); daoBuilder.addEntities(efac.rating(100, 200, 3.0), efac.rating(101, 200, 4.0), efac.rating(102, 201, 2.5), efac.rating(102, 203, 4.5), efac.rating(101, 203, 3.5)); LenskitConfiguration config = new LenskitConfiguration(); config.addRoot(BiasModel.class); config.bind(BiasModel.class).toProvider(UserItemAverageRatingBiasModelProvider.class); LenskitRecommender rec = LenskitRecommender.build(config, daoBuilder.build()); BiasModel model = rec.get(BiasModel.class); assertThat(model.getIntercept(), closeTo(3.5, 1.0e-3)); assertThat(model.getItemBias(200), closeTo(0.0, 1.0e-3)); assertThat(model.getItemBias(201), closeTo(-1.0, 1.0e-3)); assertThat(model.getItemBias(203), closeTo(0.5, 1.0e-3)); assertThat(model.getUserBias(100), closeTo(-0.5, 1.0e-3)); assertThat(model.getUserBias(101), closeTo(0, 1.0e-3)); assertThat(model.getUserBias(102), closeTo(0.25, 1.0e-3)); } }