コード例 #1
0
ファイル: Program.cs プロジェクト: jratzenboeck/LFUGD3
        static void Main(string[] args)
        {
            String path_training_data = "user_ratedmovies.dat";
            String path_user_data     = "users.dat";
            String path_atr_data      = "movie_genres.dat";
            String path_pred_data     = "predict.dat";

            var user_mapping = new Mapping();
            var item_mapping = new Mapping();

            //var user_mapping = new EntityMapping();
            //var item_mapping = new EntityMapping();
            //String path_training_data = "1.rec.train";
            //String path_test_data = "1.rec.test";
            //String path_training_data = "u1.base";
            //String path_test_data = "u1.test";
            //var training_data = ItemData.Read(path_training_data);
            //var test_data = ItemData.Read(path_test_data);

            var training_data  = RatingData.Read(path_training_data, user_mapping, item_mapping);
            var relevant_items = item_mapping.InternalIDs;
            var atr_data       = AttributeData.Read(path_atr_data, item_mapping);
            var pred_data      = RatingData.Read(path_pred_data, user_mapping, item_mapping);

            //var user_data = ItemData.Read(path_user_data, user_mapping);
            Console.WriteLine("I'm here");
            //Console.WriteLine(String.Join(";", user_data.AllUsers));
            //var test_data = RatingData.Read(path_test_data);

            //var recommender = new ItemKNN();
            //recommender.Feedback = training_data;
            //recommender.Train();

            //var recommender = new GSVDPlusPlus();
            //var recommender = new MatrixFactorization();
            //recommender.Ratings = training_data;
            // recommender.MaxRating = 5;
            // recommender.MinRating = 1;
            //recommender.ItemAttributes = atr_data;
            //recommender.NumFactors = 5;
            //recommender.NumIter = 10;

            //recommender.Train();


            var recommender = new SVDPlusPlus();

            recommender.Ratings = training_data;
            //recommender.AdditionalFeedback = user_data;
            Console.WriteLine("I'm here2");
            Console.WriteLine(recommender.ToString());
            //recommender.ItemAttributes = atr_data;
            recommender.NumFactors = 10;

            Console.WriteLine("I'm here3");
            Console.WriteLine(recommender.ToString());
            recommender.Train();
            Console.WriteLine("I'm here4");


            //var results = recommender.DoIterativeCrossValidation(recommdender, 10, 1, 1, true);
            var results = recommender.DoCrossValidation(10, false, true);

            ////var results = recommender.Evaluate(test_data, training_data);
            foreach (var key in results.Keys)
            {
                Console.WriteLine("{0}={1}", key, results[key]);
            }
            Console.WriteLine(results);
            //recommender.Predict();
            recommender.WritePredictions(pred_data, "test45.dat", user_mapping, item_mapping, "{0}|{1}|{2}");

            Console.WriteLine(recommender.Predict(1, 1));
            Console.ReadLine();
        }