private static void startItemKNN(string data)
{
MyMediaLite.Data.Mapping user_mapping = new MyMediaLite.Data.Mapping();
MyMediaLite.Data.Mapping item_mapping = new MyMediaLite.Data.Mapping();
ITimedRatings all_data = readDataMapped(data, ref user_mapping, ref item_mapping);
removeUserThreshold(ref all_data);
Console.WriteLine("Start iteration Test ItemKNN");
ITimedRatings validation_data = new TimedRatings(); // 10%
ITimedRatings test_data = new TimedRatings(); // 20%
ITimedRatings training_data = new TimedRatings(); // 70%
readAndSplitData(all_data, ref test_data, ref training_data, ref validation_data);
IPosOnlyFeedback training_data_pos = new PosOnlyFeedback <SparseBooleanMatrix> (); // 80%
for (int index = 0; index < training_data.Users.Count; index++)
{
training_data_pos.Add(training_data.Users [index], training_data.Items [index]);
}
MyMediaLite.ItemRecommendation.ItemKNN recommender = new MyMediaLite.ItemRecommendation.ItemKNN();
recommender.Feedback = training_data_pos;
DateTime start_time = DateTime.Now;
recommender.Train();
Console.Write("Total Training time needed:");
Console.WriteLine(((TimeSpan)(DateTime.Now - start_time)).TotalMilliseconds);
Console.WriteLine("Final results in this iteration:");
var results = MyMediaLite.Eval.ItemsWeatherItemRecommender.EvaluateTime(recommender, validation_data, training_data, "VALIDATION ", false);
results = MyMediaLite.Eval.ItemsWeatherItemRecommender.EvaluateTime(recommender, test_data, training_data, "TEST ", false);
//}
}