Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
	    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);
		    }
	    }
Ejemplo n.º 4
0
	    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);
	    }
Ejemplo n.º 5
0
        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);
            }
        }
Ejemplo n.º 6
0
        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);
        }
Ejemplo n.º 7
0
        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);
        }
Ejemplo n.º 8
0
        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();
            }
        }
Ejemplo n.º 9
0
	    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);
	    }
Ejemplo n.º 10
0
	    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);
	    }
Ejemplo n.º 11
0
	    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);
	    }