public void computing_distance_between_users() { RecoContext c = new RecoContext(); c.LoadFrom(_goodDataPath); double d = c.DistanceNorm2(c.Users[13], c.Users[89]); }
public void test_movies_similarity() { var data = new TestData(); var context = new RecoContext(); Assert.That(context.SimilarityPearson(data.Movies[0], data.Movies[0], data.Users), Is.EqualTo(1.000).Within(0.0005)); Assert.That(context.SimilarityPearson(data.Movies[0], data.Movies[1], data.Users), Is.EqualTo(0.790).Within(0.0005)); Assert.That(context.SimilarityPearson(data.Movies[0], data.Movies[2], data.Users), Is.EqualTo(0.436).Within(0.0005)); Assert.That(context.SimilarityPearson(data.Movies[0], data.Movies[3], data.Users), Is.EqualTo(-0.511).Within(0.0005)); Assert.That(context.SimilarityPearson(data.Movies[0], data.Movies[4], data.Users), Is.EqualTo(-0.406).Within(0.0005)); Assert.That(context.SimilarityPearson(data.Movies[0], data.Movies[5], data.Users), Is.EqualTo(0.878).Within(0.0005)); Assert.That(context.SimilarityPearson(data.Movies[1], data.Movies[1], data.Users), Is.EqualTo(1.000).Within(0.0005)); Assert.That(context.SimilarityPearson(data.Movies[1], data.Movies[2], data.Users), Is.EqualTo(0.603).Within(0.0005)); Assert.That(context.SimilarityPearson(data.Movies[1], data.Movies[3], data.Users), Is.EqualTo(-0.047).Within(0.0005)); Assert.That(context.SimilarityPearson(data.Movies[1], data.Movies[4], data.Users), Is.EqualTo(-0.262).Within(0.0005)); Assert.That(context.SimilarityPearson(data.Movies[1], data.Movies[5], data.Users), Is.EqualTo(0.472).Within(0.0005)); Assert.That(context.SimilarityPearson(data.Movies[2], data.Movies[2], data.Users), Is.EqualTo(1.000).Within(0.0005)); Assert.That(context.SimilarityPearson(data.Movies[2], data.Movies[3], data.Users), Is.EqualTo(0.156).Within(0.0005)); Assert.That(context.SimilarityPearson(data.Movies[2], data.Movies[4], data.Users), Is.EqualTo(0.372).Within(0.0005)); Assert.That(context.SimilarityPearson(data.Movies[2], data.Movies[5], data.Users), Is.EqualTo(0.224).Within(0.0005)); Assert.That(context.SimilarityPearson(data.Movies[3], data.Movies[3], data.Users), Is.EqualTo(1.000).Within(0.0005)); Assert.That(context.SimilarityPearson(data.Movies[3], data.Movies[4], data.Users), Is.EqualTo(0.562).Within(0.0005)); Assert.That(context.SimilarityPearson(data.Movies[3], data.Movies[5], data.Users), Is.EqualTo(-0.489).Within(0.0005)); Assert.That(context.SimilarityPearson(data.Movies[4], data.Movies[4], data.Users), Is.EqualTo(1.000).Within(0.0005)); Assert.That(context.SimilarityPearson(data.Movies[4], data.Movies[5], data.Users), Is.EqualTo(-0.388).Within(0.0005)); Assert.That(context.SimilarityPearson(data.Movies[5], data.Movies[5], data.Users), Is.EqualTo(1.000).Within(0.0005)); }
public void check_known_similarities() { Assert.That(RecoContext.SimilarityPearson(_context.Users[3712], _context.Users[3640]), Is.EqualTo(0.161633188914379).Within(1e-15)); Assert.That(RecoContext.SimilarityPearson(_context.Users[3712], _context.Users[486]), Is.EqualTo(-0.18978131929287).Within(1e-15)); Assert.That(RecoContext.SimilarityPearson(_context.Users[3712], _context.Users[286]), Is.EqualTo(0.00577164323971453).Within(1e-15)); Assert.That(RecoContext.SimilarityPearson(_context.Users[3640], _context.Users[486]), Is.EqualTo(-0.151923076923077).Within(1e-15)); Assert.That(RecoContext.SimilarityPearson(_context.Users[3640], _context.Users[286]), Is.EqualTo(0.28064295060584).Within(1e-15)); Assert.That(RecoContext.SimilarityPearson(_context.Users[486], _context.Users[286]), Is.EqualTo(-0.692820323027552).Within(1e-15)); }
public void LoadTestDataOnlyOnce() { if (_context == null) { var c = new RecoContext(); if (c.LoadFrom(GetGoodDataPath())) { _context = c; } } }
public void computing_similar_users() { RecoContext c = new RecoContext(); c.LoadFrom(_goodDataPath); User u = c.Users[3712]; SimilarUser[] similarUsers = c.GetSimilarUsers(u, 2000); Assert.That(similarUsers.Count, Is.EqualTo(2000)); }
public void ReadMovieData() { RecoContext c = new RecoContext(); c.LoadFrom(_goodDataPath); for (int i = 0; i < c.Users.Length; ++i) { Assert.That(c.Users[i].UserID, Is.EqualTo(i + 1)); } for (int i = 0; i < c.Movies.Length; ++i) { Assert.That(c.Movies[i].MovieID, Is.EqualTo(i + 1)); } }
public void computing_intersection_movies_algo() { RecoContext c = new RecoContext(); c.LoadFrom(_goodDataPath); int count = 2000; User u = c.Users[3712]; // contains first recommended 'Stop Making Sense (1984)' SimilarUser[] similarUsers = c.GetSimilarUsers(u, 2000); List <Movie> recommendedMoviesUserBased = c.GetRecommendedMovies(u, similarUsers, count); Movie m = c.Movies[2791]; // 'Stop Making Sense (1984)' SimilarMovie[] SimilarMovies = c.GetSimilarMovies(m, 200); List <Movie> recommendedMoviesItemBased = c.GetRecommendedMovies(m, SimilarMovies, count); var common = recommendedMoviesUserBased.Intersect(recommendedMoviesItemBased).ToArray(); }
public void computing_the_distance_between_2_users() { RecoContext c = new RecoContext(); c.LoadFrom(_goodDataPath); const int part = 10; for (int i = 0; i < c.Users.Length / part; i++) { var u1 = c.Users[i]; Assert.That(c.DistanceNorm2(u1, u1), Is.EqualTo(0)); for (int j = i + 1; j < c.Users.Length / part; j++) { var u2 = c.Users[j]; Assert.That(c.DistanceNorm2(u1, u2), Is.EqualTo(c.DistanceNorm2(u2, u1))); } } }
public void computing_recommended_movies() { RecoContext c = new RecoContext(); c.LoadFrom(_goodDataPath); int count = 10; User u = c.Users[3712]; SimilarUser[] similarUsers = c.GetSimilarUsers(u, 2000); List <Movie> recommendedMovies = c.GetRecommendedMovies(u, similarUsers, count); Assert.That(recommendedMovies.Count, Is.EqualTo(count)); Console.WriteLine(" User Based Recommendation for userId: {0} (Best {1}): ", u.UserID, count); foreach (Movie m in recommendedMovies) { Console.WriteLine("Movie: '{0}'-{1}", m.Title, m.MovieID); } }
public void computing_recommended_movies_by_items() { RecoContext c = new RecoContext(); c.LoadFrom(_goodDataPath); c.computingMovieAverage(); int count = 10; Movie m = c.Movies[1177]; SimilarMovie[] SimilarMovies = c.GetSimilarMovies(m, 200); List <Movie> recommendedMovies = c.GetRecommendedMovies(m, SimilarMovies, count); Assert.That(recommendedMovies.Count, Is.EqualTo(count)); Console.WriteLine("Item Based Recommendation for: '{0}' (Best {1}): ", m.Title, count); foreach (Movie movie in recommendedMovies) { Console.WriteLine("Movie: '{0}'-{1}", movie.Title, movie.MovieID); } }
public void ReadMovieData() { RecoContext c = new RecoContext(); c.LoadFrom( _goodDataPath ); for( int i = 0; i < c.Users.Length; ++i ) Assert.That( c.Users[i].UserID, Is.EqualTo( i+1 ) ); for( int i = 0; i < c.Movies.Length; ++i ) Assert.That( c.Movies[i].MovieID, Is.EqualTo( i+1 ) ); }