public void TestCurrentLearnRate() { var mf = new SigmoidSVDPlusPlus() { LearnRate = 1.1f, Ratings = TestUtils.CreateRatings() }; mf.InitModel(); Assert.AreEqual(1.1f, mf.LearnRate); Assert.AreEqual(1.1f, mf.current_learnrate); }
public void TestFoldIn() { var svdpp = new SigmoidSVDPlusPlus() { Ratings = TestUtils.CreateRatings() }; svdpp.Train(); var user_ratings = new List<Tuple<int, float>>(); user_ratings.Add(new Tuple<int, float>(0, 4.0f)); var candidate_items = new List<int> { 0, 1 }; // have a known and an unknown item var results = svdpp.ScoreItems(user_ratings, candidate_items); Assert.AreEqual(2, results.Count); }
public void TestMatrixInit() { var svdpp = new SigmoidSVDPlusPlus() { Ratings = TestUtils.CreateRatings() }; svdpp.InitModel(); Assert.IsNotNull(svdpp.user_factors); Assert.IsNotNull(svdpp.item_factors); Assert.IsNotNull(svdpp.p); Assert.IsNotNull(svdpp.y); Assert.IsNotNull(svdpp.user_bias); Assert.IsNotNull(svdpp.item_bias); }
public void TestDecay() { var svdpp = new SigmoidSVDPlusPlus() { LearnRate = 1.0f, Decay = 0.5f, NumIter = 1, Ratings = TestUtils.CreateRatings() }; svdpp.Train(); Assert.AreEqual(0.5f, svdpp.current_learnrate); svdpp.Iterate(); Assert.AreEqual(0.25f, svdpp.current_learnrate); }
public void TestDefaultBehaviorIsNoDecay() { var mf = new SigmoidSVDPlusPlus() { LearnRate = 1.1f, NumIter = 10, Ratings = TestUtils.CreateRatings() }; mf.Train(); Assert.AreEqual(1.1f, mf.current_learnrate); }