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); }