Ejemplo n.º 1
0
        public void TestDefaultBehaviorIsNoDecay()
        {
            var mf = new SigmoidSVDPlusPlus()
            {
                LearnRate = 1.1f, NumIter = 10, Ratings = TestUtils.CreateRatings()
            };

            mf.Train();
            Assert.AreEqual(1.1f, mf.current_learnrate);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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);
        }