Example #1
0
        public void TestRatioSplit()
        {
            var ratings = new TimedRatings();

            ratings.Add(0, 0, 5.0f, new DateTime(2011, 10, 31));
            ratings.Add(0, 1, 4.5f, new DateTime(2011, 11, 1));
            ratings.Add(0, 2, 5.0f, new DateTime(2011, 11, 3));
            ratings.Add(0, 3, 4.5f, new DateTime(2011, 11, 4));
            ratings.Add(1, 0, 1.0f, new DateTime(2011, 10, 31));
            ratings.Add(1, 1, 2.5f, new DateTime(2011, 11, 2));
            ratings.Add(1, 2, 1.0f, new DateTime(2011, 12, 1));
            ratings.Add(1, 3, 2.5f, new DateTime(2011, 12, 4));

            var split1 = new RatingsPerUserChronologicalSplit(ratings, 0.25);

            Assert.AreEqual(6, split1.Train[0].Count);
            Assert.AreEqual(2, split1.Test[0].Count);
            Assert.AreEqual(3, split1.Train[0].ByUser[0].Count);
            Assert.AreEqual(3, split1.Train[0].ByUser[1].Count);
            Assert.AreEqual(1, split1.Test[0].ByUser[0].Count);
            Assert.AreEqual(1, split1.Test[0].ByUser[1].Count);

            var split2 = new RatingsPerUserChronologicalSplit(ratings, 0.5);

            Assert.AreEqual(4, split2.Train[0].Count);
            Assert.AreEqual(4, split2.Test[0].Count);
            Assert.AreEqual(2, split2.Train[0].ByUser[0].Count);
            Assert.AreEqual(2, split2.Train[0].ByUser[1].Count);
            Assert.AreEqual(2, split2.Test[0].ByUser[0].Count);
            Assert.AreEqual(2, split2.Test[0].ByUser[1].Count);
        }
		public void TestRatioSplit()
		{
			var ratings = new TimedRatings();
			ratings.Add(0, 0, 5.0f, new DateTime(2011, 10, 31));
			ratings.Add(0, 1, 4.5f, new DateTime(2011, 11, 1));
			ratings.Add(0, 2, 5.0f, new DateTime(2011, 11, 3));
			ratings.Add(0, 3, 4.5f, new DateTime(2011, 11, 4));
			ratings.Add(1, 0, 1.0f, new DateTime(2011, 10, 31));
			ratings.Add(1, 1, 2.5f, new DateTime(2011, 11, 2));
			ratings.Add(1, 2, 1.0f, new DateTime(2011, 12, 1));
			ratings.Add(1, 3, 2.5f, new DateTime(2011, 12, 4));

			var split1 = new RatingsPerUserChronologicalSplit(ratings, 0.25);
			Assert.AreEqual(6, split1.Train[0].Count);
			Assert.AreEqual(2, split1.Test[0].Count);
			Assert.AreEqual(3, split1.Train[0].ByUser[0].Count);
			Assert.AreEqual(3, split1.Train[0].ByUser[1].Count);
			Assert.AreEqual(1, split1.Test[0].ByUser[0].Count);
			Assert.AreEqual(1, split1.Test[0].ByUser[1].Count);

			var split2 = new RatingsPerUserChronologicalSplit(ratings, 0.5);
			Assert.AreEqual(4, split2.Train[0].Count);
			Assert.AreEqual(4, split2.Test[0].Count);
			Assert.AreEqual(2, split2.Train[0].ByUser[0].Count);
			Assert.AreEqual(2, split2.Train[0].ByUser[1].Count);
			Assert.AreEqual(2, split2.Test[0].ByUser[0].Count);
			Assert.AreEqual(2, split2.Test[0].ByUser[1].Count);
		}