[Test()] public void TestComputeCorrelation()
        {
            var vector1 = new HashSet <int>();

            vector1.Add(0);
            vector1.Add(2);
            vector1.Add(4);
            var vector2 = new HashSet <int>();

            vector2.Add(1);
            vector2.Add(3);
            vector2.Add(4);

            var cosine = new BinaryCosine(4);

            Assert.AreEqual(1 / 3f, cosine.ComputeCorrelation(vector1, vector2), DELTA);
            Assert.AreEqual(0f, cosine.ComputeCorrelation(vector1, new HashSet <int>()), DELTA);
        }
Esempio n. 2
0
 ///
 protected override void RetrainUser(int user_id)
 {
     base.RetrainUser(user_id);
     if (UpdateUsers)
     {
         for (int i = 0; i <= MaxUserID; i++)
         {
             correlation[user_id, i] = BinaryCosine.ComputeCorrelation(new HashSet <int>(data_user[user_id]), new HashSet <int>(data_user[i]));
         }
     }
 }
Esempio n. 3
0
 ///
 protected override void RetrainItem(int item_id)
 {
     base.RetrainUser(item_id);
     if (UpdateItems)
     {
         for (int i = 0; i <= MaxItemID; i++)
         {
             correlation[item_id, i] = BinaryCosine.ComputeCorrelation(new HashSet <int>(data_item[item_id]), new HashSet <int>(data_item[i]));
         }
     }
 }
Esempio n. 4
0
        [Test()] public void TestComputeCorrelation()
        {
            // create test objects
            var vector1 = new HashSet <int>();

            vector1.Add(0);
            vector1.Add(2);
            vector1.Add(4);
            var vector2 = new HashSet <int>();

            vector2.Add(1);
            vector2.Add(3);
            vector2.Add(4);
            // test
            Assert.AreEqual(Math.Round(1 / 3d, 4), Math.Round(BinaryCosine.ComputeCorrelation(vector1, vector2), 4));
        }