public void TestMovieLensSingle() { // step 1: dataset var config = new CsvConfiguration() { Delimiter = "::", HasHeaderRecord = true }; // load data var trainReader = new CsvReader(Paths.MovieLens1MTrain75, config); var testReader = new CsvReader(Paths.MovieLens1MTest25, config, true); var container = new DataContainer(); trainReader.LoadData(container); testReader.LoadData(container); var startTime = DateTime.Now; var splitter = new RatingSimpleSplitter(container); //var recommender = new MediaLiteRatingPredictor(new MatrixFactorization()); var recommender = new LibFmTrainTester(libFmPath: "LibFm.Net.64.exe"); // evaluation var ctx = new EvalutationContext<ItemRating>(recommender, splitter); var ep = new EvaluationPipeline<ItemRating>(ctx); ep.Evaluators.Add(new RMSE()); ep.Run(); var duration = (int)DateTime.Now.Subtract(startTime).TotalMilliseconds; Console.WriteLine("RMSE\tDuration\n{0}\t{1}", ctx["RMSE"], duration); }
public void TestEpinionsTrustAware() { // step 1: dataset var config = new CsvConfiguration() { Delimiter = " ", HasHeaderRecord = true }; // load data var trainReader = new CsvReader(Paths.EpinionTrain80, config); var testReader = new CsvReader(Paths.EpinionTest20, config, true); var readers = new List <IDatasetReader>() { trainReader, testReader }; var epinionTrustReader = new EpinionTrustReader(readers.ToArray(), Paths.EpinionRelationsImplicit); var container = new DataContainer(); epinionTrustReader.LoadData(container); var startTime = DateTime.Now; var splitter = new RatingSimpleSplitter(container); //var recommender = new MediaLiteRatingPredictor(new MatrixFactorization()); var fb = new TrustAwareLibFmFeatureBuilder(container, 4, true); var recommender = new LibFmTrainTester(featureBuilder: fb); // evaluation var ctx = new EvalutationContext <ItemRating>(recommender, splitter); var ep = new EvaluationPipeline <ItemRating>(ctx); ep.Evaluators.Add(new RMSE()); ep.Run(); var duration = (int)DateTime.Now.Subtract(startTime).TotalMilliseconds; Console.WriteLine("RMSE\tDuration\n{0}\t{1}", ctx["RMSE"], duration); }
static void TrainTestFm() { var reader = new PlayingSessionReader(path); var container = new MusicDataContainer(); reader.LoadData(container); var splitter = new RatingSimpleSplitter(container, 0.25f); //var itemRecommender = new MostPopular(); //var model = new MediaLitePosFeedbakItemRecommender(itemRecommender); var fm = new LibFmTrainTester(); var context = new EvalutationContext<ItemRating>(fm, splitter); var pipline = new EvaluationPipeline<ItemRating>(context); pipline.Evaluators.Add(new RMSE()); pipline.Evaluators.Add(new MAE()); pipline.Run(); }
static void TrainTestFm() { var reader = new PlayingSessionReader(path); var container = new MusicDataContainer(); reader.LoadData(container); var splitter = new RatingSimpleSplitter(container, 0.25f); //var itemRecommender = new MostPopular(); //var model = new MediaLitePosFeedbakItemRecommender(itemRecommender); var fm = new LibFmTrainTester(); var context = new EvalutationContext <ItemRating>(fm, splitter); var pipline = new EvaluationPipeline <ItemRating>(context); pipline.Evaluators.Add(new RMSE()); pipline.Evaluators.Add(new MAE()); pipline.Run(); }
public void TestAmazonAllDomains2() { // step 1: dataset var config = new CsvConfiguration() { Delimiter = ",", HasHeaderRecord = true }; var container = new DataContainer(); var bookReader = new CsvReader(Paths.AmazonBooksRatings, config); var musicReader = new CsvReader(Paths.AmazonMusicRatings, config); var dvdReader = new CsvReader(Paths.AmazonDvdRatings, config); var videoReader = new CsvReader(Paths.AmazonVideoRatings, config); bookReader.LoadData(container); musicReader.LoadData(container); dvdReader.LoadData(container); videoReader.LoadData(container); var splitter = new RatingSimpleSplitter(container, 0.25f); var startTime = DateTime.Now; var recommender = new LibFmTrainTester(); //var recommender = new MediaLiteRatingPredictor(new MatrixFactorization()); // step3: evaluation var ctx = new EvalutationContext <ItemRating>(recommender, splitter); var ep = new EvaluationPipeline <ItemRating>(ctx); ep.Evaluators.Add(new RMSE()); ep.Evaluators.Add(new MAE()); ep.Run(); var duration = DateTime.Now.Subtract(startTime); Console.WriteLine("RMSE\t{0}\nDuration\t{1}", ctx["RMSE"], (int)duration.TotalMilliseconds); }
public void TestMovieLensSingle() { // step 1: dataset var config = new CsvConfiguration() { Delimiter = "::", HasHeaderRecord = true }; // load data var trainReader = new CsvReader(Paths.MovieLens1MTrain75, config); var testReader = new CsvReader(Paths.MovieLens1MTest25, config, true); var container = new DataContainer(); trainReader.LoadData(container); testReader.LoadData(container); var startTime = DateTime.Now; var splitter = new RatingSimpleSplitter(container); //var recommender = new MediaLiteRatingPredictor(new MatrixFactorization()); var recommender = new LibFmTrainTester(libFmPath: "LibFm.Net.64.exe"); // evaluation var ctx = new EvalutationContext <ItemRating>(recommender, splitter); var ep = new EvaluationPipeline <ItemRating>(ctx); ep.Evaluators.Add(new RMSE()); ep.Run(); var duration = (int)DateTime.Now.Subtract(startTime).TotalMilliseconds; Console.WriteLine("RMSE\tDuration\n{0}\t{1}", ctx["RMSE"], duration); }
public void TestAmazonAllDomains2() { // step 1: dataset var config = new CsvConfiguration() { Delimiter = ",", HasHeaderRecord = true }; var container = new DataContainer(); var bookReader = new CsvReader(Paths.AmazonBooksRatings, config); var musicReader = new CsvReader(Paths.AmazonMusicRatings, config); var dvdReader = new CsvReader(Paths.AmazonDvdRatings, config); var videoReader = new CsvReader(Paths.AmazonVideoRatings, config); bookReader.LoadData(container); musicReader.LoadData(container); dvdReader.LoadData(container); videoReader.LoadData(container); var splitter = new RatingSimpleSplitter(container, 0.25f); var startTime = DateTime.Now; var recommender = new LibFmTrainTester(); //var recommender = new MediaLiteRatingPredictor(new MatrixFactorization()); // step3: evaluation var ctx = new EvalutationContext<ItemRating>(recommender, splitter); var ep = new EvaluationPipeline<ItemRating>(ctx); ep.Evaluators.Add(new RMSE()); ep.Evaluators.Add(new MAE()); ep.Run(); var duration = DateTime.Now.Subtract(startTime); Console.WriteLine("RMSE\t{0}\nDuration\t{1}", ctx["RMSE"], (int)duration.TotalMilliseconds); }