Ejemplo n.º 1
0
//	private static void readAndSplitDataRandomly(ITimedRatings all_data, ref ITimedRatings validation_data, ref ITimedRatings test_data, ref ITimedRatings training_data){
//
//
//		Console.WriteLine (all_data.Statistics ());
//
//		List<int> validation_list_item = new List<int>();
//		List<int> test_list_item = new List<int>();
//		List<int> training_list_item = new List<int>();
//
//		List<DateTime> validation_list_time = new List<DateTime>();
//		List<DateTime> test_list_time = new List<DateTime>();
//		List<DateTime> training_list_time = new List<DateTime>();
//
//		List<int> validation_list_user = new List<int>();
//		List<int> test_list_user = new List<int>();
//		List<int> training_list_user = new List<int>();
//
//		System.Random gen = new System.Random();
//		for (int i = 0; i < all_data.Users.Count; i++) {
//			int rnd = gen.Next(100);
//			if(rnd <= 10){
//				validation_list_item.Add(all_data.Items[i]);
//				validation_list_time.Add(all_data.Times[i]);
//				validation_list_user.Add(all_data.Users[i]);
//			}else if(rnd <=30){
//				test_list_item.Add(all_data.Items[i]);
//				test_list_time.Add(all_data.Times[i]);
//				test_list_user.Add(all_data.Users[i]);
//			}else{
//				training_list_item.Add(all_data.Items[i]);
//				training_list_time.Add(all_data.Times[i]);
//				training_list_user.Add(all_data.Users[i]);
//			}
//		}
//		create_data(validation_list_user,  validation_list_item, validation_list_time, ref validation_data);
//		create_data(test_list_user,  test_list_item, test_list_time, ref test_data);
//		create_data(training_list_user,  training_list_item, training_list_time, ref training_data);
//
//
//
//		Console.Write(validation_data.Statistics ());
//		Console.Write(test_data.Statistics ());
//		Console.Write(training_data.Statistics());
//		Console.WriteLine ("finished creating datasets:");
//		Console.WriteLine (DateTime.Now);
//	}
//
    private static void readAndSplitData(ITimedRatings all_data, ref ITimedRatings test_data, ref ITimedRatings training_data, ref ITimedRatings validation_data)
    {
        Dictionary <int, IList <DateTime> > user_times = all_data.getTimesUserDict();
        Dictionary <int, IList <int> >      user_items = all_data.getItemsUserDict();

        foreach (int user_id in all_data.AllUsers)
        {
            List <DateTime> timesOfUser    = (List <DateTime>)user_times [user_id];
            List <int>      itemsOfUser    = (List <int>)user_items[user_id];
            int             amountCheckIns = timesOfUser.Count;
            //int validation = (int)(amountCheckIns * 0.1);
            int test     = (int)(amountCheckIns * 0.2);
            int training = (int)(amountCheckIns * 0.7);

            List <int> training_list_item   = itemsOfUser.GetRange(0, training);
            List <int> test_list_item       = itemsOfUser.GetRange(training, amountCheckIns - (training));
            List <int> validation_list_item = itemsOfUser.GetRange(training + test, amountCheckIns - (training + test));

            List <DateTime> training_list_time   = timesOfUser.GetRange(0, training);
            List <DateTime> test_list_time       = timesOfUser.GetRange(training, amountCheckIns - (training));
            List <DateTime> validation_list_time = timesOfUser.GetRange(training + test, amountCheckIns - (training + test));

            create_data(user_id, validation_list_item, validation_list_time, ref validation_data);
            create_data(user_id, test_list_item, test_list_time, ref test_data);
            create_data(user_id, training_list_item, training_list_time, ref training_data);
        }

        Console.Write(validation_data.Statistics());
        Console.Write(test_data.Statistics());
        Console.Write(training_data.Statistics());
        Console.WriteLine("finished creating datasets:");
        Console.WriteLine(DateTime.Now);
    }
Ejemplo n.º 2
0
//
    private static void readAndSplitDataRandomly(ITimedRatings all_data, ref ITimedRatings test_data, ref ITimedRatings training_data)
    {
        Dictionary <int, IList <DateTime> > user_times = all_data.getTimesUserDict();
        Dictionary <int, IList <int> >      user_items = all_data.getItemsUserDict();

        List <int> test_list_item     = new List <int>();
        List <int> training_list_item = new List <int>();


        List <DateTime> test_list_time     = new List <DateTime>();
        List <DateTime> training_list_time = new List <DateTime>();

        List <int> test_list_user     = new List <int>();
        List <int> training_list_user = new List <int>();

        System.Random gen = new System.Random();
        for (int i = 0; i < all_data.Users.Count; i++)
        {
            int rnd = gen.Next(100);
            if (rnd <= 30)
            {
                test_list_item.Add(all_data.Items[i]);
                test_list_time.Add(all_data.Times[i]);
                test_list_user.Add(all_data.Users[i]);
            }
            else
            {
                training_list_item.Add(all_data.Items[i]);
                training_list_time.Add(all_data.Times[i]);
                training_list_user.Add(all_data.Users[i]);
            }
        }
        create_data(test_list_user, test_list_item, test_list_time, ref test_data);
        create_data(training_list_user, training_list_item, training_list_time, ref training_data);

        Console.Write(test_data.Statistics());
        Console.Write(training_data.Statistics());
        Console.WriteLine("finished creating datasets:");
        Console.WriteLine(DateTime.Now);
    }