/********************************************************** * Experiment 1 * * This experiment is to evaluate the top-N recommendation * performance of NMF on MovieLens 20M data set with default * factor count = 50 * However, the Given data size is varied from 30, 40, 50, 60 * Repeat ten times * ********************************************************/ public static void NMFonMovieLens100K() { for (int seed = 1; seed <= 10; seed++) { foreach (int givenSize in GivenSizes) { ExperimentEngine experiment = new ExperimentEngine( MovieLens20MFile, givenSize + minTestSize, maxCountOfRatings, givenSize, shuffle, seed, relevantCriteria, neighborCount, seed * 0.1); string log = experiment.RunNMF(defaultMaxEpoch, defaultLearnRate, defaultRegularization, factorCount, topN); using (StreamWriter w = File.AppendText("NMFonMovieLens100K_Log.txt")) { w.WriteLine("=========================================" + seed + "/" + givenSize); w.WriteLine(log); } } } }
/********************************************************** * Experiment 1 * * This experiment is to evaluate the top-N recommendation * performance of NMF on MovieLens 20M data set with default * factor count = 50 * However, the Given data size is varied from 30, 40, 50, 60 * Repeat ten times * ********************************************************/ public static void NMFonMovieLens100K() { for(int seed = 1; seed <= 10; seed++) { foreach(int givenSize in GivenSizes) { ExperimentEngine experiment = new ExperimentEngine( MovieLens20MFile, givenSize + minTestSize, maxCountOfRatings, givenSize, shuffle, seed, relevantCriteria, neighborCount, seed * 0.1); string log = experiment.RunNMF(defaultMaxEpoch, defaultLearnRate, defaultRegularization, factorCount, topN); using (StreamWriter w = File.AppendText("NMFonMovieLens100K_Log.txt")) { w.WriteLine("=========================================" + seed + "/" + givenSize); w.WriteLine(log); } } } }
static void Main(string[] args) { //ExperimentOfSpeed.SpeedOfAccessRandomElement(); Control.UseMultiThreading(); //CIKMExpDesign.NMFonMovieLens20M(); ExperimentEngine aExperiment = new ExperimentEngine("MovieLens100K.data", 60, 500, 50, true, 1, 5.0, 200, 0.2); aExperiment.GetReadyForOrdinal(); aExperiment.GetReadyForNumerical(); aExperiment.GetReadyAll(); //aExperiment.RunPrefNMF(50, 0.001, 0.001, 0.0005, 50, 10); //aExperiment.RunPrefNMFbasedOMF(50, 0.001, 0.001, 0.0005, 50, Config.Preferences.quantizerThree, 10); aExperiment.RunPrefMRF(0.1, 0.01, 300, Config.Preferences.quantizerThree, 10); aExperiment.RunNMF(100, 0.1, 0.15, 50, 10); aExperiment.RunNMFbasedOMF(100, 0.1, 0.15, 50, Config.Preferences.quantizerFive, 10); aExperiment.RunNMFbasedORF(0.05, 0.01, 100, Config.Preferences.quantizerFive, 10); aExperiment.RunGlobalMean(); aExperiment.RunMostPopular(10); aExperiment.RunUserKNN(10); aExperiment.RunPrefKNN(10); Utils.Pause(); //Utils.RemoveColdUsers(70, "MovieLens20M.data"); Utils.Pause(); }