public void TestSetPrefMemoryDiffUpdates() { DiffStorage diffStorage = new MemoryDiffStorage(model, false, false, long.MaxValue); Recommender recommender = new SlopeOneRecommender(model, true, true, diffStorage); Assert.AreEqual(0.5, diffStorage.GetDiff("456", "789").Average, EPSILON); recommender.SetPreference("A123", "456", 0.7); Assert.AreEqual(-0.1, diffStorage.GetDiff("456", "789").Average, EPSILON); }
public void testDiffStdevBehavior() { List <User> users = new List <User>(3); users.Add(GetUser("test1", 0.1, 0.2)); users.Add(GetUser("test2", 0.2, 0.3, 0.6)); DataModel dataModel = new GenericDataModel(users); Recommender recommender = new SlopeOneRecommender(dataModel); Assert.AreEqual(0.5, recommender.EstimatePreference("test1", "2"), EPSILON); }
public void TestHowMany() { List<User> users = new List<User>(3); users.Add(GetUser("test1", 0.1, 0.2)); users.Add(GetUser("test2", 0.2, 0.3, 0.3, 0.6)); users.Add(GetUser("test3", 0.4, 0.4, 0.5, 0.9)); users.Add(GetUser("test4", 0.1, 0.4, 0.5, 0.8, 0.9, 1.0)); users.Add(GetUser("test5", 0.2, 0.3, 0.6, 0.7, 0.1, 0.2)); DataModel dataModel = new GenericDataModel(users); Recommender recommender = new SlopeOneRecommender(dataModel); IList<RecommendedItem> fewRecommended = recommender.Recommend("test1", 2); IList<RecommendedItem> moreRecommended = recommender.Recommend("test1", 4); for (int i = 0; i < fewRecommended.Count; i++) { Assert.AreEqual(fewRecommended[i].Item, moreRecommended[i].Item); } }
public void TestRescorer() { List<User> users = new List<User>(3); users.Add(GetUser("test1", 0.1, 0.2)); users.Add(GetUser("test2", 0.2, 0.3, 0.3, 0.6)); users.Add(GetUser("test3", 0.4, 0.4, 0.5, 0.9)); DataModel dataModel = new GenericDataModel(users); Recommender recommender = new SlopeOneRecommender(dataModel); IList<RecommendedItem> originalRecommended = recommender.Recommend("test1", 2); IList<RecommendedItem> rescoredRecommended = recommender.Recommend("test1", 2, new ReversingRescorer<Item>()); Assert.IsNotNull(originalRecommended); Assert.IsNotNull(rescoredRecommended); Assert.AreEqual(2, originalRecommended.Count); Assert.AreEqual(2, rescoredRecommended.Count); Assert.AreEqual(originalRecommended[0].Item, rescoredRecommended[1].Item); Assert.AreEqual(originalRecommended[1].Item, rescoredRecommended[0].Item); }
public void TestHowMany() { List <User> users = new List <User>(3); users.Add(GetUser("test1", 0.1, 0.2)); users.Add(GetUser("test2", 0.2, 0.3, 0.3, 0.6)); users.Add(GetUser("test3", 0.4, 0.4, 0.5, 0.9)); users.Add(GetUser("test4", 0.1, 0.4, 0.5, 0.8, 0.9, 1.0)); users.Add(GetUser("test5", 0.2, 0.3, 0.6, 0.7, 0.1, 0.2)); DataModel dataModel = new GenericDataModel(users); Recommender recommender = new SlopeOneRecommender(dataModel); IList <RecommendedItem> fewRecommended = recommender.Recommend("test1", 2); IList <RecommendedItem> moreRecommended = recommender.Recommend("test1", 4); for (int i = 0; i < fewRecommended.Count; i++) { Assert.AreEqual(fewRecommended[i].Item, moreRecommended[i].Item); } }
public void TestBestRating() { List <User> users = new List <User>(3); users.Add(GetUser("test1", 0.0, 0.3)); users.Add(GetUser("test2", 0.2, 0.3, 0.3)); users.Add(GetUser("test3", 0.4, 0.3, 0.5)); DataModel dataModel = new GenericDataModel(users); Recommender recommender = new SlopeOneRecommender(dataModel); IList <RecommendedItem> recommended = recommender.Recommend("test1", 1); Assert.IsNotNull(recommended); Assert.AreEqual(1, recommended.Count); RecommendedItem firstRecommended = recommended[0]; // item one should be recommended because it has a greater rating/score Assert.AreEqual(new GenericItem <String>("2"), firstRecommended.Item); Assert.AreEqual(0.2400938676203033, firstRecommended.Value, EPSILON); }
public void TestRescorer() { List <User> users = new List <User>(3); users.Add(GetUser("test1", 0.1, 0.2)); users.Add(GetUser("test2", 0.2, 0.3, 0.3, 0.6)); users.Add(GetUser("test3", 0.4, 0.4, 0.5, 0.9)); DataModel dataModel = new GenericDataModel(users); Recommender recommender = new SlopeOneRecommender(dataModel); IList <RecommendedItem> originalRecommended = recommender.Recommend("test1", 2); IList <RecommendedItem> rescoredRecommended = recommender.Recommend("test1", 2, new ReversingRescorer <Item>()); Assert.IsNotNull(originalRecommended); Assert.IsNotNull(rescoredRecommended); Assert.AreEqual(2, originalRecommended.Count); Assert.AreEqual(2, rescoredRecommended.Count); Assert.AreEqual(originalRecommended[0].Item, rescoredRecommended[1].Item); Assert.AreEqual(originalRecommended[1].Item, rescoredRecommended[0].Item); }
static void SlopeOneRecommenderTest() { Console.WriteLine("SlopeOneRecommenderTest"); var model = new FileDataModel(filePath); var recommender = new SlopeOneRecommender(model); var ids = model.getUserIDs(); while (ids.MoveNext()) { var userId = ids.Current; var recommendedItems = recommender.recommend(userId, 5); Console.Write("uid:" + userId); foreach (var ritem in recommendedItems) { Console.Write("(" + ritem.getItemID() + "," + ritem.getValue() + ")"); } Console.WriteLine(); } }
public void TestBestRating() { List<User> users = new List<User>(3); users.Add(GetUser("test1", 0.0, 0.3)); users.Add(GetUser("test2", 0.2, 0.3, 0.3)); users.Add(GetUser("test3", 0.4, 0.3, 0.5)); DataModel dataModel = new GenericDataModel(users); Recommender recommender = new SlopeOneRecommender(dataModel); IList<RecommendedItem> recommended = recommender.Recommend("test1", 1); Assert.IsNotNull(recommended); Assert.AreEqual(1, recommended.Count); RecommendedItem firstRecommended = recommended[0]; // item one should be recommended because it has a greater rating/score Assert.AreEqual(new GenericItem<String>("2"), firstRecommended.Item); Assert.AreEqual(0.2400938676203033, firstRecommended.Value, EPSILON); }
public void testDiffStdevBehavior() { List<User> users = new List<User>(3); users.Add(GetUser("test1", 0.1, 0.2)); users.Add(GetUser("test2", 0.2, 0.3, 0.6)); DataModel dataModel = new GenericDataModel(users); Recommender recommender = new SlopeOneRecommender(dataModel); Assert.AreEqual(0.5, recommender.EstimatePreference("test1", "2"), EPSILON); }